Cuando queremos saber qué servicios están escuchando en el servidor, qué conexiones hay abiertas o si algún proceso está usando un puerto inesperado, netstat es la herramienta adecuada.
Para ver todos los puertos en escucha (TCP y UDP) junto al proceso que los usa:
netstat -tulpn
Las opciones son: -t (TCP), -u (UDP), -l (solo puertos en escucha), -p (mostrar
el proceso) y -n (mostrar números en lugar de nombres, más rápido).
La salida muestra el protocolo, las colas de datos (Recv-Q y Send-Q), la dirección
local con el puerto, la dirección remota, el estado y el PID con el nombre del proceso.
Por ejemplo, una línea como:
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1234/apache2
Indica que Apache está escuchando en el puerto 80 en todas las interfaces.
Para ver las conexiones establecidas en este momento:
netstat -tn
Para filtrar por un puerto concreto, combinamos con grep:
netstat -tulpn | grep :3306
Esto muestra si MySQL está escuchando y, si es así, en qué interfaz. Si MySQL solo debe
aceptar conexiones locales, debería aparecer 127.0.0.1:3306, no 0.0.0.0:3306.
netstat es útil para verificar que los servicios están arrancados y que no hay puertos
abiertos inesperadamente, especialmente después de instalar software nuevo.