पिंग "लोकलहोस्ट" और पिंग "लोकल आईपी एड्रेस" के बीच अंतर क्यों है?


32

Windows का उपयोग करना cmdऔर उस pingपर मुझे निम्न परिणाम मिले:

  • पिंगिंग "लोकलहोस्ट":

यहां छवि विवरण दर्ज करें

  • पिंगिंग "192.168.0.10" (स्थानीय आईपी पता):

यहां छवि विवरण दर्ज करें

क्या दोनों स्थितियाँ बिल्कुल एक जैसी नहीं हैं?

मेरा मतलब है, मैं एक ही इंटरफ़ेस, एक ही मशीन और एक ही पते को पिंग कर रहा हूं। मुझे ऐसे विभिन्न परिणाम क्यों मिले?

संपादित करें: यहाँ मेरी ipconfig /allस्क्रीन है:

यहां छवि विवरण दर्ज करें


18
आप एक ही इंटरफ़ेस पिंग नहीं कर रहे हैं , यहां तक ​​कि किसी भी भौतिक इंटरफेस के बिना भी आपके पास अभी भी "स्थानीय होस्ट" है।
तमारा विज्समैन

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

मुझे पूरा यकीन है कि इस सवाल को स्टैकओवरफ़्लो से पहले पूछा गया है, अगर मैं इसे पा सकता हूं ...
क्रिस एस

इसका दिल इस SO द्वारा उत्तर दिया जाता है, मेरा मानना ​​है: stackoverflow.com/questions/6938039/…
Dawson Toth

मुझे लगता है कि दिलचस्प बात यह है: दूरस्थ होस्ट को पिंग करते समय आपको कई बाइट्स ट्रांसफर और एक टीटीएल क्यों मिलता है, लेकिन न तो लोकलहोस्ट को पिंग करते समय? किसी को भी इस बात की परवाह नहीं है कि आईपी एड्रेस फॉर्मेट थोड़ा हटकर है।
धसानन

जवाबों:


46

आप एक ही इंटरफ़ेस पिंग नहीं कर रहे हैं , बिना किसी भौतिक इंटरफेस के आपके पास अभी भी "स्थानीय होस्ट" है।

आपका localhostअपने "आंतरिक" IP से आपके कंप्यूटर का उल्लेख करने के लिए, आपके कंप्यूटर के किसी भी "बाहरी" IP से नहीं किया जाता है। इसलिए, पिंग पैकेट किसी भी भौतिक नेटवर्क इंटरफ़ेस से नहीं गुजरते हैं; केवल एक वर्चुअल लूप बैक इंटरफ़ेस के माध्यम से, जो बिना किसी भौतिक हॉप्स के सीधे पोर्ट से पोर्ट पर पैकेट भेजता है।

आपको अभी भी आश्चर्य हो सकता है कि क्यों localhostहल हो रहा है ::1, जबकि परंपरागत रूप से हम उम्मीद करेंगे कि यह IPv4 पते पर हल होगा 127.0.0.1। ध्यान दें कि .localhostपारंपरिक रूप से एक TLD ( RFC 2606 देखें ) जो लूप बैक IP पते (IPv4 के लिए, RFC 3330 , विशेष रूप से 127.0.0.0/8) पर वापस इंगित करता है ।

खोज localhostका उपयोग कर nslookupहमें देता है:

nslookup localhost

...
Name:    localhost
Addresses:  ::1
          127.0.0.1

इस प्रकार विंडोज IPv6 लूप बैक आईपी एड्रेस ::1( RFC 2373 देखें ) का उपयोग करना पसंद करता है क्योंकि यह पहले सूचीबद्ध है।

ठीक है, तो, यह कहां से आता है, आइए मेजबान फ़ाइल को देखें।

type %WINDIR%\System32\Drivers\Etc\Hosts

...
# localhost name resolution is handled within DNS itself.
#       127.0.0.1       localhost
#       ::1             localhost
...

हम्म, हमें विंडोज की डीएनएस सेटिंग्स को देखना होगा।

यह KB आलेख हमें एक ऐसी सेटिंग के बारे में बताता है जो प्रभावित करती है कि विंडोज़ क्या पसंद करती है, बोल्ड में जोर दिया:

  1. रजिस्ट्री संपादक में, निम्न रजिस्ट्री उपकुंजी का पता लगाएं और फिर क्लिक करें:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters
    
  2. DisabledCompords प्रविष्टि को संशोधित करने के लिए DisabledCompords पर डबल-क्लिक करें।

    नोट: यदि DisabledCompords प्रविष्टि अनुपलब्ध है, तो आपको इसे बनाना होगा। यह करने के लिए, इन उपायों का पालन करें:

    1. संपादन मेनू में, नया इंगित करें और फिर DWORD (32-बिट) मान पर क्लिक करें।

    2. DisabledCompords टाइप करें, और उसके बाद ENTER दबाएँ।

    3. DisabledCompords पर डबल-क्लिक करें।

  3. मान डेटा में निम्न में से किसी एक मान को टाइप करें: IPv6 प्रोटोकॉल को वांछित स्थिति में कॉन्फ़िगर करने के लिए फ़ील्ड, और उसके बाद ठीक क्लिक करें:

    • 0सभी IPv6 घटकों को सक्षम करने के लिए टाइप करें। (विंडोज डिफ़ॉल्ट सेटिंग)
    • 0xffffffffIPv6 लूपबैक इंटरफ़ेस को छोड़कर सभी IPv6 घटकों को अक्षम करने का प्रकार । यह मान भी Windows को कॉन्फ़िगर करता है, ताकि उपसर्ग नीति तालिका में प्रविष्टियों को संशोधित करके IPv6 पर इंटरनेट प्रोटोकॉल संस्करण 4 (IPv4) का उपयोग किया जा सके। अधिक जानकारी के लिए, स्रोत और गंतव्य पता चयन देखें।
    • 0x20उपसर्ग नीति तालिका में प्रविष्टियों को संशोधित करके IPv6 पर IPv4 पसंद करने का प्रकार ।
    • 0x10सभी nontunnel इंटरफेस (LAN और प्वाइंट-टू-प्वाइंट प्रोटोकॉल [PPP] इंटरफेस) पर IPv6 को निष्क्रिय करने के लिए टाइप करें।
    • 0x01सभी सुरंग इंटरफेस पर IPv6 को निष्क्रिय करने का प्रकार । इनमें इंट्रा-साइट ऑटोमैटिक टनल एड्रेसिंग प्रोटोकॉल (ISATAP), 6to4, और टेरेडो शामिल हैं।
    • 0x11IPv6 लूपबैक इंटरफ़ेस को छोड़कर सभी IPv6 इंटरफेस को निष्क्रिय करने का प्रकार ।
  4. इस सेटिंग को प्रभावी करने के लिए कंप्यूटर को पुनरारंभ करें।

यह उपसर्ग नीति तालिका क्या है?

netsh interface ipv6 show prefixpolicies(या prefixpolicyपहले के संस्करणों पर)

Precedence  Label  Prefix
----------  -----  --------------------------------
        50      0  ::1/128
        45     13  fc00::/7
        40      1  ::/0
        10      4  ::ffff:0:0/96
         7     14  2002::/16
         5      5  2001::/32
         1     11  fec0::/10
         1     12  3ffe::/16
         1     10  ::/96

यह तालिका तय करती है कि DNS के हल के दौरान अन्य उपसर्गों पर उपसर्गों को क्या वरीयता मिलती है।

आह, इसलिए उस KB का उपयोग करते हुए हम यहां प्रविष्टियाँ जोड़ सकते हैं जो यह दर्शाती हैं कि IPv4 में IPv6 की तुलना में अधिक पूर्वता है।

ध्यान दें: इस व्यवहार को ओवरराइड करने का कोई कारण नहीं है, जब तक कि आप सुसंगत रूप से समस्याओं का सामना नहीं कर रहे हैं। हमारे विंडोज सर्वर पर इस सेटिंग को बदलने से हमारा मेल सर्वर टूट गया, इसलिए इसे सावधानी से संभालना चाहिए ...


वास्तव में 'लोकलहोस्ट' एक उच्च-स्तरीय डोमेन नहीं है, बल्कि एक होस्टनाम है। भेद अत्यधिक सूक्ष्म है, लेकिन मूल रूप से प्रत्येक डोमेन नाम एक होस्टनाम है, लेकिन सभी होस्टनाम डोमेन नाम नहीं हैं। सम्मेलन के द्वारा, एक पूर्ण विराम में समाप्त होने वाले होस्टनामों में FQDN होना चाहिए, और अधिकांश होस्टनामों को पूर्ण स्टॉप में समाप्त नहीं करना चाहिए, मूल डोमेन में जोड़कर FQDN में परिवर्तित किया जा सकता है, यदि आवश्यकता हो तो रूट को वापस जोड़कर। हालाँकि, वे सिर्फ सम्मेलन हैं। 'लोकलहोस्ट' RFC 2606 द्वारा आरक्षित है, इसे TLD बनने से रोकने के लिए, क्योंकि यह सही काम नहीं करने की संभावना है, और समस्याएँ भी पैदा कर सकता है।
केविन कैथकार्ट

2
गलत, RFC 2606 में उल्लेख किया गया है: पारंपरिक रूप से परिभाषित किए गए नोट और The ".localhost" TLD has traditionally been statically defined in host DNS implementations as having an A record pointing to the loop back IP address and is reserved for such use.नोट का उपयोग करें । वास्तव में, ऐसे काम जो इस बात की पुष्टि करते हैं कि यह इस प्रश्न के संदर्भ में कम से कम सच है। आपका अंतिम वाक्य वह नहीं है जो RFC ने कहा था, कृपया उद्धरण दें यदि वह "इसे TLD बनने से रोकता है" क्योंकि यह जो कहता है वह परंपरागत रूप से TLD है। वरना वे उल्लेख नहीं करतेTLDping localhost.the .localhost TLD
तमारा विज्समैन

मैं थोड़ा मजबूत था। localhostएक TLD हो सकता है यदि एक वास्तविक DNS सर्वर इसके लिए प्रतिक्रिया देता है, लेकिन आम तौर पर लोकलहोस्ट को आमतौर पर / etc / मेजबान में होस्टनाम के रूप में परिभाषित किया जाता है, जिसमें DNS के माध्यम से हल करने के लिए होस्टनाम को पहले देखा जाता है। जैसे कि dig localhostआमतौर पर 127.0.0.1 के लिए "ए" रिकॉर्ड, या :: 1 के लिए एएएए रिकॉर्ड नहीं लौटता है। इसका मतलब है कि जब यह कहते हैं traditionally been statically defined in host DNS implementations, तो RFC गलत हो जाता है , लेकिन सिस्टम के नाम लुकअप सेवा से वापस आ जाता है, जो हमेशा DNS का उपयोग नहीं करता है।
केविन कैथार्ट

@KevinCathcart: हम यहां एक विंडोज प्रश्न में हैं, और विंडोज संस्करणों का उल्लेख है कि यह DNS द्वारा ही किया जाता है। nslookupरिकॉर्ड वापस करता है। तो, YMMV ...
तमारा विजसमैन

1
@KevinCathcart मेरे digरिटर्न A, AAAA और NS रिकॉर्ड्स के लिए localhost, जिसमें एक प्राधिकरण रिकॉर्ड शामिल है:localhost. IN NS localhost.
KutuluMike

20

लूपबैक इंटरफ़ेस अपने ईथरनेट इंटरफेस (रों) की स्वतंत्र रूप से मौजूद है।

IPv6 की जटिलता के बिना भी आपके दो अलग पते होंगे।

लूपबैक IPv4 पता: 127.0.0.1
आपके ईथरनेट इंटरफ़ेस का IPv4 पता: 192.168.0.10

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


11

लोकलहोस्ट और आपका आईपी एड्रेस एक ही बात नहीं है।

लोकलहोस्ट एक विशेष सॉफ्टवेयर है जो केवल आईपी एड्रेस है, जो आपके सिस्टम से जुड़ा हुआ है। लोकलहोस्ट, या 127.0.0.1, लूप बैक एड्रेस है। यह हमेशा आपके सिस्टम को इंगित करता है, और केवल आपके कंप्यूटर से ही एक्सेस किया जा सकता है। यह रूटिंग OS स्तर पर होती है, और निश्चित रूप से NIC को कभी नहीं छोड़ती है ... इसलिए इसके नेटवर्क से टकराने का कोई मौका नहीं है ...।

अपने खुद के आईपी पते को पिंग करना समान है, लेकिन इसमें संभावित रूप से संपूर्ण नेटवर्किंग स्टैक शामिल है, क्योंकि यह पता लगाने की आवश्यकता है कि यह आपका आईपी पता है, और सही तरीके से रूट करता है ...

प्रभाव समान होना चाहिए, लेकिन मतभेद हो सकते हैं।

उदाहरण के लिए, अपने नेटवर्क केबल को अनप्लग करें। अपने स्थिर IP पते को पिंग करें। आपको होस्ट या अन्य त्रुटियों के लिए कोई मार्ग नहीं मिल सकता है। अब लोकलहोस्ट या 127.0.0.1 पिंग करें, और यह काम करेगा।


तो, लोकलहोस्ट पिंग बेकार है? मेरा मतलब है, अगर मैं अपने इंटरफ़ेस का परीक्षण करना चाहता हूं ....
डिओगो

4
@DiogoRocha सही है, पिंग लोकलहोस्ट कभी हार्डवेयर को नहीं छूता है। 192.168.0.10 हेक पिंग आपको एक विश्वसनीय जानकारी भी नहीं दे सकता है यदि नेटवर्क कार्ड का ड्राइवर खुद को दिए गए अनुरोधों को स्वीकार करता है।
स्कॉट चैंबरलेन

@DiogoRocha आपकी शब्दावली बंद है। 127.0.0.1 एक इंटरफ़ेस है, लेकिन एक आभासी है।
बार्लॉप

@ डिओगो, काफी नहीं। लोकलहोस्ट आपको किसी एप्लिकेशन के नेटवर्क व्यवहार का परीक्षण करने या यह सत्यापित करने की अनुमति देता है कि नेटवर्क स्टैक काम कर रहा है .... लेकिन यह ड्राइवर का परीक्षण नहीं करता है। उदाहरण के लिए, यदि आपके पास एक खराब एनआईसी ड्राइवर है, तो लोकलहोस्ट यह साबित करने में सक्षम हो सकता है कि यह निक ड्राइवर है। हालांकि आपका माइलेज निश्चित रूप से अलग होगा !!
बेंजामिन शोलनिक

6

मुझे पता है कि स्क्रीनशॉट से यह सवाल लिनक्स के बारे में नहीं है, लेकिन यह शायद "बिंदु में" एक उपयोगी बनाता है।

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

जिस डिवाइस को IP असाइन किया गया है वह पैकेट कभी नहीं देखेगा। (यह अच्छा है क्योंकि यह उन पैकेटों के साथ सही काम नहीं करेगा: यह चूसने वालों को बाहर भेजना चाहेगा।)

हालाँकि, यदि वह इंटरफ़ेस जो उस IP को रखता है नीचे जाने के लिए होना चाहिए, तो आपने वह कनेक्शन खो दिया है। लूपबैक में मैपिंग काम करना बंद कर देगी।

तो दूसरे शब्दों में, लूपबैक डिवाइस के लिए उन स्थानीय पतों को उपनाम देना एक व्यावहारिक डिजाइन है।

कोड संदर्भ:

http://lxr.linux.no/#linux+v3.3.2/net/ipv4/route.c#L2623

फ़ंक्शन पर एक नज़र डालें ip_route_output_slow। यह कॉल करता है fib_lookup, और यदि यह फ़ंक्शन कोड वापस करता है RTN_LOCAL, dev_outतो लूपबैक में फिर से लिखा जाता है:

http://lxr.linux.no/#linux+v3.3.2/net/ipv4/route.c#L2769


4

ऐसा लगता है कि "लोकलहोस्ट" उर्फ ​​आईपीवी 6 लूपबैक को हल कर रहा है और जब आप स्पष्ट रूप से आईपीवी 4 पते का उपयोग करते हैं तो यह स्पष्ट रूप से नहीं होता है।


6
OS आपसे असहमत दिखाई देता है।
ईबीग्रीन

6
इससे कोई फर्क नहीं पड़ता, यह जाहिरा तौर पर कंप्यूटर के लिए स्थापित है, लोकलहोस्ट IPv6 लूपबैक मार रहा है।
रोब

1
@DiogoRocha IPV4 दुनिया में ऐसा कोई पता नहीं है :: 1। 127.0.0.1 आईपी वहाँ लूपबैक के लिए आरक्षित है। :: 1 हालांकि IPV6 के लिए DOES मौजूद है, और 127.0.0.1 की तरह, IPV6 लूपबैक के लिए आरक्षित है।
एंडी १

4
यह प्रश्न का उत्तर कैसे देता है? तुम सिर्फ स्पष्ट कह रहे हो।
तमारा विज्समैन

4
कृपया अपने उत्तर पर विस्तार से बताएं, यह वास्तव में कुछ भी स्पष्ट नहीं करता है
Ivo Flipse

1

@ebwhite क्या बारे में सही है।

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

आम तौर पर, सिस्टम IPv6 के लिए डिफ़ॉल्ट होता है यदि IPv6 उपलब्ध है, तो आपका सिस्टम काम कर रहा है जैसा कि इसे करना चाहिए ।


वह बाइट्स को हस्तांतरित नहीं करता है या TTL, स्क्रीनशॉट में से एक के साथ, वह IPv6 है? क्यूं कर?
बार्लॉप

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