उस प्रक्रिया को खोजें जो एक विशिष्ट पोर्ट पर सुन रही है


4

मैं कुछ प्रक्रियाओं को खोजना चाहता हूं जो उदाहरण के लिए एक निर्दिष्ट पोर्ट पर चल रही हैं 80

मैं भागा

fuser 80/tcp

और कुछ नहीं मिला

और फिर

netstat -tulpn|grep "80\|PID"

और मिला

Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 :::80                       :::*                        LISTEN      -  

पीआईडी ​​है -

तो क्या -मतलब है? धन्यवाद!


1
क्या आप इन कमांड को रूट के रूप में चलाते हैं?
मपी

नहीं, आह, मैंने इसे अब जड़ के रूप में चलाया, यह परिणाम दिखाता है, धन्यवाद
मितीयों

@mpy कृपया इसे उत्तर के रूप में पोस्ट करें (हो सकता है इसे आगे बढ़ाएं और समझाएं कि आपको रूट आदि की आवश्यकता क्यों है)
slhck

@ श्लोक: आपने काफी कठिन नट दिया था कि आपको क्यों जड़ से ;)
उखड़ने की

1
@mpy Haha, अच्छी तरह से यह सुनिश्चित करने के लिए एक महान जवाब है। मैंने अभी सोचा था कि "आपको रूट होना है" क्वालिटी फिल्टर पास नहीं होगा :)
slhck

जवाबों:


3

संक्षिप्त उत्तर है:root सभी बाइंडिंग देखने के लिए आपका होना आवश्यक है ।

थोड़ा समय और:

नेटस्टैट का मैनपेज एक संकेत देता है जो सभी मामलों में आवश्यक नहीं है:

PID / प्रोग्राम का नाम स्लैश-अलग-अलग जोड़ी प्रक्रिया आईडी (PID) और प्रक्रिया का नाम जो सॉकेट का मालिक है। --programइस कॉलम को शामिल करने का कारण बनता है। आपके पास जो सॉकेट नहीं हैं, इस जानकारी को देखने के लिए आपको सुपरसुसर विशेषाधिकारों की भी आवश्यकता होगी।

इसलिए, एक सामान्य उपयोगकर्ता के रूप में, आप केवल यह देखते हैं कि कौन सी प्रक्रिया किसी पोर्ट की सुनती है, यदि आप इसे अपनाते हैं:

$ netcat -l -p 1234 &
$ netstat -tulpn
[...]
tcp        0      0 0.0.0.0:1234            0.0.0.0:*               LISTEN      8044/netcat     
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -    
[...]

आप "अपने" नेटसैट प्रक्रिया को देखते हैं, लेकिन उदाहरण के लिए पोर्ट 22 को कौन नहीं सुन रहा है।

मुझे लगता है, इसका कारण यह है कि आप /proc/[PID]/fdस्वामित्व वाली प्रक्रियाओं के लिए कोई शुल्क नहीं ले सकते । वहाँ आपको लगता है कि फाइल डिस्क्रिप्टर प्रक्रिया [PID]वर्तमान में खुल गई है और Un * x (लगभग) में सब कुछ एक फाइल है ... और इसलिए सॉकेट हैं।

मेरे उदाहरण में sshd, pid 3934, 22 को सुनता है (आश्चर्य-आश्चर्य):

$ whoami
user
$ ls -l /proc/3934/fd
/bin/ls: cannot open directory /proc/3934/fd: Permission denied
$ sudo ls -l /proc/3934/fd
total 0
lrwx------ 1 root root 64 Apr 24 16:33 0 -> /dev/null
lrwx------ 1 root root 64 Apr 24 16:33 1 -> /dev/null
lrwx------ 1 root root 64 Apr 24 16:33 2 -> /dev/null
lrwx------ 1 root root 64 Apr 24 16:33 3 -> socket:[10481]
lrwx------ 1 root root 64 Apr 24 16:33 4 -> socket:[10483]

(दूसरा सॉकेट IPv6 एड्रेस के लिए बंधन है जिसे मैंने अपने नेटस्टैट आउटपुट में छोड़ दिया है।)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.