web-dev-qa-db-fra.com

Liste des ports sur lesquels un processus PID écoute (de préférence à l'aide des outils iproute2)?

Je cherche à répertorier tous les ports sur lesquels un PID écoute actuellement.

Comment recommanderiez-vous que j'obtienne ce type de données sur un processus?

73
ThorSummoner

Vous pouvez utiliser ss à partir du package iproute2 (qui est similaire à netstat):

ss -l -p -n | grep "pid=1234,"

ou (pour les anciennes versions d'iproute2):

ss -l -p -n | grep ",1234,"

Remplacez 1234 par le PID du programme.

64
jofel

Je ne connais aucun moyen d'utiliser iproute2 outils. Mais comme solution de contournement, vous pouvez essayer celui-ci.

lsof -Pan -p PID -i

devrait vous donner les informations que vous recherchez.


Sortie

lsof -Pan -p 27808 -i
COMMAND   PID   USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME
httpd   27808 Apache    5u  IPv6 112811294      0t0  TCP *:80 (LISTEN)
httpd   27808 Apache    7u  IPv6 112811298      0t0  TCP *:8443 (LISTEN)
httpd   27808 Apache    9u  IPv6 112811303      0t0  TCP *:443 (LISTEN)

J'ai obtenu cette commande de ici mais je ne suis pas sûr du lien exact car je les ai tous notés dans le cahier. Mais vous pouvez également vérifier à partir de là.

60
Ramesh

Vous pouvez utiliser netstat pour cela pour comprendre le pid de chaque processus d'écoute.

netstat - Imprimer les connexions réseau, les tables de routage, les statistiques d'interface, les connexions de mascarade et les appartenances multicast

-a, --all Affiche à la fois les sockets en écoute et en non-écoute (pour TCP cela signifie des connexions établies). Avec l'option --interfaces, affichez les interfaces qui ne sont pas marquées

--numeric, -n Affiche les adresses numériques au lieu d'essayer de déterminer les noms symboliques d'hôte, de port ou d'utilisateur.

-p, --program Affiche le PID et le nom du programme auquel appartient chaque socket.

Voici un exemple:

# netstat -anp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      1507/rpcbind
tcp        0      0 0.0.0.0:51188               0.0.0.0:*                   LISTEN      1651/rpc.statd
tcp        0      0 0.0.0.0:1013                0.0.0.0:*                   LISTEN      1680/ypbind
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1975/sshd
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      1763/cupsd
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      2081/master
tcp        0      0 127.0.0.1:27017             0.0.0.0:*                   LISTEN      2119/mongod
tcp        0     48 172.16.33.73:22             172.16.127.110:51850        ESTABLISHED 25473/sshd
tcp        0      0 172.16.33.73:22             172.16.127.110:51214        ESTABLISHED 24699/sshd
tcp        0      0 :::111                      :::*                        LISTEN      1507/rpcbind
tcp        0      0 :::9200                     :::*                        LISTEN      1994/Java
tcp        0      0 :::9300                     :::*                        LISTEN      1994/Java
tcp        0      0 :::22                       :::*                        LISTEN      1975/sshd
tcp        0      0 ::1:631                     :::*                        LISTEN      1763/cupsd
tcp        0      0 ::1:25                      :::*                        LISTEN      2081/master
tcp        0      0 :::59162                    :::*                        LISTEN      1651/rpc.statd
14
Raza

@ réponse de jofel vous montre l'outil approprié à utiliser, ss, voici les remplacements des autres outils de mise en réseau dans iproute2.

Les commandes obsolètes et leurs équivalents iproute2 sont les suivants:

deprecated      replacement(s)
==========      ==============
- arp           ip n (ip neighbor)
- ifconfig      ip a (ip addr), ip link, ip -s (ip -stats)
- iptunnel      ip tunnel
- iwconfig      iw
- nameif        ip link, ifrename
- netstat       ss, ip route (for netstat-r), ip -s link (for netstat -i), 
                ip maddr (for netstat-g)

- route         ip r (ip route)

La liste de base est également ici sur Wikipedia: http://en.wikipedia.org/wiki/Iproute2 .

Références

12
slm

Une autre méthode pour lsof si vous ne connaissez pas le PID, mais juste le nom du programme:

lsof -Pa -p $(pgrep [programName]) -i
1
cryptoboy

Avez-vous essayé, cela fait de même

netstat -plnt | grep 27071

success

0
TheExorcist