Перелічіть порти, на яких прослуховується PID процесу (бажано за допомогою iproute2)?

Я шукаю список всіх портів, які PID слухає.

Як ви рекомендуєте мені отримувати такі дані про процес?

44

5 Відповіді

Я не знаю про спосіб використання інструментів iproute2 . Але, як обхідний шлях, ви можете спробувати це.

lsof -Pan -p PID -i

Вам слід надати потрібну інформацію.


Вивід

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)

Я отримав цю команду від тут , але не впевнений у точному посиланні, оскільки всі вони записані в блокноті. Але ви можете перевірити звідти також.

40
додано

Ви можете використовувати ss з пакета iproute2 (подібний до netstat ):

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

Замініть 1234 на PID програми.

38
додано
Існує також -u або -t тільки для udb або tcp. : +1: І всі вони можуть бути складені так: "> Я знаходжу дратівливих ви можете трубку, хоча кіт або менше або ж/е: ss -tlnp | cat
додано Автор dtumaykin, джерело
Я потрапив у звичку ss -nlp | cat , це приблизно, покажіть мені процеси прослуховування (-l), їхні номери портів (-n) і інформацію про процес (-p), і не намагайтеся підібрати вихід до моєї оболонки | cat (або менше). Лише за два роки я звикнув до цього: D
додано Автор dtumaykin, джерело

Для цього можна скористатися netstat , щоб визначити pid кожного процесу слухання.

netstat - друк мережевих з'єднань, таблиць маршрутизації, статистики інтерфейсу, маскарадних з'єднань і членства в груповому трафіку

-а, -все        Покажіть як прослуховування, так і не прослуховування (для TCP це означає встановлені з'єднання) сокети. За допомогою параметра --interfaces показуйте інтерфейси, які не позначені

--numeric, -n        Показувати числові адреси замість визначення символьних імен хостів, портів або користувачів.

-p, --програма        Показати PID і ім'я програми, до якої належить кожний сокет.

Ось приклад:

# 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
11
додано
Дякуємо, хоча мені повідомили, що netstat не використовувався iproute2, і я хочу його уникнути.
додано Автор dtumaykin, джерело

@jofel's answer shows you the appropriate tool to use, ss, here's the replacements for the other networking tools in iproute2.

Застарілі команди та їх еквіваленти iproute2 такі:

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)

Основний список також можна знайти у Вікіпедії: http://en.wikipedia.org/wiki/Iproute2.

Список літератури

10
додано

Інший метод для lsof , якщо ви не знаєте PID, а лише назва програми:

lsof -Pa -p $(pgrep [programName]) -i
1
додано