मैं उन सभी पोर्टों को सूचीबद्ध करना चाह रहा हूं, जिन पर एक पीआईडी वर्तमान में सुन रही है।
आप इस प्रक्रिया के बारे में मुझे इस तरह का डेटा कैसे प्राप्त करने की सलाह देंगे?
मैं उन सभी पोर्टों को सूचीबद्ध करना चाह रहा हूं, जिन पर एक पीआईडी वर्तमान में सुन रही है।
आप इस प्रक्रिया के बारे में मुझे इस तरह का डेटा कैसे प्राप्त करने की सलाह देंगे?
जवाबों:
आप ss
iproute2 पैकेज (जो इसके समान है netstat
) से उपयोग कर सकते हैं :
ss -l -p -n | grep "pid=1234,"
या (पुराने iproute2 संस्करण के लिए):
ss -l -p -n | grep ",1234,"
1234 को प्रोग्राम के PID से बदलें।
-u
या -t
UDB या टीसीपी के लिए ही। : +1: और ये सभी इस तरह से स्टैक्ड हो सकते हैं: और ss -tlnp
ss -tlnp | cat
ss -nlp | cat
, यह मोटे तौर पर मुझे (-l), उनके पोर्ट नंबर (-n), और उनकी प्रक्रिया की जानकारी (-p) सुनकर दिखाते हैं, और आउटपुट को मेरे शेल में फिट करने की कोशिश नहीं करते हैं | cat
( या कम या जो भी हो)। केवल मुझे दो साल लग गए कि आदत
मुझे 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)
मुझे यह आदेश यहाँ से मिला है, लेकिन सटीक लिंक के बारे में निश्चित नहीं है क्योंकि मेरे पास नोटबुक में सभी नोट हैं। लेकिन आप वहां से भी देख सकते हैं।
आप netstat
प्रत्येक सुनने की प्रक्रिया के बारे में जानने के लिए इसका उपयोग कर सकते हैं ।
netstat - प्रिंट नेटवर्क कनेक्शन, राउटिंग टेबल, इंटरफ़ेस आँकड़े, मस्कारा कनेक्शन, और मल्टीकास्ट सदस्यता
-a, --all दोनों सुनना और गैर-सुनना (टीसीपी के लिए इसका अर्थ है स्थापित कनेक्शन) सॉकेट्स। --Interfaces विकल्प के साथ, ऐसे इंटरफेस दिखाएँ जो चिह्नित नहीं हैं
--numeric; -n प्रतीकात्मक होस्ट, पोर्ट या उपयोगकर्ता नामों को निर्धारित करने की कोशिश करने के बजाय संख्यात्मक पते दिखाएं।
-p, --program उस पीआईडी और प्रोग्राम का नाम दिखाएं जिसमें प्रत्येक सॉकेट है।
यहाँ एक उदाहरण है:
# 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 टूल द्वारा अपदस्थ किया गया है और मैं इससे बचने के लिए देख रहा हूं।
@ जोफेल का जवाब आपको उपयोग करने के लिए उपयुक्त उपकरण दिखाता है ss
, यहाँ 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 पर भी है ।
lsof
यदि आप पीआईडी को नहीं जानते हैं, तो इसके लिए एक और तरीका है , लेकिन सिर्फ प्रोग्राम का नाम:
lsof -Pa -p $(pgrep [programName]) -i
lsof
ubuntu 16.04 पर 4.89 के साथ काम नहीं करता है
pgrep <program name>
इसके बाद उपरोक्त कमांड के लिए आवश्यक पीआईडी चुनें। $(pgrep [programName])
PID # की जगह
ss
नेटवर्क्स सॉकेट्स को छोड़कर पीआईडी पर अजीब से कोई फ़िल्टरिंग नहीं है।