Port réseau ouvert, mais aucun processus attaché?

22

J'ai une situation étrange avec un port réseau ouvert. Ma principale question est, pourquoi n'y aurait-il pas un programme associé à un port TCP ouvert:

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      -  

Pour mon cas spécifique, il est supposé qu'un démon nrpe (installation opsview) écoute sur le port 5666, mais aucun démon nrpe n'est en cours d'exécution. Si j'essaye de le démarrer, il se ferme immédiatement.

lsof -i :5666n'affiche aucune sortie non plus. Il n'y a pas (x) inetd en cours d'exécution sur mon système.

MISE À JOUR

Oui, j'exécutais ces commandes en tant que root. Telnet le pourrait, mais il n'y a jamais eu de réponse.

Après une enquête plus approfondie, j'ai trouvé une erreur de noyau dans dmesg: il s'agissait d'une instance EC2 (en fait plusieurs d'entre eux) exécutant un noyau plus ancien (2.6.16 est apparemment instable). Le correctif pour arrêter le crash était de mettre à niveau les noyaux .

Il semble que la façon dont le noyau s'est écrasé a fait disparaître le processus et laissé le port ouvert.

Gary Richardson
la source
2
Quel est le résultat de: lsof -i tcp: 5666? Le port y reste-t-il lorsque vous redémarrez?
Dave Drager
S'agit-il d'une nouvelle installation de NRPE?
fpmurphy
Vous devez exécuter netstat en tant que root pour voir les détails du programme
eckes
N'hésitez pas à ajouter une réponse à vos propres questions ...
rogerdpack

Réponses:

6

Les ports ouverts par le noyau n'apparaîtront pas avec le nom du programme. Certains trucs NFS et OCFS me viennent à l'esprit. C'est peut-être quelque chose comme ça?

Ou cela pourrait être un bug du noyau. Vérifiez les journaux du noyau pour OOPS et BUG.

Thomas
la source
24

Avez-vous exécuté netstat et lsof en tant que root ou avec sudo? Remarquez la dernière colonne:

netstat -ln --program
tcp        0      0 192.168.21.1:53         0.0.0.0:*               LISTEN      -               
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      -               
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -

sudo netstat -ln --program
tcp        0      0 192.168.21.1:53         0.0.0.0:*               LISTEN      2566/named      
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      2566/named      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      3125/sshd

Depuis la page de manuel netstat:

Vous aurez également besoin des privilèges de superutilisateur pour voir ces informations sur les sockets que vous ne possédez pas.

Comment savez-vous qu'il n'y en a pas un en cours d'exécution? Si le port est utilisé, il est logique qu'il se ferme immédiatement avec une erreur «socket in use». que se passe-t-il lorsque vous vous connectez telnet au port?

telnet localhost 5666
Kyle Brandt
la source
4

exécutez 'netstat --tcp --udp --listening --program' en tant qu'utilisateur root . sinon vous ne donnerez pas le PID / Nom du programme

puis utilisez la commande kill -9 PID

utilisateur tomcat
la source
3

J'ai en fait écrit un petit script shell pour aider à identifier ces questions occasionnelles:

#! /bin/bash
([ "$1" = "" ] || [ "$2" = "" ]) && echo "Usage: tracer <space> <port>" && exit 0
for i in `fuser -n $1 $2`
 do
  ps aux | grep $i | grep -v 'grep'
 done

enregistrer sous / usr / local / bin / tracer; sortie:

root@mo-log:/usr/flows# tracer tcp 80
80/tcp:             
root     27904  0.0  0.0 111668  3292 ?        Ss   Aug04   0:03 /usr/sbin/apache2 -k start
www-data 32324  0.0  0.0 335332  3560 ?        Sl   Aug05   0:00 /usr/sbin/apache2 -k start
www-data 32327  0.0  0.0 335324  3560 ?        Sl   Aug05   0:00 /usr/sbin/apache2 -k start

Vous aurez besoin des privilèges root pour l'utiliser

Greeblesnort
la source
Bon mais j'ai besoin de plus, je dois l'exécuter pour chaque connexion dans netstat. Ensuite, je peux identifier ce que fait un seul programme. C'est une boîte sans lsof / fstat ou d'autres bons utilitaires, et en tant que root, je ne peux pas les installer à cause d'autres problèmes.
Aki
3

J'ai pu suivre le processus en obtenant son inode via netstat, puis en utilisant cet inode avec lsof. Voir ma réponse plus détaillée dans /server//a/847910/94376 .

studgeek
la source
2

Parfois, les programmes liés à nfs n'apparaissent pas dans la liste des programmes.

De plus, les modules pam LDAP et les connexions ouvertes libnss_ldap aux serveurs LDAP, mais aucun processus réel ne maintient la connexion ouverte, donc netstat -tnp affiche une connexion active sans processus.

hayalci
la source