Si está solucionando problemas de un servicio que sabe que funciona con normalidad, el siguiente paso es asegurarse de que esté escuchando en el puerto de red correcto.
El netstat
El comando muestra los servicios que escuchan los puertos en un servidor Linux y los detalles de cualquier conexión que se les haya realizado actualmente. Los detalles de la conexión a considerar durante la resolución de problemas básicos del daemon de la red son las direcciones en las que el daemon está escuchando (incluido el número de puerto), el identificador del proceso del daemon ( PID) y el nombre del programa.
Necesita ejecutar netstat
en el servidor que está ejecutando el servicio. Netstat
no se ve afectado por la configuración de su cortafuegos.
lsof
y ss
Comandos para verificar puertos. Muchos de los indicadores de comando contenidos en este artículo son los mismos cuando ejecuta lsof
y ss
comandos Sin embargo, la salida devuelta cuando usa estos comandos puede no parecerse a la salida de netstat
herramienta. Para obtener más información sobre ambos comandos, consulte lsof
y ss
manuales de mando.
Comprobar puertos
Para listar los puertos TCP que están siendo escuchados y el nombre del daemon de cada oyente y su PID, ejecute el siguiente comando:
sudo netstat -plnt
El siguiente ejemplo muestra la salida de tres programas comunes que están escuchando en tres sockets diferentes.
$ sudo netstat -plnt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 3686/mysqld
tcp 0 0 :::443 :::* LISTEN 2218/httpd
tcp 0 0 :::80 :::* LISTEN 2218/httpd
tcp 0 0 :::22 :::* LISTEN 1051/sshd
Filtrar la lista
Si la lista de demonios de escucha es larga, puede usar grep
para filtrarlo. Por ejemplo, para filtrar todo excepto el puerto del servidor web predeterminado 80
, ejecute el siguiente comando:
$ sudo netstat -plnt | grep ':80'
tcp 0 0 :::80 :::* LISTEN 8448/httpd
Analizar los resultados
Los resultados comunes incluyen los siguientes resultados:
- Nada está escuchando en el puerto. Verifique los archivos de configuración del servicio y luego reinicie el servicio.
- El servicio correcto está escuchando en el puerto correcto. En este caso, debe probar el servicio más a fondo. Pase al artículo sobre la prueba del servicio de escucha para la respuesta usando netcat.
- Algo diferente al servicio esperado parece estar escuchando en el puerto.
Nota :Es posible que un superservidor, como xinetd, esté escuchando en el puerto. Verifique su configuración de xinetd para asegurarse de que este comportamiento sea aceptable.
Si algo más está escuchando en el puerto, puede deshabilitar el programa ejecutando sudo service httpd stop
, o cambie su configuración para que ya no escuche en el puerto. Cuando netstat
muestra que el puerto está libre, habilite el servicio correcto (por ejemplo, sudo service vsftpd start
).
Si realiza algún cambio porque el servicio incorrecto está escuchando, ejecute netstat
comando de nuevo. Si netstat
no muestra el programa escuchando en el puerto correcto, debe abordar su configuración antes de continuar.
Si realiza cambios en este punto, asegúrese de probar su configuración para verificar que haya resuelto su problema.
Si usa el netstat
no resolvió sus problemas de puerto, continúe probando las conexiones al servicio usando el comando netcat.