Můžete použít netstat pro tohle. Podívejte se na příklad (hledal jsem ssh ):
netstat -putan | grep ssh
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1725/sshd
tcp 0 0 1.2.3.4:45734 1.2.3.5:22 ESTABLISHED 2491/ssh
tcp6 0 0 :::22 :::* LISTEN 1725/sshd
Vysvětlení:
Často používám parametry -putan (protože jsou snadno zapamatovatelné).
-p:zobrazit PID aplikace/procesu-u:zobrazit porty/připojení udp-t:zobrazit tcp porty/připojení-a:zobrazit naslouchající i neposlouchající zásuvky-n:číselný výstup (neprovádět DNS vyhledávání názvů hostitelů atd.)
Ve výše uvedeném výstupu vidíte, že existuje proces démona ssh (sshd ) s PID 1725 poslouchá na portu 22 na všech síťových rozhraních (0.0.0.0 ). Existuje také proces klienta ssh (PID 2491 ) připojené k IP adrese 1.2.3.5 na čísle portu 22 , moje IP adresa je 1.2.3.4 a můj externí port je 45734 . Vidíte, že spojení je navázáno. Proto jsem přihlášen přes ssh .
Dalším nástrojem, který to umí, je lsof :
# lsof -i -a -p 1981
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 1981 root 3u IPv4 917 0t0 TCP host.example.com:ssh (LISTEN)
# lsof -i -a -p 1981 -n
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 1981 root 3u IPv4 917 0t0 TCP 10.1.2.3:ssh (LISTEN)
# lsof -i -a -p 1981 -n -P
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 1981 root 3u IPv4 917 0t0 TCP 10.1.2.3:22 (LISTEN)
#
Použité možnosti jsou následující:
-ivytisknout internetové porty otevřené procesem-azpůsobí, že všechny možnosti budou seřazeny AND-p 1981zobrazit výstup pro proces 1981-nzakázat vyhledávání názvu hostitele a místo toho zobrazovat IP-Pzakázat vyhledávání služeb a místo toho zobrazovat číslo portu
lsof má tu výhodu, že můžete specifikovat proces, který se má zkontrolovat, místo abyste jej museli grepovat z většího výstupu. netstat je spolehlivěji dostupný na systémech, ačkoli lsof se stává standardnějším, než býval.
ss nástroj z balíčku iproute pro Linux