Bir PID'in dinlemekte olduğu tüm bağlantı noktalarını listelemek istiyorum.
Bir süreçle ilgili bu tür verileri almamı nasıl tavsiye edersiniz?
Bir PID'in dinlemekte olduğu tüm bağlantı noktalarını listelemek istiyorum.
Bir süreçle ilgili bu tür verileri almamı nasıl tavsiye edersiniz?
Yanıtlar:
Sen kullanabilirsiniz ss
(benzer iproute2 paketinden netstat
):
ss -l -p -n | grep "pid=1234,"
veya (daha eski iproute2 sürümü için):
ss -l -p -n | grep ",1234,"
1234'ü programın PID'si ile değiştirin.
-u
ya -t
sadece UDB veya tcp için. : + 1: ve bunlar şöyle istiflenebilir: ss -tlnp
, ve genişlik çıkışı, dolgu ortadan kaldırmak için rahatsız edici bulmak olabildiğince boru kedi ya da daha az ya da w / e se:ss -tlnp | cat
ss -nlp | cat
onların bağlantı noktası numaraları (-n) ve bunların süreç bilgisi (-p), ve benim kabuk çıktı sığdırmak kalkmayın, kabaca, bana süreçleri (-l) dinleme gösterecek, | cat
( veya daha az veya her neyse). Buna
iproute2
Araçları kullanmanın bir yolunun farkında değilim . Ancak bir geçici çözüm olarak, bunu deneyebilirsiniz.
lsof -Pan -p PID -i
aradığın bilgiyi sana vermeli.
Çıktı
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)
Buradan bu emri aldım ancak tam nottan emin değilim çünkü hepsini not defterinde not aldım. Ama oradan da kontrol edebilirsin.
Bunun netstat
için her bir dinleme işleminin pidini bulmak için kullanabilirsiniz .
netstat - Ağ bağlantılarını, yönlendirme tablolarını, arayüz istatistiklerini, maskeli bağlantı bağlantılarını ve çok noktaya yayın üyeliklerini yazdırın
-a, --all Hem dinleyen hem de dinleyen olmayanları göster (TCP için bu yerleşik bağlantılar demektir) soketleri. --İnterfaces seçeneğiyle, işaretlenmemiş arayüzleri gösterin
- sayısal, -n Sembolik ana bilgisayar, bağlantı noktası veya kullanıcı adlarını belirlemeye çalışmak yerine sayısal adresleri gösterir.
-p, --program Her soketin ait olduğu programın PID'sini ve adını gösterin.
İşte bir örnek:
# 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
netstat
Iproute2 araçları tarafından kullanımdan kaldırıldığını öğrendiğim halde teşekkür ederim .
@ jofel'in cevabı size kullanılacak uygun aracı gösterir ss
, işte iproute2'deki diğer ağ araçlarının yerine geçenler.
Kullanımdan kaldırılan komutlar ve bunların iproute2 eşdeğerleri aşağıdaki gibidir:
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)
Temel liste ayrıca Wikipedia'da: http://en.wikipedia.org/wiki/Iproute2 .
lsof
PID'yi bilmiyorsanız, ancak yalnızca Programın adını kullanmanız için başka bir yöntem :
lsof -Pa -p $(pgrep [programName]) -i
lsof
pgrep <program name>
daha sonra yukarıdaki komut için ihtiyacınız olan PID'yi seçin. $(pgrep [programName])
PID # ile değiştirme
ss
netlink soketleri dışında PID üzerinde filtreleme yok.