gestore di rete: come interrompere nm aggiornando /etc/resolv.conf


26

Non voglio che il gestore di rete aggiunga al mio server DNS ricevuti da DHCP /etc/resolv.conf.

Quando si configura da GUI / Connections / IPV4 e si sceglie il metodo Automatico (solo indirizzo), aggiunge ancora i server DNS ricevuti tramite DHCP.

È possibile farlo per connessione (ssid specifico?)


Se si sceglie il metodo "Solo indirizzi automatici (DHCP)", NetworkManager non cambierà o non cambierà resolv.conf quando si attiva quella connessione. Se NetworkManager in effetti aggiunge indirizzi a resolv.conf nonostante l'impostazione "only address", allora c'è un bug in NetworkManager e dovresti segnalarlo usando Launchpad. Per impedire a NetworkManager di modificare resolv.conf è necessario selezionare "Solo indirizzi automatici (DHCP)" in tutte le configurazioni di connessione che diventano attive sul sistema.
jdthood,

1
Puoi usare la GUI nelle impostazioni IPv4 sulla connessione e scegliere "solo indirizzi" nella modalità, oppure fare quello che fai tu stesso modificando il file di connessione corrispondente in / etc / NetworkManager / system-connections / e aggiungendo ignore-auto -dns = riga vera per la sezione [ipv4].
Sasha Pachev,

Risposte:


32

Un modo per impedire a Network Manager di aggiungere file dns ai /etc/resolv.conffile è quello di fare questo:

Per prima cosa apri il file nm conf /etc/NetworkManager/NetworkManager.conf:

sudo vim /etc/NetworkManager/NetworkManager.conf

E aggiungi questo alla [main]sezione:

dns=none

Salva ed esci.


La sezione principale è [main], non[Main]
AB,

/etc/resolv.confè in genere un collegamento simbolico - sei sicuro che renderlo immutabile rende immutabile anche la destinazione del collegamento?
Muru,

5
Questo non funziona per me in Debian Jessie
Dimitri Kopriwa,

5
Questo non funziona su Ubuntu 18.04
LuizAngioletti

1
Ho dovuto sudo service network-manager restartprima che la modifica al file .conf diventasse effettiva.
Chris Moore,

3

Il mio preferito è quello di utilizzare la linea supersede domain-name-serversin /etc/dhcp/dhclient.conf. Indipendentemente dal punto di accesso DNS, Ubuntu utilizzerà sempre i DNS specificati indhclient.conf

Campione dal mio file

#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;

la creazione di una linea come descritto (utilizzando il server 8.8.8.8) non funziona su Ubuntu 18.04.
LuizAngioletti,

3
@LuizAngioletti 18.04 utilizza un diverso tipo di applicazione per la gestione della rete, chiamata netplan. Questa risposta è stata scritta per le versioni precedenti alla 18.04. Potrei aggiornarlo più tardi, però.
Sergiy Kolodyazhnyy,

2

/etc/resolv.confè collegato a /run/resolvconf/resolv.conf. NetworkManager non aggiorna /etc/resolv.conf direttamente (aggiorna solo /run/resolvconf/resolv.conf). Così:

  • rimuovi symlink ( rm /etc/resolv.conf)
  • scrivi la tua versione di /etc/resolv.conf

1
So che questo è un forum di Ubuntu, ma mentre cercavo su google centos era ancora il mio primo risultato su google, quindi pubblicavo commenti per googler centos futuri. questo non ha risolto il mio problema su centos. Sembra che Centos Network Manager stia lavorando direttamente su /etc/resolv.conf.
Tommy,

Questo non è certamente vero per Debian Stretch. Rimuove il tuo file e lo sostituisce con un altro link simbolico. Molto noioso.
HörmannHH l'

Eccone uno per Fedora 25 (virtualizzato) usando nmcli: In /etc/sysconfig/network-scripts/ifcfg-ens3questo vediamo che PEERDNS=yessignifica (in questo caso, sbagliato) le informazioni DNS sono ottenute dal DHCP e finiscono in /etc/resolv.conf. Voglio solo 127.0.0.1 come nameserver. L'esecuzione nmcli con mod ens3 ipf4.ignore-auto.dns yesrisulta nel PEERDNS=nofile di configurazione dell'interfaccia. Tuttavia /etc/resolv.confha ancora una namseservervoce vagante , quindi se è necessario riavviare la connessione nmcli con down ens3; nmcli con up ens3. Vedi anche: certdepot.net/rhel7-configure-ipv4-addresses
David Tonhofer

Su Ubuntu 18.04, il riavvio del "riavvio del gestore di rete del servizio" farà sì che NM sovrascriva /etc/resolv.conf anche se si tratta di un file rigido e non di un collegamento simbolico.
LuizAngioletti,

0

Cosa ho fatto su Debian Stretch:

  • rm /etc/resolv.conf ### (il link simbolico)
  • toccare /etc/resolv.conf
  • echo "nameserver xxxx" >> /etc/resolv.conf

Dove "xxxx" è l'indirizzo IP del tuo server DNS preferito, ad esempio OpenDNS, Google o Cloudflare.

Grazie per l'idea Taha Jahangir! Posso confermare che il tuo suggerimento ha funzionato per la mia distribuzione di Debian Stretch

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.