linux hostname -f कमांड RHEL पर काम नहीं कर रहा है


13

मैं एक आरएचईएल 5.7 चला रहा हूं और hostnameकमांड मुझे सही होस्टनाम देता है।
लेकिन hostname -sऔर hostname -fवापसी Unknown host:। क्यों?


क्या डिस्ट्रो? मेरे Ubuntu 12.04 सिस्टम पर सभी 3 काम करते हैं।
Anthon

आप कौन से ऑपरेटिंग सिस्टम का उपयोग कर रहे हैं? अगर लिनक्स, कौन सा वितरण? की सामग्री क्या हैं /etc/hostname?
terdon

1
hostname -fDNS का उपयोग करता है, क्या आपके पास अपने आईपी के लिए रिवर्स डीएनएस प्रविष्टि है?
बारमर

@terdon मैं RHEL5 (Red Hat Enterprise linux सर्वर रिलीज़ 5.7 (tikanga)) का उपयोग कर रहा हूँ और ऐसी कोई फ़ाइल नहीं है (/ etc / hostname)
redoc

@ बरमार में मेरे मेजबान पर कॉन्फ़िगर किए गए डीएनएस नहीं हैं। मैंने अपनी मेजबानों की फाइल (/ etc / मेजबान) में ip एड्रेस और fqdn को जोड़ा, यह त्रुटि कॉन्फ़िगर नहीं होने के परिणामस्वरूप है?
redoc

जवाबों:


21

( एसएफ पर मेरे एक जवाब से कॉपी किया गया )

hostnameआदेश DNS और से परिणाम देता है /etc/hosts

hostnameके समतुल्य है uname -nऔर बॉक्स का वास्तविक "होस्टनाम" या "नोडेनम" है।
अन्य सभी hostnameतर्क जानकारी देखने के लिए इस नोडनाम का उपयोग करते हैं।

इसलिए आगे जाने से पहले, मुझे /etc/hostsफ़ाइल प्रारूप की व्याख्या करनी चाहिए ।
पहला क्षेत्र काफी स्पष्ट है, इसका आईपी पता लाइन के सभी होस्टनामों को हल करना चाहिए। दूसरा क्षेत्र उस IP के लिए प्राथमिक होस्टनाम है। शेष क्षेत्र एलियासेस हैं।

इसलिए यदि आप hostname -fइसे चलाते हैं, तो यह पहली बार आपके नाम के लिए आईपी को हल करने का प्रयास करेगा। आपके पास इस पद्धति hosts:में कॉन्फ़िगर की गई प्रविष्टि के आधार पर /etc/nsswitch.confअलग-अलग होंगे।

  • यदि आपने dns का उपयोग करने के लिए इसे कॉन्फ़िगर किया है, तो यह /etc/resolv.confDNS से ​​आईपी वापस मिलने तक कॉन्फ़िगर किए गए खोज डोमेन का उपयोग करेगा ।
  • यदि आपने इसे फ़ाइलों का उपयोग करने के लिए कॉन्फ़िगर किया है, तो यह उस /etc/hostsपंक्ति को खोजने के लिए दिखेगा जहां या तो प्राथमिक होस्टनाम या उपनाम नाम आपका वर्तमान नोडनेम ( uname -n) है, और फिर उस पंक्ति में आईपी पता वापस करें।

एक बार आईपी होने के बाद यह उस आईपी पर रिवर्स लुकअप की कोशिश करेगा। फिर से यह इसके लिए DNS का उपयोग करेगा और आपकी मेजबानों की फाइल आपके आधार पर nsswitch.conf। आपकी होस्ट फ़ाइल का उपयोग करने के मामले में, यह प्राथमिक प्रविष्टि (जो फ़ाइल में आईपी के बाद पहला क्षेत्र है) को लौटा देगा।

hostname -aDNS में रिवर्स लुकअप करने के बाद से केवल होस्ट फ़ाइल के साथ काम करेंगे, केवल आपको 1 परिणाम देता है। मेजबानों की फाइल के साथ यह मेल खाने वाली लाइन (जो पहली प्रविष्टि के बाद सब कुछ है, प्राथमिक होस्टनाम) में वापस आ जाता है।

 

तो संक्षेप में, आपके मुद्दे का संभावित कारण यह है कि आपके पास कोई प्रविष्टि नहीं /etc/hostsहै जिसमें आपका होस्टनाम ( uname -n) है।


उदाहरण
यदि आपका नाम 'फोब्बर' है, और आपके पास /etc/hostsइस तरह से एक प्रविष्टि है :

127.0.0.1 foobar.example.com foobar localhost.localdomain localhost

तब आपको निम्नलिखित कमांड परिणाम मिलेंगे:

# hostname
foobar
# uname -n
foobar

# hostname -f
foobar.example.com

# hostname -a
foobar localhost.localdomain localhost

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