netstat
Il y a un processus là-bas, votre userid n'est tout simplement pas au courant de voir ce que c'est. Ceci est une couche de protection fournie par lsof
qui vous empêche de voir cela. Il suffit de réexécuter la commande mais de la préfixer avec la sudo
commande.
$ sudo netstat -antlp | grep 45136
Il y a même un avertissement à ce sujet dans la sortie du lsof
haut.
(Tous les processus n'ont pas pu être identifiés, les informations sur les processus n'appartenant pas à l'utilisateur ne seront pas affichées. Vous devez être root pour tout voir.)
Exemple
$ netstat -antlp | grep 0:111
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN -
$ sudo netstat -antlp | grep 0:111
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1248/rpcbind
ss
Si vous n'avez pas de chance avec netstat
peut ss
- être va faire. Vous aurez toujours besoin d'utiliser sudo
, et la sortie peut être un peu plus cryptique.
Exemple
$ ss -apn|grep :111
LISTEN 0 128 :::111 :::*
LISTEN 0 128 *:111 *:*
$ sudo ss -apn|grep :111
LISTEN 0 128 :::111 :::* users:(("rpcbind",1248,11))
LISTEN 0 128 *:111 *:* users:(("rpcbind",1248,8))
L'ID de processus n'est toujours pas là?
Il y a des cas où il n'y a tout simplement pas de PID associé au port TCP utilisé. Vous pouvez lire sur NFS, dans la réponse de @ derobert , qui en fait partie. Il y en a d'autres. Il arrive que j'utilise des tunnels SSH pour me reconnecter à des services tels qu'IMAP. Ceux-ci apparaissent aussi sans identifiant de processus.
Dans tous les cas, vous pouvez utiliser une forme plus détaillée netstat
qui pourrait éclairer davantage le processus qui utilise finalement un port TCP.
$ netstat --program --numeric-hosts --numeric-ports --extend
Exemple
$ netstat --program --numeric-hosts --numeric-ports --extend |grep -- '-' | head -10
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
tcp 0 0 192.168.1.103:936 192.168.1.3:60526 ESTABLISHED root 160024310 -
tcp 0 0 192.168.1.1:2049 192.168.1.3:841 ESTABLISHED sam 159941218 -
tcp 0 0 127.0.0.1:143 127.0.0.1:57443 ESTABLISHED dovecot 152567794 13093/imap-login
tcp 0 0 192.168.1.103:739 192.168.1.3:2049 ESTABLISHED root 160023970 -
tcp 0 0 192.168.1.103:34013 192.168.1.3:111 TIME_WAIT root 0 -
tcp 0 0 127.0.0.1:46110 127.0.0.1:783 TIME_WAIT root 0 -
tcp 0 0 192.168.1.102:54891 107.14.166.17:110 TIME_WAIT root 0 -
tcp 0 0 127.0.0.1:25 127.0.0.1:36565 TIME_WAIT root 0 -
tcp 0 0 192.168.1.1:2049 192.168.1.6:798 ESTABLISHED tammy 152555007 -
Si vous remarquez que la sortie inclut INODES, nous pourrions revenir en arrière dans le processus en utilisant cette information.
$ find -inum 152555007
Ce qui vous montrera un fichier qui pourrait vous mener à un processus.
Références
Une autre option est que le socket n'appartient pas à un processus, mais au noyau. Un exemple courant est NFS.
Je ne suis pas sûr que ce soit un bon moyen, en général, de les identifier. Dans le cas particulier de NFS, on
rpcinfo
pourra souvent nous dire:Malheureusement, cela ne fonctionne que pour IPv4. Pour obtenir la v6, vous devez vous arrêter
-p
, ce qui affiche ensuite les numéros de port de manière idiote: Deux octets supplémentaires d’adresse IP. Le port 55607 devient ainsi 217,55 (car 217 × 256 + 55 = 55607):la source
rpcinfo -p
que ne fonctionne que pour IPv4