Przeczytałem, że powinienem mieć nameserver 127.0.1.1
w swoim /etc/resolv.conf
pliku tylko wtedy, gdy mój komputer ma własny serwer DNS. Ponieważ tak się nie dzieje, posiadanie go powoduje problemy. Ale bez względu na to, co robię, nie mogę się tego pozbyć!
Oto rzeczy, które zrobiłem do tej pory:
- Dodawanie
nameserver 192.168.1.3
do/etc/resolvconf/resolv.conf.d/base
pliku. (192.168.1.3 to DNS naszej sieci). - Uruchamianie:
sudo resolvconf --enable-updates
. - Uruchamianie:
sudo resolvconf -u
. - Uruchamianie:
sudo service network-manager restart
(dla pewności).
Jednak kiedy otwieram /etc/resolv.conf
plik, mówi nameserver 127.0.1.1
:! Czy ktoś ma pojęcie, co jest nie tak?
Pamiętaj, że tak naprawdę jest 127.0.1.1
! I nie mam pojęcia, dlaczego tak nie jest 127.0.0.1
!
Nawet gdy zaktualizuję /etc/resolv.conf
ręcznie i zmienię na cokolwiek innego, sudo resolvconf -u
przywróci to z powrotem do 127.0.1.1
! Skąd pochodzi ten adres?
źródło
restart network-manager
nie działa na Xenial, ponieważ używa systemd zamiast upstart. spróbujsystemctl restart network-manager
Możliwe, że resolvconf jest źle skonfigurowany. Jest to szczególnie prawdopodobne, jeśli bawiłeś się z jego plikami konfiguracyjnymi, nie bardzo rozumiejąc, jak działają resolvconf i NetworkManager.
Aby uzyskać dodatkowe informacje, przeczytaj dokumentację resolvconf i post na blogu Stéphane Grabera.
https://www.stgraber.org/2012/02/24/dns-in-ubuntu-12-04/
Najpierw powinieneś wiedzieć, że zarówno Ubuntu Desktop, jak i Ubuntu Server domyślnie mają zainstalowaną i aktywowaną resolvconf. Resolvconf zapewnia platformę do dynamicznej aktualizacji pliku /etc/resolv.conf w uporządkowany i odwracalny sposób.
Po drugie, powinieneś wiedzieć, że Ubuntu Desktop domyślnie ma zainstalowany i aktywowany NetworkManager. Domyślnie NetworkManager uruchamia instancję dnsmasq, która ma służyć jako lokalny serwer nazw przekazywania. Ta kontrolowana przez NetworkManager instancja dnsmasq nasłuchuje zapytań pod numerem 127.0.1.1. Kiedy NetworkManager uruchamia instancję dnsmasq, informuje resolvconf, aby wstawił adres
127.0.1.1
do resolv.conf. Jak wspomniano w innej odpowiedzi, jeśli skonfigurujesz NetworkManager, aby nie uruchamiał lokalnej instancji serwera przekierowań nazw, wówczas nie uruchomi lokalnego serwera nazw przekierowań i nie powie resolvconf, aby wstawił adres127.0.1.1
do resolv.conf.Ta domyślna konfiguracja działa poprawnie, więc jeśli sytuacja nie jest wyjątkowa, należy przywrócić konfigurację domyślną.
Aby przywrócić domyślną konfigurację, zajmij się tym
#
znaku../run/resolvconf/resolv.conf
Aby to osiągnąć, wykonaj następujące polecenia.
Oryginalna konfiguracja NetworkManager ma mieć
w /etc/NetworkManager/NetworkManager.conf. Rozsądnym rozwiązaniem jest wyłączenie lokalnego serwera nazw przesyłania dalej kontrolowanego przez NetworkManager, komentując
dns=dnsmasq
linię.Po wykonaniu wszystkich tych czynności zaleca się zrestartowanie komputera w celu wyczyszczenia nieaktualnych rekordów informacji o serwerze nazw.
źródło
W moim przypadku
dns=dnsmasq
w/etc/NetworkManager/NetworkManager.conf
pliku nie było wiersza , a/etc/resolv.conf
Menedżer sieci nadpisał go, aby go miećnameserver 127.0.1.1
Poprawka polegała na przywróceniu dowiązania symbolicznego w celu właściwej aktualizacji:
źródło