सवाल लिनक्स में होस्टनाम को उपनाम करना संभव है?


लिनक्स में होस्टनाम को उपनाम करना संभव है?

विभिन्न उबंटू मंचों पर jmillikin से यह पूछा गया है:


क्या होस्टनाम उपनाम बनाना संभव है? जैसे / etc / hosts की तरह क्रमबद्ध करें, लेकिन आईपी पते के बजाय अन्य होस्टनामों के साथ। तो कुछ के साथ इस तरह की फाइल, आप "fakehost1" पिंग कर सकते हैं, और इसे फिर से मैप किया जाएगा "realhost" के लिए, और फिर "realhost" एक आईपी पते के लिए हल किया जाएगा।

# Real host        # Aliases
realhost           fakehost1 fakehost2 fakehost3

किसी ने एसएसएच के बारे में जवाब दिया है, लेकिन पिंग के बारे में नहीं, आदि मेरा मुख्य इसका उद्देश्य एक के लिए उपनाम के रूप में उपयोग करना है विनाश सर्वर। मेरे मामले में, realhost एक गतिशील आईपी पते के तहत है। तो, "/ etc / hosts" उपनाम काम नहीं करता है। में चाहता हूं मेरे सबवर्जन सर्वर के रूप में उपयोग करें svn://my_svnserver/my_repos के बजाय svn://realhost/my_repos


75
2017-09-14 15:56


मूल


मुझे लगता है कि मुझे कुछ याद आ रहा है। क्या आप कह रहे हैं कि आपके पास / etc / hosts नहीं दिख सकते थे 10.0.3.4 some.host.org another.domain.com आपको कुछ प्रोग्रामेटिक कारणों के लिए संदर्भ का उपयोग करना होगा? - jim_m_somewhere


जवाब:


उन लोगों के लिए जिनके पास फ़ोरम पर खाता नहीं है (या लॉगिन नहीं करना चाहते हैं):

यदि आपका मुख्य मुद्दा पिंग नहीं करना है, लेकिन एसएसएच के लिए, तो आप अपना बना / संपादित कर सकते हैं   ~ / .ssh / config इन जैसे लाइनों को जोड़ना:

Host fakehost1
  Hostname real-hostname

Host fakehost2
  Hostname real-hostname2

Host fakehost3
  Hostname real-hostname3

46
2017-08-26 20:21



होस्टनाम भाग को एक नई लाइन पर होना चाहिए। कॉन्फ़िगरेशन फ़ाइल को इस तरह बनाने के तरीके पर एक अच्छा ट्यूटोरियल यहां दिया गया है: mattryall.net/blog/2008/06/ssh-favourite-hosts - Code Commander
अच्छा कामकाज, धन्यवाद। लेकिन निश्चित रूप से, बेहतर समाधान डीएनएस पर cnames का उपयोग करना होगा - Iurii


लिनक्स HOSTALIASES env चर सेट करके एलियासिंग का समर्थन करता है।

echo "fakehost realhost" > /etc/host.aliases
echo "export HOSTALIASES=/etc/host.aliases" >> /etc/profile
. /etc/profile

तब आप कर सकते हो

ping fakehost

N.B. पिंग के लिए आपको इसे रूट के रूप में सेट करने की आवश्यकता है, लेकिन आप इसे किसी भी उपयोगकर्ता के रूप में किसी भी उपयोगकर्ता के रूप में कर सकते हैं जो उस उपयोगकर्ता के रूप में चलता है। रूट करने के लिए पिंग सूड।


28
2018-03-21 18:41



उबंटू 12.04 पर मेरे लिए काम नहीं किया :( - Dimitry K
HOSTALIASES केवल निष्पादन योग्य के लिए काम करता है जिनके पास सेटयूड ध्वज सेट नहीं है। तो यह पिंग के लिए काम नहीं करेगा (जब तक कि आप पिंग निष्पादित करते समय पहले से ही रूट हो)। मुझे लगता है कि यह निर्धारित किए गए से अलग मेजबान से जुड़ने के लिए सेटयूड-एक्जिक्यूटिव को धोखा देने से बचने के लिए किया जाता है। - Boris
कर्ल के लिए भी काम नहीं करता है - Benubird
यह शायद ही कभी अपेक्षित परिणाम में खत्म हो जाएगा। HOSTALIASES केवल getaddrinfo (3) या gethostbyname (3) का उपयोग कर अनुप्रयोगों के लिए काम करता है - इसका मतलब यह है कि यह एक विशिष्ट सिस्टम कॉल द्वारा मेजबाननाम को स्पष्ट रूप से हल करने की कोशिश कर रहे अनुप्रयोगों के लिए काम करेगा: यह कभी भी मामला नहीं है। देख unix.stackexchange.com/questions/10438/...  तो एकमात्र समाधान स्थानीय डीएनएस (dnsmasq) है - Nadir
ऐसा लगता है कि यह चाल बहिष्कृत है। Gethostbyname * (), gethostbyaddr * (), herror (), और hstrerror () फ़ंक्शंस अप्रचलित हैं। यदि आपका सिस्टम स्थानीय रूप से DNSMasq चलाता है तो आप किसी भी रिज़ॉल्यूशन के लिए उसमें उपनाम कर सकते हैं जो DNS का उपयोग करता है। - teknopaul


आप इसे अपने DNS सर्वर पर सेट कर सकते हैं, सीएनएन रिकॉर्ड एक मशीन को एक से अधिक होस्टनाम द्वारा जाने की अनुमति देता है। तो अपने DNS सर्वर में CNAME रिकॉर्ड जोड़ें जैसे कि:


fakehost1 IN CNAME realhost 
fakehost2 IN CNAME realhost 
fakehost3 IN CNAME realhost 


23
2017-09-14 16:04



धन्यवाद, मैं अपने स्थानीय डीएनएस सर्वर की स्थापना के बाद कल इसे आजमाउंगा।
कोशिश करने के लिए एक हल्के वजन वाले DNS सर्वर होगा dnsmasq (यह डीएचसीपी भी कार्य करता है)। - sybreon


मैं अक्सर पर्यावरण चर के साथ ऐसा करते हैं। मुझे पता है कि यह केवल कमांड लाइन के लिए काम करता है, लेकिन यह वह जगह है जहां मैं अक्सर लालसा होस्टनाम उपनाम (मैं कई सुपरकंप्यूटर खातों के साथ काम करता हूं, सभी लंबे यूआरएल के साथ)। यदि आप बाश का उपयोग कर रहे हैं तो यहां एक उदाहरण दिया गया है। ~ / .Bashrc में:

निर्यात fakehost = "long.ass.annoying.url.org"

फिर, एक ताजा खोल में:

ssh christopher @ $ fakehost


16
2017-07-23 16:15





ऐसा करने का एकमात्र तरीका यह है कि यदि आपके पास अपना स्थानीय डीएनएस सर्वर है।


8
2017-09-14 16:02



हाँ, अब यह एकमात्र समाधान लगता है। धन्यवाद। मेरे पास पर्याप्त प्रतिष्ठा नहीं है क्योंकि ऊपर नहीं जा सकता है।
यदि किसी डीएसएल या डायलअप कनेक्शन का कभी-कभी बदलती आईपी पता समस्या है, तो डायंडन्स एक बेहतर समाधान है, आईएमएचओ। - Sven♦
नहीं, यह एक बेहतर समाधान नहीं है। एक बार जब सर्वर का होस्टनाम होता है जिसे किसी अन्य चीज़ से संभाला जाता है तो सभी ओपी जरूरतों को पहले होस्टनाम के लिए एक सीएनएन होता है। DYNDNS और मेजबान पर समान भरोसा करते हैं कि डीएनएस सर्वर को सूचित किया गया है कि यह आईपी बदल गया है। - theotherreceive


/Etc/hosts.aliases का उपयोग बाइंड रिज़ॉल्वर लाइब्रेरीज़ की एक मानक विशेषता है। यह / etc / hosts में प्रविष्टियों को जोड़ने से अधिक मजबूत है और यदि आप अपने DNS में CNAMES नहीं जोड़ सकते हैं (इसका उपयोग नहीं है)।

आम तौर पर सबसे अच्छा अभ्यास DNS में CNAMES का उपयोग /etc/resolv.conf में परिभाषित उचित खोज के साथ करना है।

अद्यतन / etc / होस्ट बहुत मजबूत नहीं हैं क्योंकि प्रविष्टियों को आईपी परिवर्तनों के साथ समन्वयित किया जाना चाहिए। यह केवल एक छोटे पैमाने पर काम करता है या जब आप होस्ट मैप वितरित करने के लिए नाम सेवा का उपयोग कर रहे हैं (उदाहरण के लिए ldap के माध्यम से)।

एक अन्य समाधान DNSMasq हो सकता है http://en.wikipedia.org/wiki/Dnsmasq


4
2017-10-28 03:44



मैंने CENTOS 6 में /etc/hosts.aliases का उपयोग करने का प्रयास किया लेकिन यह सुविधा काम नहीं कर रही है। न ही मैं इसके उपयोग या अस्तित्व पर कोई दस्तावेज पा सकता हूं। मुझे कहाँ दिखना चाहिए? - mdpc


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


4
2017-09-14 16:05