Netstat आउटपुट के स्थानीय पते में ::: क्या है?


37

यह netstat -tulpn का आउटपुट है जो मुझे मिलता है:

tcp        0      0 127.0.0.1:2208              0.0.0.0:*                   LISTEN      2055/hpiod
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      2077/cupsd
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      2138/sendmail: acce
tcp        0      0 127.0.0.1:2207              0.0.0.0:*                   LISTEN      2060/python
tcp        0      0 0.0.0.0:735                 0.0.0.0:*                   LISTEN      1825/rpc.statd
tcp        0      0 :::111                      :::*                        LISTEN      1781/rpcbind
tcp        0      0 :::80                       :::*                        LISTEN      2624/httpd
tcp        0      0 :::22                       :::*                        LISTEN      2096/sshd
udp        0      0 0.0.0.0:32768               0.0.0.0:*                               2398/avahi-daemon:
udp        0      0 0.0.0.0:68                  0.0.0.0:*                               1581/dhclient
udp        0      0 0.0.0.0:729                 0.0.0.0:*                               1825/rpc.statd
udp        0      0 0.0.0.0:732                 0.0.0.0:*                               1825/rpc.statd
udp        0      0 0.0.0.0:5353                0.0.0.0:*                               2398/avahi-daemon:
udp        0      0 0.0.0.0:631                 0.0.0.0:*                               2077/cupsd
udp        0      0 :::32769                    :::*                                    2398/avahi-daemon:
udp        0      0 :::684                      :::*                                    1781/rpcbind
udp        0      0 :::5353                     :::*                                    2398/avahi-daemon:
udp        0      0 :::111                      :::*                                    1781/rpcbind

मैं यह जानने के लिए उत्सुक हूं: :::स्थानीय पते का क्या मतलब है? और क्या है 0.0.0.0:*और :::*विदेश पता में?


3
आप IPv6 में अग्रणी शून्य को छोड़ सकते हैं, ताकि बस बृहदान्त्र छोड़ दें।
लुई

वास्तव में मैं भी जल्द ही बात की थी। मुझे नहीं पता कि दो, +1 के बजाय तीन कॉलन क्यों हैं। मुझे लगता है कि पिछले एक बंदरगाह का संकेत दे रहा है।
लुई

जवाबों:


22

अन्य उत्तर में से कई का उल्लेख है, :: सभी शून्य का प्रतिनिधित्व करता है, और फिर netstat एक पते के बाद एक बृहदान्त्र दिखा सकता है, इसलिए आपको तीन कॉलोन मिलते हैं।

मैंने इनमें से किसी भी उत्तर को नहीं देखा, इस सवाल का जवाब है कि इसका वास्तव में क्या मतलब है (इस मामले में)।

Netstat के मामले में, :: (IPv6 में) या 0.0.0.0 (IPv4 में) का मूल अर्थ "कोई" है।
इसलिए, सॉफ्टवेयर किसी भी पते पर टीसीपी पोर्ट 80 (HTTP पोर्ट) पर सुन रहा है।

यदि आपके पास कई नेटवर्क कार्ड इंटरफेस हैं (जो आप करते हैं, जैसा कि मैं एक क्षण में समझाता हूं), तो आपके लिए केवल एक विशिष्ट पते पर सुनना संभव है। उदाहरण के लिए, कुछ सॉफ़्टवेयर के साथ, आप कुछ ऐसा कर सकते थे जैसे कि आपके HTTP सर्वर एक नेटवर्क कार्ड पर सुनते हैं जो वायर्ड ईथरनेट का उपयोग करता है, लेकिन वायरलेस नेटवर्किंग का उपयोग करने वाले नेटवर्क कार्ड पर प्रतिक्रिया नहीं देता है। यदि आपने ऐसा किया है, तो आपका कंप्यूटर IPv4 192.0.2.100:80 (या IPv6 2001: db8: abcd :: 1234: 80) पर सुनने जैसा कुछ कर सकता है।

लेकिन, जब से आप "::: 80" सुन रहे हैं, आपका कंप्यूटर केवल एक आने वाले आईपी पते पर पोर्ट 80 ट्रैफ़िक के लिए नहीं सुन रहा है, तो आप किसी भी आईपीवी 6 पते पर पोर्ट 80 ट्रैफ़िक के लिए सुन रहे हैं ।

आप क्यों चाहते हैं कि आप जिस इंटरफ़ेस पर सुन रहे हैं, उसके बारे में आप चुप्पी साधे रहें? खैर, एक तरह से मैंने इस क्षमता का उपयोग किया है, कभी-कभी, कंप्यूटर को लूपबैक इंटरफ़ेस को सुनने के लिए है। (याद रखें जब मैंने कहा था कि आपके पास कई नेटवर्क कार्ड इंटरफेस हैं ... यह एक कारण है जो मैंने कहा है। मैं अनुमान लगा रहा हूं कि आपके पास एक वास्तविक भौतिक नेटवर्क कनेक्शन है, और आपके पास लूपबैक इंटरफ़ेस भी है। यह सबसे विशिष्ट सेटअप है। इन दिनों अधिकांश प्रकार के कंप्यूटर।) मैं ऐसा SSH टनलिंग के साथ करता हूं। फिर मैं कुछ ऐसा कर सकता हूं जैसे एक स्थानीय वीएनसी दर्शक को एसएसएच सुरंग के स्थानीय छोर से कनेक्ट करें। लूपबैक इंटरफ़ेस पर एसएसएच सुरंग सुनने से, मुझे यह चिंता करने की ज़रूरत नहीं है कि एसएसएच सुरंग यातायात को सुन सकती है जो कि भौतिक नेटवर्क इंटरफेस में से एक में आती है। इसलिए,

कुछ मामलों में, 0.0.0.0 या :: मूल रूप से "अनिर्दिष्ट" पते का अर्थ है, जैसा कि RFC 4291 सेक्शन 2.5.2 द्वारा निर्दिष्ट किया गया हैजो कहता है "यह एक पते की अनुपस्थिति को इंगित करता है।" मैंने कभी-कभी ऐसा देखा है जब सॉफ़्टवेयर "अमान्य" पते को संदर्भित करने का प्रयास करता है (जैसे कि अगर कंप्यूटर में कोई पता निर्दिष्ट नहीं है, तो शायद), जहां कोई विशिष्ट पता प्रदर्शित करने के लिए नहीं है। हालाँकि, इस मामले में, :: या 0.0.0.0 "अज्ञात" पते को संदर्भित करता है। यही कारण है कि सभी LISTENING पोर्ट "अज्ञात" के रूप में दिखाई देते हैं। एक स्थापित कनेक्शन के लिए, आप जानते हैं कि दूरस्थ अंत कौन है, क्योंकि आप उनके साथ संवाद कर रहे हैं। "लिस्टेनिंग" कनेक्शन के लिए, आप ब्रांड की नई बातचीत सुन रहे हैं। यह यातायात दुनिया में कहीं भी, संभवतः, से, आ सकता है। आने वाला ट्रैफ़िक किसी भी पते से आ सकता है। और, जिस तरह से नेस्टैट प्रदर्शित करता है वह सभी शून्य का पता निर्दिष्ट करना है। चूंकि उपयोग करने के लिए कोई विशिष्ट पता नहीं है,

मैं सिर्फ इस बात को ध्यान में रखकर लपेटूंगा कि सभी नेटवर्क इंटरफेस पर सॉफ्टवेयर सुनना एक बहुत ही सामान्य बात है। कुछ सॉफ़्टवेयर केवल एक विशिष्ट इंटरनेट पते या शायद एक विशिष्ट नेटवर्क कार्ड को सुनने के लिए कॉन्फ़िगर किए जा सकते हैं। और यह थोड़ा अधिक सुरक्षित हो सकता है, क्योंकि तब सॉफ्टवेयर नहीं सुन रहा है जहां कोई वैध यातायात की उम्मीद नहीं है। यह हमला करने की क्षमता को सीमित कर सकता है। हालाँकि, बहुत सारे सॉफ़्टवेयर में ऐसा कोई विकल्प नहीं है, या ऐसा कोई विकल्प कुछ दफन / छिपा हुआ है। इसलिए, सभी नेटवर्क कार्डों पर सुनना कोई सुपर भयानक बात नहीं है। यह काफी सामान्य है। और, यदि आप सॉफ़्टवेयर को किसी विशिष्ट नेटवर्क पोर्ट पर ट्रैफ़िक प्राप्त करने से रोकना चाहते हैं, तो इसे पूरा करने के अन्य तरीके हैं, जिनमें फ़ायरवॉल के साथ अवांछित ट्रैफ़िक को रोकना भी शामिल है। यदि आप ऐसा करते हैं, तो फ़ायरवॉल यातायात को अवरुद्ध कर सकता है, लेकिन (वेब) सर्वर अभी भी उस नेटवर्क इंटरफेस पर यातायात के लिए सुन सकता है। उस स्थिति में, सर्वर को उस इंटरफ़ेस पर कभी भी ट्रैफ़िक नहीं मिलेगा, लेकिन नेटस्टैट अभी भी रिपोर्ट करेगा कि सर्वर सुन रहा है (उस ट्रैफ़िक के लिए जो उस सर्वर तक कभी नहीं पहुंचेगा)। नेटस्टैट रिपोर्ट देखकर कि सर्वर सॉफ्टवेयर सभी इंटरफेस पर सुन रहा है, बहुत आम है, और इसलिए यह विशेष रूप से चिंतित होने के लिए कुछ नहीं है।

अंत में, मैं उल्लेख करूंगा कि यह प्रश्न, और यह उत्तर, लिनक्स-विशिष्ट नहीं हैं। (मैं इसका उल्लेख इसलिए कर रहा हूं क्योंकि मुझे इस प्रश्न पर "लिनक्स" टैग दिखाई दे रहा है।) कमांड लाइन पैरामीटर दिखाया गया है, और उदाहरण आउटपुट दिखाया गया है, शायद लिनक्स से आया है, और विभिन्न ऑपरेटिंग सिस्टम चीजों को थोड़ा अलग दिखा सकते हैं। हालांकि, :: और 0.0.0.0 के विषय के बारे में, इस संबंध में नेटस्टैट जिस तरह से काम करता है, वह बीएसडी या माइक्रोसॉफ्ट विंडोज (और संभवतः कई अन्य सिस्टम) चलाने वाली मशीन पर समान है।


8

जैसा कि दूसरों ने कहा, यह इस संदर्भ के लिए प्राकृतिक IPv6 संकेतन है।

चलो संबंधित मानकों का हवाला देते हैं और व्याख्या करते हैं:

::: * == 0000.0000.0000.0000.0000.0000.0000.0000: *

http://tools.ietf.org/html/rfc5952#section-4 का कहना है कि विहित (न केवल एक संभव आशुलिपि) IPv6 पते हैं:

  • वर्ण कम के साथ हेक्स में लिखा है a-f
  • हर 2 बाइट्स द्वारा समूहीकृत :
  • अग्रणी 0 का MUST निकाला जाना चाहिए0000बन जाता है 0
  • :0:0:0: MUST के सबसे लंबे अनुक्रम को परिवर्तित किया जाना चाहिए:: । केवल एक बार किया जा सकता है, या अस्पष्टता को बढ़ावा मिलेगा।

तो :::*इसका मतलब है:

  • 0000:0000:0000:0000:0000:0000:0000किसी भी बंदरगाह पर ( :*)
  • == 0:0:0:0:0:0:0(अनुगामी 0 निष्कासन)
  • == ::(लगातार शून्य संकुचन)

0000.0000.0000.0000.0000.0000.0000.0000: * == अनिर्दिष्ट पता

http://tools.ietf.org/html/rfc4291#section-2.5.2 "अनिर्दिष्ट पते" को परिभाषित करता है:

पते 0: 0: 0: 0: 0: 0: 0: 0 को अनिर्दिष्ट पता कहा जाता है। इसे कभी भी किसी भी नोड को नहीं सौंपा जाना चाहिए। यह एक पते की अनुपस्थिति को इंगित करता है। इसके उपयोग का एक उदाहरण किसी भी IPv6 पैकेट के सोर्स एड्रेस फील्ड में है, जो शुरुआती होस्ट द्वारा भेजा गया है, इससे पहले कि वह अपना पता सीखे।

अनिर्दिष्ट पते का उपयोग IPv6 पैकेट के गंतव्य पते या IPv6 रूटिंग हेडर के रूप में नहीं किया जाना चाहिए। अनिर्दिष्ट के स्रोत पते के साथ एक IPv6 पैकेट को IPv6 राउटर द्वारा कभी भी अग्रेषित नहीं किया जाना चाहिए।

जो इस मामले में जैसे एन / ए कॉलम के लिए एक अच्छा विकल्प बनाता है।

तो ::ऐसा नहीं है localhost , जो कहता है कि एक ही दस्तावेज़ है ::1

पर netstat1.60, उत्पादन पर प्रोटोकॉल पढ़ा tcp6और udp6आईपीवी 6 है, जो बेहतर क्या चल रहा है दिखाने के लिए, उदाहरण के लिए:

tcp6       0      0 :::22                   :::*                    LISTEN      1201/sshd
udp6       0      0 :::5353                 :::*                                1449/avahi-daemon:

यह भी देखें:


3

यह IPv6 पते को संदर्भित करता है। IPv6 में हम संशोधक के 0प्रयोग के एक क्रम को गाढ़ा कर सकते हैं::

उदाहरण के लिए,

0: 0: 0: 0: 0: 0: 0: 1

के रूप में लिखा जा सकता है

:: 1

लेकिन इस संबंध में कुछ विशिष्ट नियमों का पालन किया जाना चाहिए, जिसे आप किसी भी IPv6 ट्यूटोरियल पर देख सकते हैं


2

:: 1 IPv6 के लिए लोकलहोस्ट है, जैसे IPv4 के लिए 127.0.0.1।

::: * 0: 0: 1: * (IPv6 0: 0: 0, port *) का लघु संस्करण है, यह IPv4 0.0.0.0:* जैसा है। विदेशी पता स्तंभ में इन दोनों का मतलब है कि कोई विदेशी पता स्तंभ नहीं है। सुनने वाले सॉकेट के मामले में यह स्पष्ट है कि जुड़ा हुआ विदेशी पता (अभी तक) नहीं है। Udp सॉकेट के मामले में आपके पास आमतौर पर विदेशी पते नहीं होते हैं, इसलिए ये भी 0.0.0.0:* के साथ सूचीबद्ध होते हैं।


डाउनवोटर्स के लिए: क्या आप कृपया टिप्पणी कर सकते हैं?
वर्नर हेन्ज

0

::: * IPv6 में आपका लोकलहोस्ट / लूप वापस होगा :)

मूल रूप से, आपके पास स्थानीय रूप से सेवाओं को सुनने और कनेक्ट करने वाली सेवाएं हैं।


1
यदि मैं tools.ietf.org/html/rfc4291#section-2.5.2 की सही ढंग से व्याख्या करता हूं , ::तो लूपबैक नहीं है : यह अनिर्दिष्ट पता है, और लूपबैक चालू है ::1
सिरो सेंटिल्ली 新疆 改造 i i 事件 '

मैं Ciro से सहमत हूं: :: 1 लूपबैक है, न कि ::: *।
TOOGAM

0

मैं यह जानने के लिए उत्सुक हूं: स्थानीय पते में ::: का क्या अर्थ है?

नेटस्टैट का लिनक्स संस्करण एक संकेतन का उपयोग करता है: जहां आईपी पता नंगे प्रदर्शित होता है *।

तो ::: 111 का अर्थ है IP का :: और 111 का एक बंदरगाह।

:: नियम का उपयोग करके संघनित रूप में एक IPv6 पता है कि शून्य का एक रन के साथ प्रतिस्थापित किया जा सकता है ::। पूर्ण रूप से लिखा गया यह 0000: 0000: 0000: 0000: 0000: 0000: 0000: 0000 के बराबर है।

IPv4 के साथ सभी शून्य पता (अनिर्दिष्ट पते के रूप में जाना जाता है) का उपयोग प्लेसहोल्डर मान के रूप में किया जाता है। एक स्थानीय पते के मामले में इसका मतलब है कि सॉकेट सभी आईपीवी 6 इंटरफेस (और सभी आईपीवी 4 इंटरफेस के साथ-साथ सॉकेट विकल्पों पर निर्भर करता है जो कि नेटस्टैट नहीं दिखाता है) पर सुन रहा है।

और विदेशी पते में 0.0.0.0:* और ::: * क्या है?

इसका मतलब है कि सॉकेट एक विशिष्ट विदेशी पते से बाध्य नहीं है। :: या 0.0.0.0 एक अनिर्दिष्ट आईपी पते (क्रमशः IPv4 या IPv6 के लिए) और * एक अनिर्दिष्ट बंदरगाह को इंगित करता है।

टीसीपी के लिए यह केवल आने वाले कनेक्शन के लिए सुनने वाले सॉकेट पर लागू होता है। जब "स्वीकार" एक कनेक्शन को स्वीकार करने के लिए कहा जाता है एक अलग सॉकेट एक परिभाषित दूरस्थ आईपी और बंदरगाह के साथ बनाया जाता है।

यूडीपी के लिए कनेक्शन स्वीकार करने की कोई अवधारणा नहीं है। UDP सॉकेट के विदेशी पते के साथ ::: * के एक विदेशी पते के लिए बाध्य एक एप्लिकेशन पैकेट प्राप्त करने के लिए "रिकवफ्रॉम" एपीआई कॉल का उपयोग करता है और निर्धारित करता है कि वे कहां से आए थे और एक विशिष्ट पते पर पैकेट भेजने के लिए "Sendto" एपीआई कॉल।

* यह अंकन दुर्भाग्यपूर्ण है क्योंकि इसका मतलब है कि प्रदर्शित स्ट्रिंग का मतलब है कि नेटस्टैट में अन्य जगहों पर अलग-अलग चीजें। अधिकांश संदर्भों में 3FFE :: 1234: 5678 का अर्थ होगा IP पता 3FFE: 0000: 0000: 0000: 0000: 0000: 1234: 5678 लेकिन लिनक्स नेटस्टैट आउटपुट में इसका अर्थ है IP पता 3FFE: 0000: 0000: 0000: 0000 : 0000: 1234 और पोर्ट 5678। कंट्रास्ट द्वारा नेटस्टैट का विंडोज़ संस्करण अस्पष्टता से बचने के लिए चौकोर कोष्ठकों में आईपीवी 6 पतों को घेरता है।

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