Ubuntu 18.04 .Local डोमेन डीएनएस लुकअप काम नहीं कर रहा है


19

मैं Ubuntu 18.04 के साथ रास्पबेरी पाई 3 का उपयोग कर रहा हूं। मेरी कंपनी में हमारे पास एक DNS सर्वर और ".local" के साथ कुछ डोमेन हैं। मुझे पता है कि तकनीकी रूप से यह सही नहीं है और इसके बजाय ".lan" होना चाहिए, क्योंकि .local मल्टीकास्ट डीएनएस के लिए आरक्षित है। लेकिन यह तरीका है और इसे आसानी से बदला नहीं जा सकता है। इसलिए मेरी विंडोज़ मशीन पर मैं बिना किसी परेशानी के उन डोमेन नामों को पिंग और ब्राउज़ कर सकता हूं। मेरे उबंटू पर मैं नहीं कर सकता।

मैं IP का उपयोग नहीं कर सकता क्योंकि कुछ डोमेन एक ही मशीन पर हैं और IIS वेबसर्वर चीजों को वहां से हटाता है, जहां जाता है।

मैंने खोजा है और यह काफी बार आता है:

हालाँकि /etc/nsswitch.conf को बदलना मेरे लिए ट्रिक नहीं है। मैंने कोशिश की

  • होस्ट: फाइलें mdns4_minimal [NOTFOUND = return] dns myhostname # default
  • होस्ट: फाइलें डीएनएस
  • होस्ट: फाइलें mdns4_minimal [NOTFOUND = Continue] dns myhostname
  • होस्ट: फाइलें mdns4 [NOTFOUND = return] dns myhostname
  • होस्ट: फाइलें mdns4 [NOTFOUND = Continue] dns myhostname
  • होस्ट: फ़ाइलें dns mdsn4_minimal myhostname
  • यजमान: dns
  • कुछ अन्य

जिसमें से कोई भी काम नहीं किया। मैंने एक बदलाव के बाद भी रिबूट करने की कोशिश की। मैंने अवही को यह बताने की कोशिश की कि डोमेन-नाम = /etc/avahi/avahi-daemon.conf में, सेवा पुनरारंभ होने के बाद काम नहीं किया, रिबूट के बाद काम नहीं किया। यह काम नहीं करने के बाद, मैंने पूरी तरह से अवही-डेमॉन सेवा को अक्षम करने का प्रयास किया।

sudo systemctl disable avahi-daemon

एक रिबूट के बाद मैंने /etc/nsswitch.conf में एक बार फिर से कुछ प्रभाव डालने की कोशिश की, जिसका कोई असर नहीं हुआ।

मेजबानों में मेरी वर्तमान सेटिंग्स के साथ (फाइलें dns) मुझे यह प्रतिक्रिया मिली:

dig login.name.local # not the actual name

; <<>> Dig 9.11.3-1ubuntu1.1-Ubuntu <<>> login.name.local
;; global options: +cmd
;; Got answer:
;; WARNING .local is reserved for Multicast DNS
;; You are currently testing what happens when an mDNS query is leaked to DNS
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33538
;; flags: qr rd ra; QUERY: 1, ANSWER:0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;login.name.local. 0     IN     A

;; Query time: 2msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Thu Aug 23 10:51:50 CEST 2018
;; MSG SIZE  rcvd: 56

हालांकि जब मैं सीधे सर्वर को क्वेरी करने के लिए खुदाई का निर्देश देता हूं तो मुझे सही उत्तर मिलता है:

dig @dnsIP login.name.local
; <<>> Dig 9.11.3-1ubuntu1.1-Ubuntu <<>> login.name.local
; (1 server found)
;; global options: +cmd
;; Got answer:
;; WARNING .local is reserved for Multicast DNS
;; You are currently testing what happens when an mDNS query is leaked to DNS
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57866
;; flags: qr aa rd ra; QUERY: 1, ANSWER:1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;login.name.local. 0     IN     A

;; ANSWER SECTION:
login.name.local. 3600 IN    A        serverIP

;; Query time: 2msec
;; SERVER: dnsIP#53(dnsIP)
;; WHEN: Thu Aug 23 10:51:50 CEST 2018
;; MSG SIZE  rcvd: 56

उबंटू का यह संस्करण नेटवर्क मैनेजर के साथ नेटप्लान का उपयोग करता है। सूची में सही DNS आईपी निश्चित रूप से है। (वास्तव में यह प्राथमिक DNS है।) इसके अलावा dnsIp सर्वरआईपी के समान है, लेकिन यह एक मुद्दा नहीं होना चाहिए।

ब्राउज़र के माध्यम से पिंग या कनेक्ट करना और इस तरह से काम नहीं करना। कोई भी dns क्वेरी का उपयोग नहीं करता है।

मैं नुकसान में हूं कि मुझे क्या करना है। निश्चित रूप से हम एक अलग डोमेन नाम पर स्विच नहीं कर सकते। मैंने सर्वरनाम को / etc / मेजबानों में रखा लेकिन यह सिर्फ एक अस्थायी समाधान है।


resolv.conf को jeremfg के रूप में बदलने ने सुझाव दिया कि कई घंटों तक मेरी पूंछ का पीछा करने के बाद मेरे लिए काम किया। Tnx।
user3529828

जवाबों:


15

मुझे लिनक्स टकसाल 19 (तारा) पर एक समान मुद्दे (यदि बिल्कुल समान नहीं) का सामना करना पड़ा। मैंने सूचना के 3 अलग-अलग टुकड़ों को मिलाकर इसे हल करने में कामयाबी हासिल की है। ऐसा लगता है कि सभी प्रणालीगत-हल किए गए हाल के परिवर्तनों से संबंधित हैं।

सबसे पहले, हाँ, मुझे /etc/nsswitch.conf को कॉन्फ़िगर करने की आवश्यकता है जैसा आपने किया था और उम्मीद करेंगे। जब तक mdns से पहले dns आता है तब तक आपको अच्छा होना चाहिए। मैं बस के साथ समाप्त हुआ:

hosts:          files dns myhostname

रेफरी: /unix//a/457172/271210

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


उसके बाद मैंने अपने खोज डोमेन को कॉन्फ़िगर किया है इसलिए सिस्टमड-सॉल्यूशन काम करेगा जैसा मैं चाहता था। इसलिए मैंने फ़ाइल [ etc / systemd / resolve.conf , [ सेटिंग ] अनुभाग के तहत डोमेन सेटिंग संपादित की है । मेरे मामले में ऐसा लग रहा था:

[Resolve]
#DNS=
#FallbackDNS=
Domains=trilliant.local
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#Cache=yes
#DNSStubListener=yes

रेफरी: /ubuntu//a/1031271/872881

मैंने अवहि विन्यास को कुछ और बदल दिया है ("mdns" अगर मुझे सही याद है, लेकिन यह कोई फर्क नहीं पड़ता)। यह मेरी समझ से जरूरी नहीं होना चाहिए। सिर्फ पूर्णता के लिए जोड़ रहा है।


लेकिन इसमें से कुछ भी तब तक काम नहीं किया जब तक कि मैंने निम्नलिखित को नहीं बुलाया:

sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

रेफरी: /ubuntu//a/938703/872881

इसे कॉल करने के बाद, सब कुछ पूरी तरह से और उम्मीद के मुताबिक काम करना शुरू कर दिया!

इसलिए यह संभव है कि मुझे वास्तव में /etc/systemd/resolve.conf फ़ाइल को बदलने की आवश्यकता नहीं है, लेकिन मैंने यह बदलाव तब से रखा है क्योंकि यह समझ में आता है और मुझे केवल FQDN, बिना DNS रिज़ॉल्यूशन के काम करने के लिए मशीन का नाम टाइप करने की अनुमति देता है ।


आप शुरुआत में सिर्फ अंतिम पंक्ति रख सकते थे और मुझे लगता है कि ऐसा करने से आपको अधिक उत्थान मिलेगा।
होंगझोउ

@HongboZhu यदि मैं एक ऐसे तथ्य के लिए जानता हूं जो केवल स्थानीय डोमेन को काम करने के लिए आवश्यक परिवर्तन है। मुझे पूरा यकीन है कि आपको अभी भी रिज़ॉल्वर कॉन्फ़िगरेशन में mdns पर dns को प्राथमिकता देना होगा। मुझे लगता है कि आपकी टिप्पणी बीच में डोमेन कॉन्फ़िगरेशन से संबंधित है? यदि हां, तो मुझे लगता है कि मैं इसे वैकल्पिक बदलाव के रूप में अंत में रख सकता हूं। लेकिन अन्य दो टुकड़ों को IMHO की आवश्यकता होती है।
jeremfg

1
मेरे नए 18.04.2 इंस्टाल पर, nsswitch.conf पर "मेजबानों" के ऑर्डर को पहले से ही बदल दें।
तोमोफूमी

17

स्वीकृत उत्तर से मेरी समस्या हल नहीं हुई। इसका अवधी से कोई लेना-देना नहीं था - मेरे पास अवही सेवा नहीं थी। मेरे पास अपने सिस्टम को डीएचसीपी से इसकी आईपी और इसके डीएनएस सर्वर सेटिंग्स प्राप्त करने के लिए सेट है। हालाँकि, dhcp की आपूर्ति की गई DNS .local का उपयोग करके प्रश्नों की जाँच नहीं की जा रही थी

असली मुद्दा यह है कि उबंटू 18.4 में इसकी रेजोल्व.कॉन्फ़ है जो स्टब फ़ाइल से सहानुभूति से जुड़ा है जो नाम रिज़ॉल्यूशन के लिए स्थानीयहोस्ट को इंगित करता है। लोकलहोस्ट डीएनएस नाम रिज़ॉल्यूशन का मतलब है कि सिस्टम .local नामों के लिए आपूर्ति किए गए DNS सर्वर की जांच करने से इंकार करता है, यह विश्वास करते हुए (गलत तरीके से) कि ऐसे नाम अमान्य हैं। यह /etc/resolv.conf का डिफ़ॉल्ट सेटअप है:

ls -la /etc/resolv.conf
lrwxrwxrwx 1 root root 39 Jan 22 13:26 /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf

स्टब फ़ाइल की सामग्री है (टिप्पणियों को हटा दिया गया है):

 cat /run/systemd/resolve/stub-resolv.conf
 .. removed comments..  
nameserver 127.0.0.53
    search reddog.microsoft.com

'वास्तविक' रिज़ॉल्यूशन के पास 'सही' डीएनएस सेटिंग (dhcp से) है:

cat /run/systemd/resolve/resolv.conf

..removed comments..
nameserver 10.168.200.250 # This is my server that can resolve .local
nameserver 208.67.220.220 # these are optional, fallback dns servers
nameserver 208.67.222.222
# Too many DNS servers configured, the following entries may be ignored.
nameserver 8.8.8.8
search reddog.microsoft.com

लोकलहोस्ट के बजाय सिस्टम को अपने पसंदीदा DNS रिज़ॉल्वर का उपयोग करने के लिए, आप /run/systemd/resolve/resolv.conf के बजाय /run/systemd/resolve/resolv.conf को इंगित करने के लिए सिमलिंक को बदलते हैं:

sudo rm -f /etc/resolv.conf
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf

इसके तुरंत बाद, .Local के संकल्प ने काम करना शुरू कर दिया। किसी भी सेवा को रिबूट या पुनरारंभ करने की आवश्यकता नहीं है।


मैंने अवही को अनइंस्टॉल कर दिया और फिर आपके चरणों का पालन किया। यह मेरे लिए बना है। शुक्रिया जनाब। (Ubuntu 18.04 डेस्कटॉप का उपयोग करके)।
जोस एल। पेटिओनो

धन्यवाद। यह मेरे लिए जवाब था। यह बॉक्स से बाहर "बस काम" क्यों नहीं करता है?
एडम्स्की

आपके समाधान और स्वीकृत उत्तर के बीच क्या अंतर है? दोनों के लिए, कोई भी उत्तर के पहले 2/3 को छोड़ सकता है - यहां तक ​​कि एक ही है :-)
HongboZhu

यह एकमात्र ऐसा उत्तर है जो मैंने अब तक देखा है जो उबंटू (और अन्य लिनक्स) के पिछले संस्करणों में व्यवहार को दोहराता है, अर्थात DNS सर्वरों की सूची डीएचसीपी द्वारा प्रदान की जाती है और पता रिज़ॉल्यूशन कभी भी स्थानीय रूप से कैश नहीं किया जाता है।
स्लाडपेन

2

मेरे लिए Ubuntu 18.04 के लिए काम करने का तरीका है:

संपादित करें अवही आत्मविश्वास:

sudo vim /etc/avahi/avahi-daemon.conf

और परिवर्तन।

[server]
domain-name=.alocal

उसके बाद, हल करें खोलें ।conf:

sudo vim /etc/systemd/resolved.conf

और डोमेन को अनइंस्टॉल करें और संपादित करें:

[Resolve]
...
Domains=yourdomain.local
...

और अंत में सेवाएं फिर से शुरू करें:

sudo service systemd-resolved restart
sudo service avahi-daemon restart

मेरे मामले में मुझे केवल (और सेवा को पुनरारंभ करने) Domainsमें बदलने की आवश्यकता थी /etc/systemd/resolved.conf
टोकन

2
यह मेरे लिए नहीं किया। अभी भी कुछ भी नहीं है
फाल्कोगर

उबंटू का एक ही संस्करण। Openvpn का उपयोग करना। यह समाधान मेरी टीम में कई मशीनों पर वीपीएन के साथ अच्छी तरह से काम करता है।
राज़वोन

2

मेरे लिए जो काम किया गया वह स्थानीय डीएनएस को एक नेमवेरर के रूप में जोड़ रहा था /etc/resolvconf/resolv.conf.d/head(जैसा कि यहां वर्णित है )।

  1. Resolvconf पैकेज स्थापित करें।

    sudo apt install resolvconf
    
  2. संपादित करें /etc/resolvconf/resolv.conf.d/headऔर निम्नलिखित जोड़ें:

    nameserver 8.8.4.4  
    nameserver 8.8.8.8  
    
  3. Resolvconf सेवा को पुनरारंभ करें।

    sudo service resolvconf restart
    

फिक्स स्थायी होना चाहिए।


हेड फ़ाइल में फ़ाइल को संपादित नहीं करने की चेतावनी है, क्योंकि यह resolvconf द्वारा बनाई गई है?
जॉन मी

@JohnMee headफ़ाइल उत्पन्न करने के लिए उपयोग किया जाने वाला स्रोत है /run/resolvconf/resolv.conf। हालाँकि, मैं इस फ़ाइल को भी संपादित नहीं करूँगा।
मेलेबियस जूल

0

मेरी स्थिति समान थी लेकिन कुछ अलग थी: हम myserverविंडोज पर सर्वर नामों का उपयोग करते हैं लेकिन यह Ubuntu 16.04 पर काम नहीं करता था और मुझे इसका उपयोग करना था myserver.mycompany.local। 18.04 में अपग्रेड करने के बाद, मुझे निम्नलिखित व्यवहार मिला:

$ ping myserver.mycompany.local
ping: myserver.mycompany.local: Name or service not known

$ ping myserver
PING myserver.mycompany.local (192.168.x.y) 56(84) bytes of data.
64 bytes from myserver.mycompany.local (192.168.x.y): icmp_seq=1 ttl=62 time=3.05 ms
...

मुझे बस अपने अनुप्रयोगों के myserver.mycompany.localसाथ प्रतिस्थापित करना था myserver

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