Come imposto il mio DNS quando si sovrascrive resolv.conf?


279

La maggior parte delle informazioni che vedo online dicono di essere modificate /etc/resolv.conf, ma qualsiasi modifica apportata viene semplicemente ignorata.

$ cat /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
nameserver 127.0.1.1

Sembra che 127.0.1.1 sia un'istanza locale di dnsmasq. I dnsmasqdocumenti dicono di modificare /etc/resolv.conf. Ho provato a inserire server dei nomi personalizzati /etc/resolv.conf.d/base, ma le modifiche non sono state visualizzate /etc/resolv.confdopo l'esecuzione sudo resolvconf -u.

Cordiali saluti, non voglio cambiare il DNS in base alla connessione, voglio impostare le impostazioni DNS predefinite da usare per tutte le connessioni quando non diversamente specificato.

AGGIORNARE:

Ho risposto io stesso a questa domanda: https://unix.stackexchange.com/a/163506/67024

Penso che sia la soluzione migliore dal momento che:

  1. Funziona.
  2. Richiede il minor numero di modifiche e
  3. Funziona ancora in combinazione con la cache DNS di dnsmasq, invece di bypassarla.

Meglio rispondere alla tua domanda invece di aggiornare la tua domanda Penso che ... sarà più facile trovare la risposta giusta che hai dato al tuo problema
Philippe Gachoud,

Sembra che la maggior parte delle risposte siano orientate a Ubuntu e eccessivamente complicate. Una soluzione universale per gli utenti NetworkManager è quello di aggiungere semplicemente dns=nonea /etc/NetworkManager/NetworkManager.conf(vedi dettagli nella mia risposta qui sotto).
Skippy le Grand Gourou,

Penso che questa risposta chiarisca il motivo per cui resol.conf viene sovrascritto, quindi sai come configurarlo.
Foman

Risposte:


250

Credo che se vuoi sovrascrivere il nameserver DNS devi semplicemente aggiungere una riga simile a questa nel tuo basefile sotto resolv.conf.d.

Esempio

$ sudo vim /etc/resolvconf/resolv.conf.d/base

Quindi inserisci la tua lista dei nameserver in questo modo:

nameserver 8.8.8.8
nameserver 8.8.4.4

Finalmente aggiorna resolvconf:

$ sudo resolvconf -u

Se dai un'occhiata alla pagina man per resolvconfdescriverne i vari file /etc/resolvconf/resolv.conf.d/.

   /etc/resolvconf/resolv.conf.d/base
          File  containing  basic  resolver  information.  The lines in this 
          file are included in the resolver configuration file even when no
          interfaces are configured.

   /etc/resolvconf/resolv.conf.d/head
          File to be prepended to the dynamically generated resolver 
          configuration file.  Normally this is just a comment line.

   /etc/resolvconf/resolv.conf.d/tail
          File to be appended to the dynamically generated resolver 
          configuration file.  To append nothing, make this  an  empty  
          file.   This file is a good place to put a resolver options line 
          if one is needed, e.g.,

              options inet6

Anche se c'è un avviso nella parte superiore del headfile:

$ cat /etc/resolvconf/resolv.conf.d/head
# 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

questo avviso è presente in modo tale che, quando vengono creati questi file, l'avviso funzionerà alla fine nel resolv.conffile risultante che questi file verranno utilizzati per creare. Quindi avresti potuto facilmente aggiungere anche le nameserverrighe descritte sopra per il basefile head.

Riferimenti


21
Ubuntu 14.04 - quando ho messo i nameserver in basee corro resolvconf -u, i server dei nomi sono stati non messo in resolv.conf - quando ho messo i nameserver in head, erano
HorusKol

7
Ubuntu 14.04 - Inoltre ha dovuto commentare la configurazione impostata in/run/resolvconf/interface/NetworkManager
bitsoflogic il

3
digitare nslookup google.come il primo IP nell'elenco dovrebbe essere il tuo nuovo nameserver, in caso contrario, l'hai fatto nel modo sbagliato
frazras

6
Ubuntu 16.04: funzionava se aggiunto /etc/resolvconf/resolv.conf.d/headsolo, non con base. Confermato con nslookup google.com.
Acumenus

3
Inizialmente, è necessario aver resolvconfinstallato. Puoi installarlo facendo sudo apt-get install resolvconf.
MAChitgarha,

79

Sono anche interessato a questa domanda e ho provato la soluzione proposta @sim.

Per provarlo, ho messo

nameserver 8.8.8.8

in /etc/resolvconf/resolv.conf.d/basee

nameserver 8.8.4.4

nel /etc/resolvconf/resolv.conf.d/head

Quindi ho riavviato la rete con

sudo service network-manager restart

Il risultato è che /etc/resolv.confsembra

# 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
nameserver 8.8.4.4
nameserver 127.0.1.1

e nm-toolafferma che lo sono dnsserver

DNS:             208.67.222.222
DNS:             208.67.220.220

quali sono quelli forniti dal mio router. D'altra parte, scavare un indirizzo lo dice

;; Query time: 28 msec
;; SERVER: 8.8.4.4#53(8.8.4.4)

Se ho ragione, concludo da tutto ciò

  1. solo la parte "head" viene letta da resolvonf: la parte "base" è in qualche modo controllata da dnsmasq
  2. il dnsserver è effettivamente forzato a 8.8.4.4 indipendentemente dal server fornito da dhcp, MA perdi la memorizzazione nella cache fornita da dnsmasq, poiché la richiesta viene sempre inviata a 8.8.4.4
  3. dnsmasq sta ancora usando SOLO il dnsserver fornito da dhcp.

Tutto sommato, funziona ma non credo che sia il risultato previsto richiesto. Una soluzione più vicina penso sia la seguente. modificare

sudo vim /etc/dhcp/dhclient.conf

quindi aggiungere

supersede domain-name-servers 8.8.8.8;

Il risultato è il seguente: resolv.conf contiene solo 127.0.0.1, il che significa che viene invocata la cache dnsmasq e nm-tool dice

DNS:             8.8.8.8

ciò significa che se il nome cercato non è nella cache, viene richiesto a 8.8.8.8 e non sul server fornito da dhcp.

Un'altra opzione (forse migliore) è quella di utilizzare "anteponi" anziché "sostituzione": in questo modo, se il nome non viene risolto da 8.8.8.8, la richiesta ricade sull'altro server. In effetti, dice nm-tool

DNS:             8.8.8.8    
DNS:             208.67.222.222
DNS:             208.67.220.220

4
Una risposta molto migliore dell'hacking nelle configurazioni NS. Soprattutto l'opzione fornita per anteporre un server di fronte a quelli forniti da DHCP. Sembra il perfetto equilibrio tra la risoluzione del problema, senza crearne di nuovi!
Steve Midgley,

2
Tanta chiarezza e pensieri nella risposta e non solo un comando.
igaurav,

3
Ehi amico! "sostituisce domain-name-server 8.8.8.8;" è la risposta
Jack,

Vale la pena notare che nm-tool è stato sostituito con nmcli
Fiddy Bux il

59

Ho scoperto che è possibile modificare i nameserver che dnsmasqutilizza aggiungendo le seguenti righe a /etc/dnsmasq.conf:

server=8.8.8.8
server=8.8.4.4

/etc/dnsmasq.confTuttavia non avevo un file, poiché è installato dal pacchetto dnsmasq, ma Ubuntu viene fornito solo con dnsmasq-base. Ho corso sudo apt-get install dnsmasq, quindi modificato /etc/dnsmasq.conf, quindi sudo service dnsmasq restarte sudo service network-manager restart.

Ho corso sudo tail -n 200 /var/log/syslogper controllare il mio syslog e verificare che dnsmasqstesse utilizzando i nameserver che ho specificato:

Oct 21 23:00:54 mylaptop dnsmasq[8611]: using nameserver 8.8.8.8#53
Oct 21 23:00:54 mylaptop dnsmasq[8611]: using nameserver 8.8.4.4#53

4
C'è una ragione per cui questa è contrassegnata come la migliore risposta ... perché è davvero! grazie mille! Aggiungo che, dopo tutti i passaggi che hai citato, potrebbe essere necessario un riavvio della rete affinché tutto funzioni senza problemi (è stato per me .... sudo service network-manager restart)
Clint Eastwood,

3
Sul server Ubuntu 14.04 circa la metà delle volte un avvio a freddo non comporterebbe alcuna connettività Internet utilizzando un URL ma un indirizzo IP funzionerebbe. Ho passato molto tempo a cercare inutilmente di risolverlo, ho rinunciato per mesi, poi ho trovato questa soluzione. Anch'io penso che sia la risposta migliore.
Nate Lockwood,

È interessante che dnsmasq debba essere installato. Ciò ha effettivamente risolto il mio DNS in una situazione normale, ma ha completamente rotto la mia configurazione VPN (la connessione VPN ora non riesce ...)
PlasmaBinturong

22

Per situazioni IP statiche, la Guida al server Ubuntu dice di cambiare il file / etc / network / interfaces, che potrebbe apparire così:

iface eth0 inet static
address 192.168.3.3
netmask 255.255.255.0
gateway 192.168.3.1
dns-search example.com
dns-nameservers 192.168.3.45 192.168.8.10

Si modificano gli IP 192.168.3.45 192.168.8.10 per quelli desiderati, come 8.8.8.8

https://help.ubuntu.com/14.04/serverguide/serverguide.pdf Pagina 38


Questo sembra certamente giusto, ma come posso ora rigenerare resolv.conf ?!
Joel Berger,

3
@JoelBerger ifdown eth0; ifup eth0.
Dzamo Norton,

17
  1. Cerca "Connessione di rete"
  2. Aprilo

                        inserisci qui la descrizione dell'immagine

  3. Quindi seleziona WiFi o Ethernet, o qualunque cosa tu stia utilizzando e fai clic su Modifica. Otterrai questo:

                  inserisci qui la descrizione dell'immagine

  4. Seleziona ipv4 nelle schede

  5. Seleziona gli indirizzi solo nel metodo
  6. Inserisci il tuo nome DNS qui sotto e salvalo

  7. Hai finito


Dovrei farlo per ogni connessione di rete però. In passato è possibile modificare il valore predefinito per tutte le connessioni, che è quello che stavo cercando di fare qui.
Seán Hayes,

2
Ti amo! questa impostazione dell'interfaccia utente mi ha salvato il culo da sudo e vim mess: '(
Luca

L'uso di Mint (su Ubuntu 14.04) - ma visto anche questo con KDE - per qualche ragione, l'impostazione dei server DNS in GUI Network Manager non influisce sulle impostazioni DNS utilizzate in un terminale
HorusKol,

2
La migliore risposta imho. Su Ubuntu 14.04 ho ottenuto 2 indirizzi IP esterni per DNS che non riconoscono i client all'interno della mia rete domestica. Lasciando il metodo su "Automatico (DHCP)" per la connessione cablata, è stato aggiunto l'indirizzo IP del mio router all'elenco esistente. Per la connessione wireless su wlan0, ciò non ha funzionato, ma il metodo su "Solo indirizzi automatici (DHCP)" ha sostituito gli indirizzi esterni con l'IP del mio router e quindi ha funzionato anche. Applica le modifiche con sudo service network-manager restart, attendi un po ', verifica con nmcli d list | grep 'DNS\|IP-IFACE'. E esegui il ping del tuo client interno per nome.
RolfBly,

13

Una soluzione rapida e sporca che non è stata ancora menzionata è l'impostazione del flag immutabile sul resolv.conffile subito dopo averlo modificato.

$ sudo nano /etc/resolv.conf

Aggiungi questo e salva:

nameserver 8.8.8.8

Poi:

$ sudo chattr +i /etc/resolv.conf

Questo dovrebbe fare il trucco. Lo faccio anche sul mio sistema.


18
Ogni volta che la tua soluzione prevede chattr, non è proprio una soluzione.
Jeff Jirsa,

1
questo è ciò che faccio sui sistemi in cui è necessario modificare temporaneamente il DNS per qualche motivo e non voglio modificare la configurazione. Come soluzione permanente non lo consiglierei.
Hochl,

3
"soluzione veloce e sporca"
YouniS Bensalah,

10
Questo non è sporco. I programmi che distruggono la configurazione locale perché pensano di conoscere meglio sono sporchi.

11

Configurazione DNS in Linux

L'utilizzo del DNS su Linux viene eseguito su una serie di routine nella libreria C che forniscono accesso a Internet Domain Name System (DNS). Il file di configurazione del resolver ( resolv.conf) contiene informazioni che vengono lette dalle routine del resolver la prima volta che vengono invocate da un processo. In breve ogni processo che richiede DNS leggerà /etc/resolv.confsulla libreria. L'NSS è sovrapposto a questo, ed è configurato da /etc/nsswitch.conf.

La configurazione DNS di Linux si trova nel file /etc/resolv.conf MA esistono numerosi programmi / servizi che vogliono gestire e gestire automaticamente il file di configurazione DNS su /etc/resolv.conf. In alcune situazioni potresti voler gestire questo file da solo. Ogni programma / servizio che gestisce DNS ha i propri file di configurazione come /etc/dnsmasq.conf(per il servizio dnsmasq) e aggiunge la configurazione DNS alla modifica della connessione e / o su altri eventi ... una soluzione rapida è quella di bloccare il file di configurazione DNS chattr +i /etc/resolv.confma questo non è raccomandato in alcuni casi, una soluzione migliore consiste nell'impostare correttamente tutti i programmi / servizi utilizzando DNS come (dnsmasq / network-manager / resolvconf / ecc.)

Ripristino del controllo del DNS

Ecco un elenco esaustivo di configurazioni per ripristinare il controllo di resolv.conf ed evitare di sovrascriverlo ( come disabilitare / configurare DNS da un'altra posizione diversa da resolv.conf ) notare che resolvconf è un programma indipendente da resolv.conf, anche a seconda del tuo sistema / configurazione potresti non avere uno o molti dei programmi elencati qui.

1. Resolvconf:

File di configurazione

cat /etc/resolvconf/resolv.conf.d/head
nameserver 8.8.4.4
cat /etc/resolvconf/resolv.conf.d/base
nameserver 8.8.4.4

Aggiorna la configurazione

sudo resolvconf -u

Disabilita resolvconf

systemctl disable --now resolvconf.service 

2. Servizio Dnsmasq:

File di configurazione

cat /etc/dnsmasq.conf
server=1.1.1.1
server=8.8.4.4

Aggiorna la configurazione

sudo systemctl restart dnsmasq.service

3. Gestore di rete:

File di configurazione

/etc/NetworkManager/*

Disabilita DNS

$ cat /etc/NetworkManager/conf.d/no-dns.conf
[main]
dns=none

Abilita DNS

$ cat /etc/NetworkManager/conf.d/dns.conf
[main]
dns=default

[global-dns]
searches=example.com

[global-dns-domain-*]

Usa il servizio risolto

$ cat /usr/lib/NetworkManager/conf.d/resolved.conf 
[main]
dns=systemd-resolved

Usa resolvconf

$ cat /usr/lib/NetworkManager/conf.d/resolvconf.conf 
[main]
rc-manager=resolvconf

Aggiorna la configurazione

systemctl restart NetworkManager.service

4. Interfacce di rete:

File di configurazione

$ cat /etc/network/interfaces
#nameservers
# or dns-search like so
# dns-search x.y 
dns-nameservers 4.4.4.4 8.8.8.8

Aggiorna la configurazione

reboot

5. Client DHCP:

File di configurazione

$ cat /etc/dhcp3/dhclient.conf
supersede domain-name-servers <dns_ip_address1>,<dns_ip_address2>;

Aggiorna la configurazione

reboot

6. Servizio Rdnssd:

Disabilita rdnssd

systemctl disable --now rdnssd.service

7. Servizio risolto:

Disabilita risolta

systemctl disable --now systemd-resolved.service

8. Netconfig:

File di configurazione

/etc/sysconfig/network/config

Disabilita netconfig

cat /etc/sysconfig/network/config
NETCONFIG_DNS_POLICY=""

Aggiorna la configurazione

reboot

Impostazione del server DNS

Esempio di una /etc/resolv.confconfigurazione

#Cloudflare
nameserver 1.0.0.1

#Google
#nameserver 8.8.8.8
#nameserver 8.8.4.4

#Cloudflare 
#nameserver 1.1.1.1

#Classic Config
#nameserver 192.168.1.1
#search lan

10

Il mio problema era un po 'diverso, volevo sovrascrivere i server DNS dei miei router. Ho trovato questo link da Ubuntu: https://wiki.ubuntu.com/OverrideDNSServers

Dice: Se desideri sovrascrivere le impostazioni DNS fornite da un server DHCP, apri

/etc/dhcp3/dhclient.conf

e aggiungi la seguente riga:

supersede domain-name-servers <dns_ip_address1>,<dns_ip_address2>;

sostituendo gli <dns_ip_address*>articoli con il contenuto adeguato.


Questa è la risposta che ha risolto il mio problema.
Michael,

Perfetto. Basta aggiungere che è necessario riavviare il servizio di rete per riavviare per abilitare le modifiche.
Nick Triantafillou,

E se non avessimo quella dhcp3cartella? Ho Xubuntu 17.10, è passato a /etc/dhcpsemplicemente?
PlasmaBinturong

4

Forse mi manca qualcosa, ma secondo le istruzioni di configurazione su https://help.ubuntu.com/14.04/serverguide/network-configuration.html tutto ciò che fai è aggiornare quanto segue. Non sto eseguendo un proxy - solo una macchina dietro un firewall e un DNS locale (l'esempio mostra Google, ma lo imposta su qualsiasi cosa tu abbia bisogno).

nano /etc/network/interfaces

Predefinito:

# This file...
# and how to activate...

# The loopback...
auto local
iface lo inet loopback

# The primary network interface 
auto eth0
iface eth0 inet dhcp

AGGIORNAMENTO:

# This file...
# and how to activate...

# The loopback...
auto local
iface lo inet loopback

# The primary network interface 
#iface eth0 inet dhcp
iface eth0 inet static
address x.x.x.x
netmask 255.255.255.0
gateway x.x.x.x

#nameservers
# you may not need dns-search
# I use it because I'm running this on a Windows network 
# so its useful to have
# dns-search x.y 
dns-nameservers 4.4.4.4 8.8.8.8

Riavvia, se puoi.


3

Prova ad aggiungere dns-nameservers XXX.XXX.XXX.Xnel tuo /etc/networking/interfacesfile.


Lascia un commento quando effettui il downgrade, per favore. Questo è il metodo indicato nel manuale , pagina 38.
Zook,

1
Il manuale non menzionato mostra tutti gli IP su una riga. Questa risposta sembra suggerire l'aggiunta di una riga. E perché l'ultimo numero è largo solo una X? Penso che principalmente sia stata la scrittura in stile chat estremamente informale e incerta che ha raccolto i voti negativi, @Zook.
Cees Timmerman,

2

Alcune delle risposte qui funzionano bene. Tuttavia non ero contento del fatto che devo andare manualmente tramite i file di configurazione solo per impostare la "propria" DNS, che io già sto ricevendo su DHCPcon NetworkManager.

Ho fatto un po 'di ricerche e ho notato che il /etc/resolv.conffile è in realtà un collegamento e sta puntando a /run/systemd/resolve/stub-resolv.conf. Dopo alcuni esperimenti sembra che la /run/systemd/resolve/directory contenga un altro file chiamato resolv.confche contiene già le impostazioni che hai ricevuto tramite DHCP. Quindi, invece di dover sovrascrivere / creare manualmente i file di configurazione /etc/, puoi semplicemente ricollegarti /etc/resolv.confper puntare al /run/systemd/resolve/resolv.conffile e tutto dovrebbe andare bene:

# sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

Ora dovresti essere in grado di modificare le impostazioni anche da Network Manager in Gnome. :)

Non sono sicuro che funzionerà su Ubuntu meno recenti, ma su Ubuntu 17.10.


quando eseguiamo systemd-resolve --flush-cacheil file originale collegato viene reciso apparentemente, la risposta sopra ripristina la funzionalità originale
hafizhanindito

1

MODIFICA MAGGIO 6,2016

Ho scritto uno script per aggiornare tutte le impostazioni per le connessioni di sistema nella /etc/Network-Manager/system-connections/directory. La GUI che usi per modificare le singole connessioni, modifica un determinato file in quella directory. Lo script aggiorna tutti i file: cerca solo coloro che non hanno DNS impostato con grep e lo imposta con awk.

Poiché l'accesso a tali file richiede l' sudoaccesso, eseguire questo script con sudoe quindi - riavviare il gestore di rete

#!/bin/bash
# Author: Serg Kolo
# Date: May 6, 2015
# Description: this script checks all settings for connections in 
# /etc/NetworkManager/system-connections/ , and if there's no custom
# dns set , this script sets it;
# NOTE: run sudo service network-manager restart after running this script

set -x

for file in /etc/NetworkManager/system-connections/* ; do
        grep 'dns=208.67.220.220;' "$file"  || ( awk '{print;if ($1=="[ipv4]"){getline; print "method=auto\ndns=208.67.220.
220;\nignore-auto-dns=true"}}' "$file" > .tmpfile && ( cat .tmpfile > "$file") )
done

Script in azione:

inserisci qui la descrizione dell'immagine

POST ORIGINALE Alcuni utenti hanno sottolineato che il DNS è in qualche modo controllato da dnsmasq. Questo è davvero vero. Ho affrontato una questione un po 'più piccolo, dove non importa quanto ho cambiato heado bodyin /etc/resolvconf/resolv.conf.d, il mio computer non poteva in realtà l'accesso internato dal nome di dominio - solo lavorare con indirizzi IP.

Quello che ho fatto è stato modificare il /etc/NetworkManager/NetworkManager.conffile. In origine, ha detto dns=dnsmasq, ma ho cambiato in: dns=208.67.222.222. Sebbene in questo modo, nm-toolnon citi 208.67.222.222, ero ancora in grado di usare nomi di dominio, non solo indirizzi IP.

Ecco come NetworkManager.confappare il mio file ora:

[main]
plugins=ifupdown,keyfile,ofono
#dns=dnsmasq
dns=208.67.222.222

[ifupdown]
managed=false

NOTA: per maggiori dettagli sul mio problema e questa soluzione, consultare il mio post su askubuntu.com .

AGGIORNAMENTO N. 1

Sono tornato a casa dall'università oggi, ho scoperto che non potevo collegarmi al mio WiFi di casa. Ho letto un po 'su man NetworkManager.confe si scopre che dns=in [main]è in realtà una linea per plug-in, quindi linea dns=dnsmasqsta effettivamente aggiungendo il plug-in dnsmasq al NetworkManager, a quanto pare.

Quindi la mia soluzione funzionava ancora, proprio come non mi aspettavo. Ecco un estratto dalla pagina man:

dns=plugin1,plugin2, ... List DNS plugin names separated by ','. 

I plug-in DNS vengono utilizzati per fornire funzionalità di nameserver di memorizzazione nella cache locale (che accelera le query DNS) e per inviare i dati DNS alle applicazioni che lo utilizzano.

Quindi, impostando, dns=208.67.222.222potrei aver sostanzialmente impedito a NetworkManager di usare quel plugin, che altrimenti avrebbe usato il server DNS locale (che apparentemente non funziona).


1

Esistono due metodi

Metodo 1

Il server DNS da utilizzare può essere modificato aggiornando il headfile in sottoresolv.conf.d

$ echo 'nameserver 1.1.1.1' | sudo tee /etc/resolvconf/resolv.conf.d/base

e poi corri

$ sudo resolvconf -u

Quanto sopra genererà un resolv.conffile generico nella /etcdirectory. Tutte le richieste di risoluzione verranno inviate al suddetto nameserver. Risolto.

Tuttavia ci sono implicazioni per questo. Quando si utilizza resolvconfper interrogare direttamente le 1.1.1.1risoluzioni degli indirizzi, la potenza della memorizzazione nella cache fornita da dnsmasq è sparita. Ogni richiesta andrà a1.1.1.1

Metodo 2

Se non si desidera che ciò accada e utilizzare dnsmasq per le risoluzioni DNS, fare riferimento a questa risposta. La risposta è semplicemente descritta qui.

Aggiungi il seguente contenuto nel /etc/dnsmasq.conffile.

server = 1.1.1.1

Quindi riavviare il servizio dnsmasq

$ sudo systemctl restart dnsmasq.service

Le cose funzioneranno bene. Risolto.


0

Il modo semplice per cambiare DNS:

$ sudo nano /etc/network/interfaces

Se si verificano problemi, installare nano:

$ sudo apt-get install nano -y

poi ..

  1. trova questo: dns-nameservers
  2. se non lo trovi basta digitarlo lì
  3. Ho fatto il mio in questo modo: dns-nameservers 199.85.126.10 199.85.127.10

Spero che questo sia il modo migliore, l'ho fatto così su un VPS a proposito.


0

alla radice:

  1. commento dns=dnsmasq su/etc/NetworkManager/NetworkManager.conf
  2. aggiungere supersede domain-name-servers 4.2.2.1,4.2.2.3,4.2.2.5,4.2.2.4,4.2.2.1,4.2.2.2;alla fine di/etc/dhcp/dhclient.conf
  3. sudo service network-manager restart

Quanto segue apporta le modifiche sopra indicate:

$ sudo sed -i 's/dns\x3Ddnsmasq/\x23dns\x3Ddnsmasq/' \
   /etc/NetworkManager/NetworkManager.conf

$ echo 'supersede domain-name-servers 4.2.2.1,4.2.2.3,4.2.2.5,4.2.2.4,4.2.2.1,4.2.2.2;' | \
   sudo tee --append /etc/dhcp/dhclient.conf

$ sudo service network-manager restart

Attendi 7/10 secondi per completare il processo di riavvio, controlla la tua configurazione con "nslookup nist.gov". Funziona bene su Ubuntu LTS 14.04.


0

NB: Come la maggior parte delle risposte, questo presuppone l'uso di NetworkManager. Tuttavia, a differenza della maggior parte delle altre risposte, non presuppone l'uso di resolvconf,dhclient o qualsiasi altra cosa - fate attenzione che essi possono prendere il sopravvento, anche se (vedi aggiornamento).

Dato il numero di visualizzazioni di questa domanda è abbastanza incredibile che questa soluzione di 8 caratteri non sia stata ancora pubblicata: secondoman NetworkManager.conf ,

dns: […] none: NetworkManager non modificherà resolv.conf. Ciò implica che rc-manager non è gestito

Quindi aggiungi

dns=none

nella [main]sezione /etc/NetworkManager/NetworkManager.confquindi riavvia NetworkManager e non verrà modificato/etc/resolv.conf più .

Nota che l'impostazione rc-manager=unmanageddovrebbe essere equivalente a dns=none, e quell'impostazione rc-manager=symlinkinsieme ad avere/etc/resolv.conf come link simbolico potrebbe essere un'idea migliore (leggi la manpage sopra menzionata).

Aggiornare :

Dopo che NetworkManager ha smesso di sovrascrivere /etc/resolv.conf, ho pensato che dhcpcdstesse già sostituendo /etc/resolv.confun file vuoto inutile all'avvio. La manpage di dhcpcd.confaiutata, è sufficiente aggiungere

nohook resolv.conf

nel tuo dhcpcd.conf(il mio è dentro /etc/dhcpcd.conf).


0

Sul mio server Linux centos7 è stato usato il modo migliore per modificare questa opzione

nmtui

comando che non è suggerito in nessuna risposta qui. È possibile modificare i nameserver in questo strumento e quando si cambiano le opzioni del gestore della rete da questa utility, verranno automaticamente applicati /etc/resolv.confdopo il riavvio. Qui puoi trovare maggiori informazioni .

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.