पोर्ट पर क्या प्रक्रिया सुन रहा है यह दिखाने के लिए नेटस्टैट का उपयोग कैसे करें


27

मैं ओएस एक्स माउंटेन लायन लैपटॉप पर हूं और इस पर कुछ वैग्रेंट बॉक्स हैं। मैं यह पता लगाने की कोशिश कर रहा हूं कि कौन सी प्रक्रिया पोर्ट 8080 पर सुन रही है। मेरी विविधता सौ लाइनों की तरह है लेकिन विशिष्ट पोर्ट नंबर के साथ कोई भी नहीं। मैं कुछ ऐसा मान रहा हूँ:

netstat -XXX | grep 8080

यह एक घर की स्थापना या पेशेवर वातावरण में है?
लुकास कॉफ़मैन

स्थानीय स्तर पर एक सर्वर एनवायरो को फिर से बनाना। यदि आप अलग-अलग साइट पर जाना चाहते हैं, तो यह ठीक है। नेटस्टैट के विभिन्न संस्करण विभिन्न तर्कों का समर्थन करते हैं।
टाइमपोन

ठीक है फिर महोदय, यहाँ सब कुछ क्रम में लगता है, कृपया आगे बढ़ें और आपका दिन अच्छा रहे।
लुकास कॉफ़मैन

जवाबों:


52

दुर्भाग्य से OSX पर आप बीएसडी के साथ फंस गए हैं netstatजो आपको प्रक्रिया आईडी नहीं दिखाएगी जो किसी दिए गए पोर्ट से जुड़ी है। इसके बजाय आपको जो करना है वह है उपयोग lsof। सिंटैक्स का आपको उपयोग करना होगा:

lsof -i :8080

यह जानकारी के gobs का प्रिंट आउट करेगा, जिनमें से अधिकांश की आपको परवाह नहीं है, लेकिन खेतों को अच्छी तरह से लेबल किया गया है। उदाहरण के लिए, इस उदाहरण आउटपुट को देखें।

lsof -i :53237
COMMAND   PID  USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
GoogleTal 927 guest   29u  IPv4 0x2c3f7f95244855c3      0t0  TCP localhost:53237 (LISTEN)

यह मुझे बताता है कि पोर्ट 53237 का उपयोग प्रक्रिया आईडी 927 द्वारा किया जाता है। COMMAND फ़ील्ड को पढ़ते समय ध्यान रखें कि यह आउटपुट छोटा है, वास्तव में बाइनरी का पूरा नाम GoogleTalkPlugin है।


thx, यह मुझे बहुत करीब ले जाता है, यह काफी सामान्य हो रहा है VBoxHeadl- क्या कोई ऐसा तरीका है जिसे देखने के लिए वर्चुअलबॉक्स उदाहरण (अभी दो हैं) या मैं बहुत ज्यादा रास्ता पूछ रहा हूं (संभवतः बाद वाला)। thx
टाइमपोन

@timpone: मैं आपको उस रास्ते को नीचे लाने में मदद करने के लिए VirtualBox के बारे में पर्याप्त नहीं जानता। आप यह देखने के लिए प्रक्रिया कमांड लाइन देख सकते हैं कि क्या यह वहां सूचीबद्ध है, या lsof -p PIDखुली फाइलों की सूची का उपयोग करें और ब्राउज़ करें जब तक कि आप इसे न पा लें।
स्कॉट पैक

शांत, मदद के लिए thx
टिमपोन

8

यह वह है जो मुझे एक पोर्ट के पीआईडी ​​की तलाश में उपयोग करना पसंद है। लिनक्स उपयोग के लिए:netstat -tunlp

  • n नेटवर्क
  • एल बंदरगाहों सुन रहा है
  • पी प्रक्रिया
  • t tcp
  • यू udp

अतिरिक्त जानकारी मैन पेजों में पाई जा सकती है।


-pकार्यक्रम के तर्कों को सूचीबद्ध नहीं करता है। मैं इसे कैसे देखूँ?
jameshfisher

4
ओपी ने OSX के बारे में पूछा। -p netstat के OSX संस्करण पर एक विकल्प नहीं है।
टेड बिगहम 19

-pपर OSX है port। मैं OSX और लिनक्स के लिए अलग-अलग तर्क देने के लिए डेवलपर्स के फैसले से नफरत करता हूं ...
डैनियल डब्ल्यू।

5

मैं netstatइस सुविधा को प्रदान करने के लिए OS X पर संशोधन करने की प्रक्रिया में था और इस तथ्य पर ठोकर खाई कि -vआप एक सॉकेट से जुड़े पीआईडी ​​देंगे।


-vशब्दाडंबर स्तर बढ़ जाता है और यह प्रलेखित है। developer.apple.com/library/mac/documentation/Darwin/Reference/…
Leathe

1
क्षमा करें, मेरा मतलब यह था कि यह प्रिंट करता है कि पीआईडी ​​दस्तावेज नहीं है, न कि विकल्प मौजूद है।
सीन हैमिल्टन

4

मेरे लिए, निम्नलिखित दो लाइनें यह दिखाने के लिए सबसे अच्छा काम करती हैं कि कौन से ऐप्स में सुनने वाले पोर्ट खुले हैं, और सुरंग, lsof पूरी तरह से क्रॉस-प्लेटफॉर्म है:

netstat -Watn | grep LISTEN
lsof -Pnl +M -i -cmd | grep LISTEN

1

नेटस्टैट कमांड के नीचे विशिष्ट पोर्ट उपयोग का पता लगाने के लिए

  netstat -an | grep ':8080'

3
ओपी ने प्रक्रिया प्राप्त करने के बारे में पूछा। यह प्रक्रिया आईडी नहीं दिखाती है।
टेड बिगहम 20

1

आदमी नेटस्टैट से

-p, --program उस पीआईडी ​​और प्रोग्राम का नाम दिखाएं जिसमें प्रत्येक सॉकेट है।

मैं आमतौर पर बस यही करता हूं: netstat -antup | ग्रेप 8080


हम्म ... यह मुझे क्या पसंद है जैसा लगता है, लेकिन यह मुझे ओएस एक्स के लिए अलग-अलग विकल्प दे रहा है -p-p protocol Show statistics about protocol, which is either a well-known name
टाइमपोन

@timpone: -pPID को प्रदर्शित करने के लिए GNU netstat कमांड है, जबकि OSX BSD netstat का उपयोग करता है।
स्कॉट पैक

-pकार्यक्रम के तर्कों को सूचीबद्ध नहीं करता है। मैं इसे कैसे देखूँ?
jameshfisher

1
ओपी ने OSX के बारे में पूछा। -p netstat के OSX संस्करण पर एक विकल्प नहीं है।
टेड बिगहम 19

-pपर OSX है port। मैं OSX और लिनक्स के लिए अलग-अलग तर्क देने के लिए डेवलपर्स के फैसले से नफरत करता हूं ...
डैनियल डब्ल्यू।

0

नीचे दिया गया कमांड कनेक्शन दिखाता है:

netstat -antop | grep :8080

वास्तविक समय में पूरा प्रवाह देखने के लिए आप इसका उपयोग कर सकते हैं watch:

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