resolvconf 및 NetworkManager에 의해 잘못된 네임서버가 설정되었습니다.

resolvconf 및 NetworkManager에 의해 잘못된 네임서버가 설정되었습니다.

내 DNS 서버는 입니다 192.168.1.152.

이 DNS는 DHCP를 통해 클라이언트에 제공됩니다. 내 LAN의 Windows 클라이언트는 해당 DNS를 사용하여 이름을 올바르게 확인하지만 내 Ubuntu VM은 그렇지 않습니다.

VM이 브리지 네트워킹으로 설정되어 있고 DNS 서버가 제대로 제공되고 있지만 로컬 호스트 이름이 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를 "하드 코딩"하고 싶지 않습니다.

resolvconf 및 NetworkManager를 어떻게 얻을 수 있습니까?자동으로DHCP 서버의 IP를 /etc/resolv.conf?

답변1

모두 다 아는체계화된벌레.

임시 해결 방법DNS IP가 변경되는 경우 재구성할 필요가 없습니다.

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

답변2

/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

답변3

마침내 우분투 17.10에서 이 문제에 대한 해결책을 얻었습니다. 기본적으로 이 Ubuntu 버전은 를 사용하는데 systemd-resolved, 다음 버전에서도 안정적이기를 바랍니다.

로컬 시스템 확인 캐시 대신 사용자 정의 DNS를 사용하려면 다음을 수행하십시오.

  1. 새로운 네임서버를 추가하세요. /etc/systemd/resolved.confsudoer로 파일을 편집합니다 . 여기서는 DNS 항목을 주석 처리하고 내 DNS를 배치했습니다. [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

이제 추가 DNS에서 제공한 이름을 파헤쳐 보면 레코드가 해결된 것을 볼 수 있습니다.dig nexus.default.svc.cluster.mydomain

/etc/nsswitch.conf마지막 단계는 mdns4_minimal 앞에 dns를 배치하여 에서 해결 순서를 업데이트하는 것입니다 .

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

답변4

/etc/resolv.conf내 시스템에서 잘못된 심볼릭 링크를 발견했습니다./run/systemd/resolve/stub-resolv.conf

이 파일에는 한 줄만 포함되어 있습니다.

nameserver 127.0.0.53#53

결과적으로 로컬 네트워크의 DNS 조회가 누락되는 경우가 많았습니다.

그래서 대신에 /etc/reolv.conf다음을 가리키도록 변경했습니다./run/systemd/resolve/resolv.conf

이제 올바르게 작동합니다.

관련 정보