Resolvconf और NetworkManager द्वारा निर्धारित गलत नाम


34

मेरे डीएनएस सर्वर है 192.168.1.152

यह DNS ग्राहकों को डीएचसीपी द्वारा प्रदान किया जाता है। मेरे LAN पर विंडोज़ क्लाइंट उस DNS का उपयोग करके नामों को ठीक से हल करते हैं, लेकिन मेरा Ubuntu VM नहीं करता है।

VM को ब्रिज नेटवर्किंग के साथ स्थापित किया गया है और डीएनएस सर्वर को ठीक से प्रदान किया जा रहा है, लेकिन मेरे स्थानीय होस्टनाम को nslookup या ब्राउज़र द्वारा हल नहीं किया जा रहा है।

यहाँ nslookupमेरा एक स्थानीय डोमेन है:

# nslookup unraid.local
Server:     127.0.0.53
Address:    127.0.0.53#53

** server can't find unraid.local: SERVFAIL

यहाँ मेरा DNS सर्वर का उपयोग करके इसे हल करना चाहिए:

# nslookup unraid.local 192.168.1.152
Server:     192.168.1.152
Address:    192.168.1.152#53

Name:   unraid.local
Address: 192.168.1.152

/etc/resolv.conf गलत नाम रखने वाला व्यक्ति है:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.

nameserver 127.0.0.53

मैंने उस आदेश को चलाया। DNS सर्वर के तहत, भ्रमित होकर, यह सही सर्वर (और मेरा डिफ़ॉल्ट गेटवे) को निर्दिष्ट करता है।

root@ubuntu:~# systemd-resolve --status
Global
          DNSSEC NTA: 10.in-addr.arpa
                      16.172.in-addr.arpa
                      168.192.in-addr.arpa
                      17.172.in-addr.arpa
                      18.172.in-addr.arpa
                      19.172.in-addr.arpa
                      20.172.in-addr.arpa
                      21.172.in-addr.arpa
                      22.172.in-addr.arpa
                      23.172.in-addr.arpa
                      24.172.in-addr.arpa
                      25.172.in-addr.arpa
                      26.172.in-addr.arpa
                      27.172.in-addr.arpa
                      28.172.in-addr.arpa
                      29.172.in-addr.arpa
                      30.172.in-addr.arpa
                      31.172.in-addr.arpa
                      corp
                      d.f.ip6.arpa
                      home
                      internal
                      intranet
                      lan
                      local
                      private
                      test

Link 2 (ens33)
      Current Scopes: DNS LLMNR/IPv4 LLMNR/IPv6
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
         DNS Servers: 192.168.1.152
                      192.168.1.1

मैं DNS सर्वर के IP को एक हार्ड डिस्क में "हार्ड कोड" नहीं करना चाहता क्योंकि मैं नेटवर्क बदलने पर हल नहीं कर पाऊंगा।

मैं डीएचसीपी सर्वर के आईपी को स्वचालित रूप से सेट करने के लिए रिजॉल्वोन्फ़ और नेटवर्क मैनजर कैसे प्राप्त कर सकता हूं /etc/resolv.conf?

जवाबों:


37

/etc/systemd/resolved.confअपना इच्छित DNS सर्वर जोड़कर संपादन का प्रयास करें:

इसे बदलो:

[Resolve]
#DNS=

इसके लिए (लेकिन आप जो चाहते हैं उसका उपयोग करें - यह एक उदाहरण है):

[Resolve]
DNS=192.168.1.152

उसके बाद, सेवा को फिर से शुरू करें:

service systemd-resolved restart

और जब आप स्टेटस चेक करते हैं तो आपको देखना चाहिए

$ systemd-resolve --status
Global
         DNS Servers: 192.168.1.152

      DNSSEC NTA: 10.in-addr.arpa
                  16.172.in-addr.arpa
                  168.192.in-addr.arpa
                  17.172.in-addr.arpa
                  18.172.in-addr.arpa
                  19.172.in-addr.arpa

यहाँ /etc/systemd/resolve.conf pastebin.com/AeUFQkyB ब्राउज़रों को बदलने के बाद भी सिस्टम-रिज़ॉल्यूशन -स्टैटस अभी भी नामों को हल करने में विफल है।
फायरस्पोर

12
सिस्टमड टूट गया है। डीएचसीपी मेजबान को बताता है कि DNS क्या होना चाहिए, (और अन्य नेटवर्क सेटिंग्स का एक गुच्छा) आपको काम करने के लिए होस्ट पर किसी भी फाइल को बदलना नहीं चाहिए।
टेक्नोपॉल

4
इष्टतम नहीं दिखता है, आपको हर बार DNS सर्वर / नेटवर्क
विक्टर

1
आपको DNS IP के परिवर्तनों (उदाहरण के लिए विभिन्न नेटवर्क पर) को हर बार फिर से कॉन्फ़िगर करना होगा।
विक्टर

34

ज्ञात systemd बग

DNS IP के परिवर्तन होने पर पुन: कॉन्फ़िगर करने की आवश्यकता के साथ अस्थायी वर्कअराउंड :

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

2
इस समाधान ने कुछ हद तक काम किया, होस्ट और nslookup कमांड नामों को ठीक से हल करते हैं, लेकिन
विग

1
यह सही है ... वर्तमान बग यह है कि जिस लिंक से /etc/resolv.confआता /run/systemd/resolve/stub-resolv.confहै वह है बोलॉक्स यह /run/systemd/resolve/resolv.conf ध्यान/etc/resolv.conf
श्री हील्स

@FireSpore: pingतब काम करता है ? hostऔर nslookupहोस्ट नामों को अलग से pingया से हल करें wget। आपको /etc/nsswitch.confएक विलेयोन की तलाश करने की आवश्यकता हो सकती है ।
हांगबोझू

9

मुझे आखिरकार ubuntu 17.10 के लिए इस समस्या का हल मिल गया। डिफ़ॉल्ट रूप से उबंटू का यह संस्करण उपयोग करता है systemd-resolved, जो मुझे उम्मीद है कि अगले संस्करणों के लिए स्थिर होगा।

स्थानीय सिस्टम-हल किए गए कैश के बजाय कस्टम डीएनएस का उपयोग करने के लिए, निम्नलिखित कार्य करें:

  1. नए नाम जोड़ें। फ़ाइल /etc/systemd/resolved.confको sudoer के रूप में संपादित करें । यहाँ मैंने डीएनएस प्रविष्टि पर टिप्पणी की है और अपने डीएनएस को रखा है [Resolve] DNS=10.96.0.10 8.8.8.8 8.8.4.4

  2. करने के लिए वास्तविक सिमलिंक को रद्द करें /etc/resolv.conf

  3. एक नया सिमिंक बनाएं sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
  4. सेवा को पुनरारंभ करें sudo service systemd-resolved restart
  5. नेटवर्क प्रबंधक को पुनरारंभ करें sudo systemctl restart networking

और अब यदि आप अपने ऐड डीएनएस द्वारा प्रदान किए गए नाम पर खुदाई करते हैं, तो आपको रिकॉर्ड किए गए समाधान को देखना चाहिए dig nexus.default.svc.cluster.mydomain

अंतिम चरण /etc/nsswitch.confmdns4_minimal से पहले dns रखकर, रिज़ॉल्यूशन के क्रम को अपडेट करना है

hosts           files dns mdns4_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] myhostname

1
आपको DNS IP के परिवर्तनों (उदाहरण के लिए विभिन्न नेटवर्क पर) को हर बार फिर से कॉन्फ़िगर करना होगा।
विक्टर

विक्टर क्या आपके पास सबसे अच्छा समाधान है? यह वही है यदि आप स्थैतिक शुद्ध विन्यास का उपयोग करते हैं
Fabio Fumarola

यह उत्तर स्थैतिक और गतिशील विन्यास दोनों के लिए काम करता है: askubuntu.com/a/974482/343617
विक्टर

धन्यवाद, मैंने जो समाधान बताया है वह स्थिर था। मैं सहमत हूँ
Fabio Fumarola

यह सिर्फ मेरे लिए एक नया 18.04 स्थापित
जेम्सकॉव

1

मैंने एक स्क्रिप्ट रखी जो नेटप्लान के मुद्दे के आसपास काम करती है जो वर्तमान में डीएचसीपी आपूर्ति किए गए डीएनएस सर्वर और डोमेन सर्च ऑर्डर को सुपरसीड करने की क्षमता का समर्थन नहीं करती है। यह नेटप्लान yaml फ़ाइल बनाता है और उम्मीद के मुताबिक काम करने के लिए सिस्टमड-सुलझा हुआ कॉन्फ़िगर करता है।

################## Start Netplan config (renderer: NetworkManager)
#  Some useful commands for customisation
# NetConn=$(nmcli device show|grep GENERAL.CONNECTION|head -n1|awk '{print $2}')
# IP=$(nmcli device show|grep IP4.ADDRESS|head -n1|awk '{print $2}')
# GATEWAY=$(nmcli device show|grep IP4.GATEWAY|head -n1|awk '{print $2}')
# sed -i 's/renderer: networkd/renderer: NetworkManager/' //etc/netplan/01-netcfg.yaml
######################################
systemctl start NetworkManager
NIC=$(nmcli device show|grep GENERAL.DEVICE|head -n1|awk '{print $2}')

#####   create Netplan yaml config file
cat >/etc/netplan/01-netcfg.yaml <<EOF 
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
  network:
   version: 2
   renderer: NetworkManager
   ethernets:
EOF
echo "    ${NIC}:" >> /etc/netplan/01-netcfg.yaml
cat >>/etc/netplan/01-netcfg.yaml <<EOF
      dhcp4: yes
      nameservers:
        search: [abc.domain.edu, def.domain.edu]
        addresses: [10.10.11.22, 10.10.11.23]

EOF

#work around DNS resolv bug
systemctl stop systemd-resolved
sed -i 's/#DNS=/DNS=10.10.11.22 10.10.11.23/' /etc/systemd/resolved.conf
sed -i 's/#Domains=/Domains=abc.domain.edu def.domain.edu' /etc/systemd/resolved.conf
systemctl start systemd-resolved
systemctl restart NetworkManager
netplan apply
reboot
############### End Netplan Config

1

मेरे लिए काम करने वाला समाधान यहां मेरे ब्लॉग पर पोस्ट किया गया है

इन 2 फाइलों को संपादित करने के लिए नैनो एडिटर का उपयोग करें

nano /etc/resolv.conf
nano /etc/resolvconf/resolv.conf.d/head

उन DNS सर्वर को जोड़ें जिनका आप उपयोग करना चाहते हैं

nameserver 9.9.9.9
nameserver 127.0.0.1

फिर सेवा को पुनरारंभ करें

service systemd-resolved restart

आखरी जांच:

cat /etc/resolv.conf

Nslookup करें

nslookup google.com 

मैंने अभी इसका इस्तेमाल किया है और इसने मेरे लैपटॉप पर समस्या को घर पर ही ठीक कर दिया है, लेकिन भविष्य में किसी समय जब मैं अपने होम नेटवर्क से बाहर हूं तो मैं देख सकता हूं कि यह समस्या पैदा करेगा, क्योंकि प्राथमिक और माध्यमिक डीएनएस सर्वर अभी भी मेरा घर होगा सर्वर अपने लैन पते के साथ।


2
आपको DNS IP के परिवर्तनों (उदाहरण के लिए विभिन्न नेटवर्क पर) को हर बार फिर से कॉन्फ़िगर करना होगा।
विक्टर

यह सुरुचिपूर्ण नहीं है, लेकिन यह कभी-कभी मेरे सोते समय तोड़फोड़ का काम करता है।
रॉड्रिगो फेरारी

संपादन फिर /etc/resolv.confसे systemd-resolvedशुरू होने के दौरान फ़ाइल अधिलेखित होने के कारण काम नहीं करता है । बस संपादित करें /etc/systemd/resolved.conf। मेरा जवाब यहाँ देखें: askubuntu.com/questions/977243/ubuntu-17-10-disable-netplan/…
EnzoR

1

आपकी /etc/resolv.confसमस्या नहीं है। systemd-resolvedसिर्फ अपुष्ट करने के लिए चूक, इसलिए यह सभी लुकअप को विफल करता है। एक उचित डिफ़ॉल्ट के बिना अपुष्ट बनाम शेख़ी के लिए स्वतंत्र महसूस करें।

मैन्युअल रूप से नेमसर्वर जोड़ें systemd-resolved। ( सिस्टम अपडेट से बचे रहने के लिए नीचे दिए गए ओक्लिन की टिप्पणी के अनुसार संपादन mkdir, सही रास्ता /etcनहीं है /lib)

sudo mkdir -p /etc/systemd/resolved.conf.d
sudo nano /etc/systemd/resolved.conf.d/00-my-dns-server-is.conf

जोड़ें:

[Resolved]
Cache=yes
DNS=192.168.1.152

फिर...

sudo systemctl daemon-reload

systemd-resolvedयह स्मार्ट है, लेकिन, जैसा कि पैकेज मेंटेनरों द्वारा यह अपुष्ट है, यह सिर्फ बेवकूफ बनाता है क्योंकि पैकेज मेंटेनर ए रीजनेबल डिफॉल्ट में विश्वास नहीं करते हैं। हम 13 इंटरनेट रूट सर्वरों को उर्फ ​​"djb तरीका", या 10 ओपननिक सर्वरों में रख सकते हैं: https://pastebin.com/JBfYVVtG या तीन सबसे तेज ओपननेक सर्वर, जैसा कि नेमबेंच द्वारा मापा जाता है। प्लस आईएसपी नेमवेर्स, निश्चित। प्लस गूगल, ज़रूर। systemd-resolvedसमस्या नहीं है। मैं समस्या हूँ।


यद्यपि आप शायद किसी फ़ाइल को संपादित नहीं करना चाहते हैं /usr/lib- वे संभवतः पैकेज अपग्रेड पर लिखे जाएंगे। मुझे लगता है कि एक संबंधित फाइल कहीं न कहीं जाने /etc/systemdका रास्ता है (इसमें पहले से ही प्रवेश /etc/systemd/resolved.confद्वारा तैयार किया जाना चाहिए)।
ओलरिन

1
आदमी ने हल किया। डी। एफ। डी।, डी के साथ, हाँ /etc/systemd/resolved.d जगह है। मैं देख रहा हूँ कि हमें अक्सर mkdir /etc/ Ispathades.d को देखना पड़ता है। bob @ laptop l /etc/systemd/resolved.conf.d ls: '/etc/systemd/resolved.conf.d' तक नहीं पहुँच सकते: ऐसी कोई फ़ाइल या निर्देशिका
BobDodds

0

मेरे सिस्टम पर मुझे एक बुरा सिम्लिंक मिला: /etc/resolv.confएक सिमिलिंक था जो इंगित करता है/run/systemd/resolve/stub-resolv.conf

इस फ़ाइल में केवल एक पंक्ति है:

nameserver 127.0.0.53#53

परिणामस्वरूप, स्थानीय नेटवर्क का DNS लुकअप अक्सर गायब रहता था।

इसलिए, इसके बजाय मैं /etc/reolv.confइंगित करने के लिए बदल गया/run/systemd/resolve/resolv.conf

और अब सही ढंग से काम करता है।


0

यह अजीब है, लेकिन एकमात्र समाधान जिसने मेरे लिए उबंटू 18.04 पर काम किया, वह था जो मुझे यहां मिला :

सबसे पहले, /etc/resolv.confवांछित नेमसर्वर सेट करके बदलें :

# nano /etc/resolv.conf

उदाहरण के लिए, सेट करें,

nameserver 8.8.8.8

और फिर करते हैं

# chattr +i /etc/resolv.conf

यह /etc/resolv.confफ़ाइल की सुरक्षा करता है ताकि कोई भी इसे रूट उपयोगकर्ता सहित संशोधित न कर सके।


-3

मेरी भी यही समस्या है। प्रत्येक रिबूट, कुछ भी हल नहीं होगा। मैंने सबकुछ अनइंस्टॉल कर दिया है और इसे लगभग 50 बार पहले ही रीइंस्टॉल कर दिया है। यह बस टूट गया है।

तो यह तय है .... "बस अपने पीसी को बूट करने के लिए हर बार कुछ सेटिंग्स लागू करें, जो 90% होस्ट नामों को हल करने की अनुमति देता है, लेकिन बिना किसी कारण के अपडेट और अपग्रेड प्राप्त करने और अपग्रेड बेतरतीब ढंग से विफल हो जाएगा"

cat /etc/systemd/resolved.conf

#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.
#
# Entries in this file show the compile time defaults.
# You can change settings by editing this file.
# Defaults can be restored by simply deleting this file.
#
# See resolved.conf(5) for details

[Resolve]
#DNS=
#FallbackDNS=
#Domains=
#LLMNR=yes
#MulticastDNS=yes
#DNSSEC=no
#Cache=yes
#DNSStubListener=udp

Ubuntu 17.10 डेस्कटॉप का उपयोग करते समय, आपको एक फाइल को संपादित करना होगा जो कहती है कि यह फ़ाइल BLAH BLAH BLAH से दूर न करें

अच्छी तरह से यह केवल काम करता है ~!

root@nas:~# cat /etc/resolv.conf
# This file is managed by man:systemd-resolved(8). Do not edit.
#
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.
nameserver 8.8.8.8

इसलिए नाम सर्वर के रूप में 127.0.0.53 आईपी निकालें और उदाहरण के लिए, एक और एक दर्ज करें। ऐसा प्रतीत होता है कि मेरा वास्तविक DNS IP पता होस्ट नामों को या तो हल नहीं करता है (भले ही यह घर में 10 अन्य मशीनों और उपकरणों पर काम करता है), लेकिन Google के काम ठीक हैं।

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