menedżer sieci: jak zatrzymać aktualizację nm /etc/resolv.conf

26

Nie chcę, aby menedżer sieci dodawał do mojego serwera DNS otrzymane z DHCP /etc/resolv.conf.

Podczas konfigurowania z GUI / Connections / IPV4 i wyboru metody automatycznej (tylko adres) nadal dodaje serwery DNS otrzymane przez DHCP.

Czy można to zrobić dla każdego połączenia (konkretny SSID?)

użytkownik2913139
źródło
Jeśli wybierzesz metodę „Tylko adresy automatyczne (DHCP)”, NetworkManager nie zmieni lub nie powinien zmienić resolv.conf podczas aktywacji tego połączenia. Jeśli NetworkManager w rzeczywistości dodaje adresy do resolv.conf pomimo ustawienia „tylko adresy”, oznacza to błąd w NetworkManager i należy go zgłosić za pomocą Launchpada. Aby powstrzymać NetworkManager przed zmianą resolv.conf, powinieneś wybrać „Tylko adresy automatyczne (DHCP)” we wszystkich konfiguracjach połączeń, które stają się aktywne w twoim systemie.
jdthood
1
Możesz albo użyć interfejsu GUI w ustawieniach IPv4 połączenia i wybrać w trybie „tylko adresy”, albo zrób to samo, edytując odpowiedni plik połączenia w / etc / NetworkManager / system-connections / i dodając ignore-auto -dns = prawda linia do sekcji [ipv4].
Sasha Pachev

Odpowiedzi:

32

Jednym ze sposobów, aby zatrzymać Menedżera sieci przed dodawaniem serwerów DNS do /etc/resolv.confpliku, jest:

Najpierw otwórz plik nm conf /etc/NetworkManager/NetworkManager.conf:

sudo vim /etc/NetworkManager/NetworkManager.conf

I dodaj to do [main]sekcji:

dns=none

Zapisz i wyjdź.

krt
źródło
Główna sekcja to [main]nie[Main]
AB
/etc/resolv.confjest zazwyczaj dowiązaniem symbolicznym - czy na pewno uczynienie go niezmiennym sprawia, że ​​cel łącza również jest niezmienny?
muru
5
To nie działa dla mnie w debian jessie
Dimitri Kopriwa,
5
To nie działa na Ubuntu 18.04
LuizAngioletti
1
Musiałem to zrobić, sudo service network-manager restartzanim zmiana w pliku .conf zaczęła obowiązywać.
Chris Moore,
3

Moim ulubionym jest wykorzystanie linii supersede domain-name-serversw /etc/dhcp/dhclient.conf. Bez względu na to, co zapewnia punkt dostępowy dns, twoje Ubuntu zawsze będzie używać tych dns określonych wdhclient.conf

Próbka z mojego pliku

#send host-name "andare.fugue.com";
send host-name = gethostname();
#send dhcp-client-identifier 1:0:a0:24:ab:fb:9c;
#send dhcp-lease-time 3600;
#supersede domain-name "fugue.com home.vix.com";
supersede domain-name-servers 208.67.220.220;
#prepend domain-name-servers 127.0.0.1;
request subnet-mask, broadcast-address, time-offset, routers,
    domain-name, domain-name-servers, domain-search, host-name,
    dhcp6.name-servers, dhcp6.domain-search,
    netbios-name-servers, netbios-scope, interface-mtu,
    rfc3442-classless-static-routes, ntp-servers,
    dhcp6.fqdn, dhcp6.sntp-servers;
#require subnet-mask, domain-name-servers;
Sergiy Kolodyazhnyy
źródło
utworzenie linii zgodnie z opisem (przy użyciu serwera 8.8.8.8) nie działa na Ubuntu 18.04.
LuizAngioletti
3
@LuizAngioletti 18.04 używa innego typu aplikacji menedżera sieci, zwanej netplan. Ta odpowiedź została napisana dla wersji sprzed 18.04. Jednak mogę go później zaktualizować.
Sergiy Kolodyazhnyy
2

/etc/resolv.confjest dowiązany do /run/resolvconf/resolv.conf. NetworkManager nie aktualizuje bezpośrednio /etc/resolv.conf (tylko aktualizuje /run/resolvconf/resolv.conf). Więc:

  • usuń symlink ( rm /etc/resolv.conf)
  • napisz własną wersję /etc/resolv.conf
Taha Jahangir
źródło
1
Wiem, że jest to forum ubuntu, ale podczas googlingu dla centos był to nadal mój pierwszy wynik w Google, więc zamieszczam komentarz dla przyszłych googlerów centos. to nie rozwiązało mojego problemu w centach. Wygląda na to, że menedżer sieci centos bezpośrednio pracuje na /etc/resolv.conf.
Tommy
Z pewnością nie jest to prawdą w przypadku Debian Stretch. Usuwa plik i zastępuje go innym dowiązaniem symbolicznym. Bardzo irytujące.
HörmannHH
Oto jeden dla (zwirtualizowanej) Fedory 25 wykorzystującej nmcli: /etc/sysconfig/network-scripts/ifcfg-ens3Widzimy to, PEERDNS=yesco oznacza (w tym przypadku niewłaściwe) informacje DNS są uzyskiwane przez DHCP i kończą się w /etc/resolv.conf. Chcę tylko 127.0.0.1 jako serwer nazw. Uruchomienie nmcli con mod ens3 ipf4.ignore-auto.dns yespowoduje w PEERDNS=nopliku konfiguracyjnym interfejsu. Jednak /etc/resolv.confnadal ma błędne namseserverwpisy, więc jeśli trzeba zrestartować połączenie nmcli con down ens3; nmcli con up ens3. Zobacz także: certdepot.net/rhel7-configure-ipv4-addresses
David Tonhofer
W Ubuntu 18.04 ponowne uruchomienie „service restart menedżera sieci” spowoduje, że NM zastąpi plik /etc/resolv.conf, nawet jeśli jest to twardy plik, a nie dowiązanie symboliczne.
LuizAngioletti
0

Co zrobiłem na Debian Stretch:

  • rm /etc/resolv.conf ### (dowiązanie symboliczne)
  • dotknij /etc/resolv.conf
  • echo „nameserver xxxx” >> /etc/resolv.conf

Gdzie „xxxx” to preferowany adres IP serwera DNS, np. Z OpenDNS, Google lub Cloudflare.

Dzięki za pomysł Taha Jahangir! Mogę potwierdzić, że twoja sugestia zadziałała w mojej dystrybucji Debian Stretch

Emmanuel Supermanu15
źródło