내 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를 사용하려면 다음을 수행하십시오.
새로운 네임서버를 추가하세요.
/etc/systemd/resolved.conf
sudoer로 파일을 편집합니다 . 여기서는 DNS 항목을 주석 처리하고 내 DNS를 배치했습니다.[Resolve] DNS=10.96.0.10 8.8.8.8 8.8.4.4
실제 심볼릭 링크를 취소하십시오.
/etc/resolv.conf
- 새로운 심볼릭 링크 생성
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
- 서비스를 다시 시작하세요
sudo service systemd-resolved restart
- 네트워크 관리자를 다시 시작하세요
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
이제 올바르게 작동합니다.