होस्टनाम का IP चेक करते समय मुझे "hostname: नाम या सेवा ज्ञात नहीं" त्रुटि मिली


13

मैं अपनी कंपनी की क्लाउड सेवा पर Ubuntu 14.04 चला रहा हूं (मेरे उदाहरण में इलास्टिक आईपी है)। मैं अपने उदाहरण के आईपी पते की जांच करना चाहता हूं जो मैं कमांड लाइन द्वारा चला रहा हूं, लेकिन यह काम नहीं किया।

root@ubuntu14-graphite:~# hostname
ubuntu14-graphite
root@ubuntu14-graphite:~# hostname -i
hostname: Name or service not known

मुझे इसका कारण समझ में नहीं आता है। 

मैंने ubuntu14- ग्रेफाइट को पिंग करने की कोशिश की, लेकिन उसने कहा:

unknown host ubuntu14-graphite.

क्या इसका मतलब यह है कि मेरा मेजबान भी मौजूद नहीं है?

मेरे पास एक और सर्वर है (बादल का उदाहरण नहीं बल्कि भौतिक सर्वर)। इस सर्वर में मैंने CentOS 6.7 स्थापित किया है। मैंने होस्टनाम के आईपी की जाँच की और इसमें कुछ खास नहीं होने के बावजूद काम किया /etc/hosts

यहाँ का उत्पादन है cat /etc/hosts:

127.0.0.1   localhost

# The following lines are desirable for IPv6 capable hosts
::1         ip6-localhost ip6-loopback
fe00::0     ip6-localnet
ff00::0     ip6-mcastprefix
ff02::1     ip6-allnodes
ff02::2     ip6-allrouters
ff02::3     ip6-allhosts

जवाबों:


15

इसका मतलब है कि "सिस्टम" (मैं उस शब्द का व्यापक, सामान्य, अस्पष्ट अर्थ में उपयोग कर रहा हूं) यह नहीं जानता कि नाम ubuntu14-graphite आपके मेजबान और उसके आईपी पते से मेल खाता है। (तथ्य यह है कि अपने मेजबान के है नाम यह लगभग निश्चित रूप से इसका मतलब है कि आप के लिए एक लाइन नहीं है ऐसा करने के लिए पर्याप्त नहीं है।) ubuntu14-graphite अपने में /etc/hostsफ़ाइल , और है कि यह आपके नामकरण सेवा में नहीं है (जैसे, DNS या एनआईएस)। नतीजतन, इसे ठीक करने का एक तरीका आपके ubuntu14-graphite(और इसके आईपी पते) को जोड़ना है /etc/hosts। यदि आप अधिक परिष्कृत (वितरित) नामकरण प्रणाली जैसे DNS या NIS (या शायद ActiveDirectory?) का उपयोग कर रहे हैं, तो अंतिम समाधान उस सेवा में अपने होस्ट को जोड़ना है।
_____________
† ...

इस सवाल पर कुछ बहस है कि आपको अपने होस्ट नाम के साथ आईपी एड्रेस क्या जोड़ना चाहिए। हर कोई इस बात से सहमत है कि यह एक पता होना चाहिए जो आपके मेजबान के लिए "काम करता है"; यानी, जैसे आदेश सफल होने चाहिए। कुछ लोग लूपबैक पते का उपयोग करने की सलाह देते हैं। लूपबैक पते हमेशा फॉर्म 127 .BCD के होते हैं ; आम मान 127.0.0.1 और 127.0.1.1 हैं। अन्य लोग LAN पते का उपयोग करने की सलाह देते हैं, जो 192.168 .CD की तरह लग सकता है (लेकिन यह लगभग कुछ भी हो सकता है) - लेकिन आपको अपने होस्ट फ़ाइल में डायनामिक रूप से असाइन किया गया पता नहीं लगाना चाहिए (और, यदि आप DNS के साथ डीएचसीपी का उपयोग कर रहे हैं, तो डायनामिक रूप से असाइन किया गया पता (तों) अपने DNS रिकॉर्ड में स्वचालित रूप से दर्ज किया जाना चाहिए)। आदेशों का उपयोग करें और यह देखने के लिए कि पते क्या उपयोग में हैं।ping A.B.C.Difconfighostname -I


आपके उत्तर के लिए धन्यवाद। मैंने अपना प्रश्न संपादित किया क्योंकि मैंने अपने CentOS सर्वर से संबंधित एक और मामले को देखा है जिसमें 127.0.0.1 लोकलहोस्ट के अलावा कुछ भी नहीं है लेकिन फिर भी मैं अपने होस्ट के आईपी की जांच करने में सक्षम हूं।
एक

खैर, हो सकता है कि CentOS सर्वर का नाम और पता DNS सिस्टम में दर्ज किया गया हो (या जो भी नाम सेवा उपयोग में हो)।
जी-मैन का कहना है कि 'मोनिका'

सेंटोस प्रणाली में, बाँध और बाँध-बर्तन स्थापित नहीं किया गया था। तो मैं वास्तव में उलझन में हूँ।
एक

@ एक उबंटू hostnameअलग तरीके से व्यवहार करता है कि आरएच आधारित सिस्टम 127.0.1.1 ubuntu14-graphite.. /etc/hostsफ़ाइल में और check..note, इसके 127.0.1.1, नहीं 127.0.0.1(जो आप वैसे भी कर सकते हैं, जैसे 127.0.0.0/8कि लोकलहोस्ट के लिए, वैसे भी आप लूपबैक ब्लॉक कर सकते हैं, आप किसी भी पते का उपयोग कर सकते हैं, हालांकि कुछ सिस्टम में पूर्वनिर्धारित प्रतिबंधित पते हैं )
हेमेयेल

@heemayl तो 127.0.1.1 ubuntu14- ग्रेफाइट को / etc / मेजबानों पर डालकर IP की जाँच करें, मुझे सही IP नहीं मिला। यह समझ में नहीं आता है, है ना?
एक

1

मशीन के आईपी पते की जांच करने का वास्तविक तरीका ifconfigकमांड का उपयोग करना है ।

ध्यान दें कि वास्तविक क्लाउड सेटअप के आधार पर, सर्वर का उदाहरण सार्वजनिक आईपी के बारे में पता नहीं हो सकता है और केवल एक वीएलएएन आईपी पता है। इस पर जानकारी के लिए, आपको अपने प्रदाता के दस्तावेज को संदर्भित करना होगा।


नहीं; ip a s। देखें serverfault.com/q/458628/89813 - ifconfig लिनक्स पर मान्य नहीं है।
मोनिका को पुनः स्थापित करें - एम। श्रोडर

1

सेवा में myhostnameप्रविष्टि जोड़ें ।hosts/etc/nsswitch.conf

दूसरे शब्दों में, इस पंक्ति को इसमें बदलें /etc/nsswitch.conf:

hosts:      files dns

इसके लिए:

hosts:      files dns myhostname

जहाँ आमतौर पर होस्टनाम को /etc/hostsफ़ाइल और डीएनएस का उपयोग करके हल किया जाता है , सिस्टम का होस्टनाम भी ऐसा करने के लिए नाम सेवा स्विच को बताकर हल किया जा सकता है (जैसा कि यह कॉन्फ़िगरेशन परिवर्तन करेगा)।

यह बताएगा कि आपने /etc/hostsसिस्टम पर फ़ाइल के बारे में कुछ विशेष क्यों नहीं देखा है जिसे आप स्थानीय होस्टनाम को हल कर सकते हैं।

myhostnameझंडे के बारे में अधिक जानकारी यहाँ है


0

मेरी राय में यह होस्टनाम कमांड (नेट-टूल पैकेज) के संस्करण पर निर्भर करता है।

देखें: https://bugzilla.redhat.com/show_bug.cgi?id=319981

  • "ओपनस्यूप लीप 42.3" पर उदाहरण:
    # hostname -V
    net-tools 1.60
    hostname 1.100 (2001-04-14)

    # hostname -i
    hostname: Name or service not known
  • लुबंटू पर 17.10
  $ hostname -V
  hostname 3.18

hostname -i - मुझे आईपीवी 6 और आईपीवी 4 के बारे में जानकारी देता है


यह बग रिपोर्ट के बारे में है hostname -s, नहीं hostname -i। यह के संस्करणों से संबंधित नहीं है hostname, यह संबंधित है कि होस्टनाम द्वारा दिया गया hostnameरिजॉल्वेबल है या नहीं।
स्टीफन किट

-2

आदि पर जाकर / hosts.save वहाँ अपने hostname की जाँच करें। और फिर /etc/hosts वहाँ अपने hostname और hostname लिखने के लिए संपादित करें hosts.save। आईपी ​​एड्रेस भी चेक करें। उदाहरण:

127.0.0.1    ubuntu   
127.0.1.1    ubuntu.ubuntu-domain    ubuntu

1
एक लोकलहोस्ट आईपी सेट /etc/hostsकरने से उन्हें वास्तविक आईपी पता नहीं मिलेगा। मैं यह भी देखने में विफल हूं कि आप ऐसा क्यों देख रहे हैं /etc/hosts.saveजो एक तकनीकी और बहुत अप्रासंगिक है।
जूली पेलेटियर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.