Tengo una situación extraña con un puerto de red abierto. Mi pregunta principal es, ¿por qué no habría un programa asociado con un puerto TCP abierto:
netstat -ln --program
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:5666 0.0.0.0:* LISTEN -
Para mi caso específico, se supone que hay un nrpe daemon (instalación de opsview) escuchando en el puerto 5666, pero no se está ejecutando nrpe daemon. Si intento iniciarlo, sale inmediatamente.
lsof -i :5666
tampoco muestra ningún resultado. No hay (x) inetd ejecutándose en mi sistema.
ACTUALIZAR
Sí, estaba ejecutando esos comandos como root. Telnet podría, pero nunca hubo respuesta.
Después de una investigación más profunda, encontré un error de kernel en dmesg
: esta fue una instancia de EC2 (en realidad, varias de ellas) que ejecuta un kernel anterior (2.6.16 aparentemente es inestable). La solución para detener el bloqueo fue actualizar los núcleos .
Parece que la forma en que el núcleo se bloqueó hizo que el proceso desapareciera y dejara el puerto abierto.
Respuestas:
Los puertos abiertos por el núcleo no se mostrarán con el nombre del programa. Me vienen a la mente algunas cosas de NFS y OCFS. Tal vez es algo así?
O podría ser un error del kernel. Verifique los registros del kernel para OOPS y BUG.
fuente
¿Has ejecutado netstat y lsof como root o con sudo? Observe la última columna:
Desde la página de manual de netstat:
¿Cómo sabes que no hay uno corriendo? Si el puerto está en uso, tiene sentido que salga inmediatamente con un error de "socket en uso". ¿Qué pasa cuando telnet al puerto?
fuente
ejecute 'netstat --tcp --udp --listening --program' como usuario root . de lo contrario, no dará PID / Nombre del programa
luego use el comando kill -9 PID
fuente
De hecho, escribí un pequeño script de shell para ayudar a identificar estas preguntas ocasionales:
guardar como / usr / local / bin / tracer; salida:
Necesitarás privilegios de root para usarlo
fuente
Pude rastrear el proceso al obtener su inodo a través de netstat y luego usar ese inodo con lsof. Vea mi respuesta más detallada en /server//a/847910/94376 .
fuente
A veces, los programas relacionados con nfs no se pueden ver en la lista de programas.
Además, los módulos de pam LDAP y libnss_ldap abren conexiones a los servidores ldap, pero no hay un proceso real que mantenga la conexión abierta, por lo que netstat -tnp muestra una conexión activa sin un proceso.
fuente