netstat बिना pid के साथ एक सुनने वाला पोर्ट दिखाता है लेकिन lsof नहीं करता है


21

यह प्रश्न नेटवर्क पोर्ट ओपन के समान है , लेकिन कोई प्रक्रिया संलग्न नहीं है?

मैं वहाँ से सब कुछ करने की कोशिश की है, लॉग की समीक्षा की, आदि ... और कुछ भी नहीं मिल सकता है।

मेरा netstat एक pid के बिना एक TCP श्रवण पोर्ट और एक UDP पोर्ट दिखाता है। जब मैं उन बंदरगाहों के लिए lsof खोजता हूं तो कुछ भी नहीं आता है।

netstat -lntup
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:44231           0.0.0.0:*               LISTEN      -               
udp        0      0 0.0.0.0:55234           0.0.0.0:*                           - 

निम्नलिखित आदेश कुछ भी प्रदर्शित नहीं करते हैं:

lsof | grep 44231
lsof | greo 55234
fuser -n tcp 44231
fuser -n udp 55234

रीबूट करने के बाद, नए पोर्ट नंबर के अलावा वे "वही" दो कनेक्शन हैं:

netstat -lntup
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:45082           0.0.0.0:*               LISTEN      -               
udp        0      0 0.0.0.0:37398           0.0.0.0:*                           - 

और एक बार फिर, lsof और fuser कमांड कुछ नहीं दिखाते हैं।

किसी भी विचार वे क्या हैं? क्या मुझे उनके बारे में चिंतित होना चाहिए?

जवाबों:


11

आपके द्वारा प्रदान किए गए डेटा से मैं कहूंगा कि यह RFS का उपयोग करके कुछ NFS माउंट या कुछ से संबंधित है।

आप उन rpcinfo -pबंदरगाहों के लिए जाँच कर सकते हैं जिनका उपयोग आरपीसी से संबंधित कुछ सेवाओं द्वारा किया जा सकता है।

यहाँ है कि यह मेरे सिस्टम पर कैसा दिखता है

# netstat -nlp | awk '{if ($NF == "-")print $0}'
tcp        0      0 0.0.0.0:55349           0.0.0.0:*               LISTEN      -               
udp        0      0 0.0.0.0:18049           0.0.0.0:*                           - 

# rpcinfo -p
   program vers proto   port
    100000    2   tcp    111  portmapper
    100000    2   udp    111  portmapper
    100024    1   udp  10249  status
    100024    1   tcp  10249  status
    100021    1   udp  18049  nlockmgr
    100021    3   udp  18049  nlockmgr
    100021    4   udp  18049  nlockmgr
    100021    1   tcp  55349  nlockmgr
    100021    3   tcp  55349  nlockmgr
    100021    4   tcp  55349  nlockmgr

1
यदि आपके पास यह समस्या है और nlockmgr को विशिष्ट बंदरगाहों का उपयोग करने के लिए बाध्य करना चाहते हैं, तो इस समाधान का प्रयास करें: fclose.com/39625/fixing-ports-used-by-nfs-server
रयान वॉल्स

13

कुछ प्रक्रिया / pids केवल रूट करने के लिए उपलब्ध हैं। प्रयत्न

sudo netstat -antlp

उसे हर उस खुले पोर्ट का पृष्ठ लौटना चाहिए जो TIME_WAIT स्थिति में नहीं है


2
हर खुली TCP पोर्ट केवल इस कमांड के साथ। यूडीपी पोर्ट नहीं दिखाए जाएंगे।
पेट्रस

8

@ User202173 और अन्य से संकेत के आधार पर, मैं इस प्रक्रिया को ट्रैक करने के लिए निम्नलिखित का उपयोग करने में सक्षम रहा हूं जो कि नेटस्टैट के रूप -में सूचीबद्ध होने पर भी एक पोर्ट का मालिक है ।

यहां मेरी शुरुआती स्थिति थी। sudo netstatपीआईडी ​​/ कार्यक्रम के साथ पोर्ट दिखाता है -lsof -iकुछ नहीं दिखाता है।

$ sudo netstat -ltpna | awk 'NR==2 || /:8785/'
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp6       0      0 :::8785                 :::*                    LISTEN      -
tcp6       1      0 ::1:8785                ::1:45518               CLOSE_WAIT  -
$ sudo lsof -i :8785
$

अब चलते हैं मछली पकड़ने। पहले -eहमारे netstatकॉल को जोड़कर इनकोड प्राप्त करें।

$ sudo netstat -ltpnae | awk 'NR==2 || /:8785/'
Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode       PID/Program name
tcp6       0      0 :::8785                 :::*                    LISTEN      199179     212698803   -
tcp6       1      0 ::1:8785                ::1:45518               CLOSE_WAIT  0          0           -

अगली lsofप्रक्रिया उस इनोड से जुड़ी प्रक्रिया को प्राप्त करने के लिए।

$ sudo lsof | awk 'NR==1 || /212698803/'
COMMAND      PID    TID                USER   FD      TYPE             DEVICE   SIZE/OFF       NODE NAME
envelope_ 145661 145766               drees   15u     IPv6          212698803        0t0        TCP *:8785 (LISTEN)

अब हम प्रक्रिया आईडी को जानते हैं, इसलिए हम प्रक्रिया को देख सकते हैं। और दुर्भाग्य से यह एक दोषपूर्ण प्रक्रिया है। और इसका PPID 1 है, इसलिए हम इसके अभिभावक को भी नहीं मार सकते (देखें कि मैं किस तरह की प्रक्रिया को मार सकता हूं, जिसके माता-पिता अयोग्य हैं? )। सिद्धांत रूप में यह अंतत: इसे साफ कर सकता है, लेकिन मैं इंतजार करते-करते थक गया और रिबूट हो गया।

$ ps -lf -p 145661
F S UID         PID   PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
0 Z drees    145661      1  2  80   0 -     0 exit   May01 ?        00:40:10 [envelope] <defunct>

1
अब महीनों से इस समाधान की तलाश कर रहे हैं। इस जेम के लिए धन्यवाद
मनीष प्रसाद

मैं वर्षों से इस तरह का समाधान ढूंढ रहा हूं। धन्यवाद! यहाँ एक downsides में से एक यह है कि यदि एक NFS क्लाइंट या सर्वर नीचे से टकराया है, तो lsof | awk 'NR==1 || /212698803/'( lsof -Nकेवल NFS दिखाने के लिए भी ) प्रतिक्रिया देने में बहुत धीमा हो सकता है और समय समाप्त हो सकता है। एक और नकारात्मक पहलू यह है कि जब आप इस समस्या का निवारण कर रहे हैं तो इनोड बदल सकता है।
स्टीफन लासवर्स्की

4

मुझे नहीं पता कि ये विशेष रूप से क्या हैं, लेकिन कर्नेल मॉड्यूल (उदाहरण के लिए एनएफएस) में इन सॉकेट्स के साथ जुड़ने के लिए पीआईडी ​​नहीं है। लसमोड में कुछ संदिग्ध लग रही है।


lsmod कुछ नहीं देता है। यह सर्वर एक एनएफएस क्लाइंट है। यह वर्तमान में मेरा # 1 संदिग्ध है।
mhost

यह बताता है कि कर्नेल के एक नए उदाहरण के बाद क्लाइंट पोर्ट क्यों बदल गए हैं।
andyortlieb

आपको इसे अस्वीकार नहीं किया जाना चाहिए क्योंकि यह पूरी तरह से कानूनी जवाब है। इसने मुझे एक ऐसा मामला खोजने में मदद की, जहाँ अन्य उत्तर (rpcbind या lsof का उपयोग करके) मदद नहीं की। (और हाँ, यह NFS था।) धन्यवाद!
पीटर हैंनसेन

हम्म, मुझे आश्चर्य है कि यह एनएफएस क्लाइंट को एक पीआईडी ​​क्यों नहीं सौंपता है ताकि आप देख सकें कि इसके साथ क्या हो रहा है ... मुझे लगता है कि इसके लिए एक श्रमिक धागा या कुछ और चाहिए होगा?
समब

3

मुझे नहीं पता कि यह उपयोगी हो सकता है। मेरे पास एक ही समस्या थी और मैंने जो किया वह निम्न है: पहला, मैंने विकल्प-ए (सभी) और -ई (विस्तारित) के साथ नेटस्टैट कहा। बाद के विकल्प के साथ मैं इस्तेमाल किए गए पोर्ट से जुड़े इनोड को देख सकता हूं। फिर, मैंने lsof कहा। grep इनोड नंबर प्राप्त किया और मुझे उस इनोड से जुड़ी प्रक्रिया की PID मिल गई। कि मेरे मामले में काम किया।


0

क्या इस पोर्ट से कोई ट्रैफ़िक आ रहा है या नहीं जा रहा है, जाँच लें कि tcpdump -vv -x s 1500 port 37398 -w trace.outफ़ाइल कैप्चर में आपकी कैप्चर सेव के साथ है। इसके बाद आप इसे वायरशार्क से खोल सकते हैं, या tcpdump -vv port 37398सीधे व्हाट्स पर जा रहे हैं।

उस पोर्ट को टेलनेट करने का प्रयास करें udp सॉकेट के लिए नेटकाट का उपयोग करें शायद आपको किसी तरह का बैनर मिल जाए जो मदद करता है।

Rakhunter जाओ और एक पिछले दरवाजे के लिए अपने सिस्टम की जाँच करें।

अपने इनस्टॉल मीडिया से lsof / netstat के md5 हैश की तुलना उन फाइलों से करें जहां अपडैट नहीं है।


मैं दोनों बंदरगाहों के लिए स्थानीय रूप से netcat करने की कोशिश की और यह कुछ भी प्रदर्शित नहीं करता है। टीसीपी पोर्ट के लिए, यह बंद हो जाता है अगर मैं कुछ भी टाइप करता हूं और फिर प्रवेश करता हूं। यदि मैं Ctrl + C दबाता हूं तो UDP एक ही बंद हो जाती है। मेरे पास जगह-जगह iptables हैं, और यह उन बंदरगाहों से कनेक्शन की अनुमति नहीं देता है, इसलिए जब तक वे iptables को दरकिनार नहीं करते हैं, मैं कल्पना नहीं कर सकता कि कुछ उनके साथ जुड़ रहा है।
19

यह किस प्रकार का सर्वर है DB, APP .. आप किस सॉफ्टवेयर का उपयोग कर रहे हैं?
इज़ाक

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