Mój serwer DNS to 192.168.1.152
.
Ten DNS jest dostarczany klientom przez DHCP. Klienci systemu Windows w mojej sieci LAN poprawnie rozpoznają nazwy przy użyciu tego DNS, ale moja maszyna wirtualna Ubuntu nie.
Maszyna wirtualna jest skonfigurowana do pracy w sieci mostowej i jest poprawnie udostępniana jako serwer DNS, ale moje lokalne nazwy hostów nie są rozwiązywane przez nslookup lub przeglądarki.
Oto nslookup
jedna z moich lokalnych domen:
# nslookup unraid.local
Server: 127.0.0.53
Address: 127.0.0.53#53
** server can't find unraid.local: SERVFAIL
Oto, co powinien rozwiązać za pomocą mojego serwera 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
ma zły serwer nazw:
# 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
Uruchomiłem to polecenie. W przypadku serwerów DNS, myląco, określa poprawny serwer (i moją domyślną bramę).
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
Nie chcę „zakodować na stałe” adresu IP serwera DNS w pliku konfiguracyjnym, ponieważ nie będę w stanie rozwiązać problemu po zmianie sieci.
Jak mogę uzyskać resolvconf i NetworkManager do automatycznego ustawiania adresu IP serwera DHCP /etc/resolv.conf
?
źródło
Znany błąd systemowy .
Tymczasowe obejście bez konieczności ponownej konfiguracji w przypadku zmiany adresu IP DNS:
źródło
/etc/resolv.conf
pochodzi z/run/systemd/resolve/stub-resolv.conf
którym jest bollox należy/run/systemd/resolve/resolv.conf
zauważyć, że/etc/resolv.conf
tak naprawdę nie istnieje w obu przypadkachping
działa?host
inslookup
rozwiązywać nazwy hostów inaczej niżping
lubwget
. Być może trzeba będzie poszukać/etc/nsswitch.conf
solutioiny.W końcu mam rozwiązanie tego problemu dla Ubuntu 17.10. Domyślnie ta wersja Ubuntu używa
systemd-resolved
, która, mam nadzieję, będzie stabilna dla następnych wersji.Aby użyć niestandardowej usługi DNS zamiast lokalnej pamięci podręcznej rozwiązanej przez system, wykonaj następujące czynności:
dodaj nowe serwery nazw. Edytuj plik
/etc/systemd/resolved.conf
jako sudoer. Tutaj skomentowałem wpis DNS i umieściłem moje dns[Resolve] DNS=10.96.0.10 8.8.8.8 8.8.4.4
anuluj rzeczywiste dowiązanie symboliczne do
/etc/resolv.conf
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
sudo service systemd-resolved restart
sudo systemctl restart networking
A teraz, jeśli przekopiesz się do nazwy podanej przez twoje add dns, powinieneś zobaczyć zapis rozwiązany
dig nexus.default.svc.cluster.mydomain
Ostatnim krokiem jest aktualizacja kolejności rozdzielczości
/etc/nsswitch.conf
poprzez umieszczenie dns przed mdns4_minimalźródło
Złożyłem skrypt, który działa w sprawie Netplan, nie obsługując obecnie możliwości zastępowania serwerów DNS dostarczonych przez DHCP i kolejności wyszukiwania domen. Tworzy plik yaml Netplan i konfiguruje systemd-resolved do pracy zgodnie z oczekiwaniami.
źródło
Rozwiązanie, które dla mnie zadziałało, zostało opublikowane tutaj na moim blogu
Użyj edytora nano, aby edytować te 2 pliki
Dodaj serwery DNS, których chcesz używać
Następnie uruchom ponownie usługę
Kontrola końcowa:
Czy nslookup
właśnie tego użyłem i naprawiłem problem na moim laptopie w domu, ale jakiś czas w przyszłości, kiedy będę poza moją siecią domową, widzę, że spowoduje to problemy, ponieważ podstawowy i pomocniczy serwer dns nadal będzie moim domem serwery z ich adresami LAN.
źródło
/etc/resolv.conf
nie działa, ponieważ plik zostanie zastąpiony podczassystemd-resolved
ponownego uruchamiania. Po prostu edytuj/etc/systemd/resolved.conf
. Zobacz moją odpowiedź tutaj: askubuntu.com/questions/977243/ubuntu-17-10-disable-netplan/…Twój
/etc/resolv.conf
nie jest problemem.systemd-resolved
po prostu domyślnie jest nieskonfigurowany, więc zawodzi wszystkie wyszukiwania. Nie krępuj się narzekać na Nieskonfigurowane vs Rozsądne domyślne.Ręcznie dodaj serwery nazw do
systemd-resolved
. (edycja na komentarz Olorin jest poniżej, aby dodaćmkdir
, właściwą ścieżkę/etc
nie/lib
, aby przetrwać aktualizacje systemu)Dodaj:
Następnie...
systemd-resolved
jest inteligentny, ale nie jest tak skonfigurowany przez opiekunów pakietów, WYGLĄDA głupio, ponieważ opiekunowie pakietów nie wierzą w Rozsądną wartość domyślną. Możemy umieścić w nim 13 internetowych serwerów głównych, zwanych też „djb way”, lub 10 serwerami opennic: https://pastebin.com/JBfYVVtG lub trzy najszybsze serwery opennic, mierzone przez namebench. Plus, oczywiście, serwery nazw ISP. Plus Google, jasne.systemd-resolved
to nie problem. Jestem problemem.źródło
/usr/lib
- prawdopodobnie zostaną one zastąpione podczas aktualizacji pakietu. Wydaje mi się, że gdzieś odpowiedni plik/etc/systemd
jest już odpowiedni (powinien już być/etc/systemd/resolved.conf
gotowy do edycji przez administratorów).W moim systemie znalazłem złe dowiązanie symboliczne:
/etc/resolv.conf
było dowiązaniem symbolicznym, które wskazuje/run/systemd/resolve/stub-resolv.conf
Ten plik zawiera tylko jedną linię:
W rezultacie często brakowało wyszukiwania DNS w sieci lokalnej.
Zamiast tego zmieniłem,
/etc/reolv.conf
aby wskazać/run/systemd/resolve/resolv.conf
i teraz działa poprawnie.
źródło
To dziwne, ale jedynym rozwiązaniem, które działało dla mnie na Ubuntu 18.04, było to, które znalazłem tutaj :
Najpierw zmień
/etc/resolv.conf
, ustawiając żądany serwer nazw :Ustaw na przykład
A potem zrób
Chroni to
/etc/resolv.conf
plik, aby nikt nie mógł go zmodyfikować, w tym użytkownik root.źródło
Mam ten sam problem. Przy każdym ponownym uruchomieniu nic się nie rozwiąże. Odinstalowałem wszystko i przeinstalowałem już około 50 razy. To jest po prostu zepsute.
więc poprawka jest .... „po prostu zastosuj kilka ustawień przy każdym uruchomieniu komputera, co pozwala na rozpoznanie 90% nazw hostów, ale aktualizacje i uaktualnienia wget i apt-get nie zostaną losowo zakończone bez powodu”
cat /etc/systemd/resolved.conf
Podczas korzystania z Ubuntu 17.10 Desktop musisz edytować jeden plik z napisem NIE EDYTUJ TEGO PLIKU BLAH BLAH BLAH
cóż, to jedyny sposób, w jaki działa ~!
Usuń adres IP 127.0.0.53 jako serwer nazw i wprowadź inny, na przykład Google. Wygląda na to, że mój rzeczywisty adres IP DNS również nie rozpoznaje nazw hostów (chociaż działa na 10 innych komputerach i urządzeniach w domu), ale Google działa dobrze.
źródło