Come aggiungo un server DNS tramite resolv.conf?

196

È /etc/resolv.conf inutile in Ubuntu 12.04 LTS (Precise Pangolin)?

Vedo che le informazioni sul server DNS sono ora memorizzate in NetworkManager . Lo strumento da riga di comando nmcli può elencarlo per te.

Se voglio aggiungere un altro server DNS , lo aggiungerò a /etc/resolv.conf utilizzando resolvconf pacchetto di assistenza?

    
posta PnotNP 03.05.2012 - 02:00

18 risposte

133

Se /etc/resolv.conf contiene nameserver 127.0.0.1 , allora l'aggiunta di voci a /etc/resolvconf/resolv.conf.d/tail non farà nulla di utile.

Se utilizzi NetworkManager, dovresti invece aggiungere staticamente gli indirizzi del server dei nomi tramite indicatore di rete : Modifica connessioni ... | Modifica ... | Impostazioni IPv4 | Server DNS aggiuntivi .

Se davvero vuoi aggiungere più voci a /etc/resolv.conf , crea un /etc/resolvconf/resolv.conf.d/tail e aggiungili lì.

Come ogni versione di Ubuntu, si raccomanda di leggere le Note di rilascio di Ubuntu, disponibili qui:

Le sezioni Desktop e Common Infrastructure contengono un collegamento a

  • link che copre le modifiche all'infrastruttura DNS in 12.04.
risposta data stgraber 03.05.2012 - 02:21
131

Ho trovato un altro approccio qui che comporta l'aggiunta di una linea come quella seguente a /etc/dhcp/dhclient.conf :

prepend domain-name-servers x.x.x.x, y.y.y.y;

Allo stesso modo, ho trovato un terzo approccio qui che comporta l'aggiunta di linee a /etc/network/interfaces :

auto eth0
iface eth0 inet static
    . . .
    dns-nameservers 8.8.8.8 8.8.4.4

Aggiornamento: ecco la documentazione ufficiale per il terzo approccio.

    
risposta data Randall Cook 09.05.2012 - 00:48
87

Sembra che tu stia parlando del pacchetto resolvconf.

Installa il resolvconf pacchetto.

Esegui

cd /etc/resolvconf/resolv.conf.d
sudo cp -p head head.orig  #backup copy, always do this
sudo nano head

La parte superiore del file è un avvertimento spaventoso. Il file /etc/resolv.conf viene generato automaticamente dai contenuti di questo file; l'avviso è presente quindi verrà inserito in /etc/resolv.conf quando viene generato /etc/resolv.conf. Alla fine del file, aggiungi

nameserver <ip_of_nameserver>

Premi Ctrl x e rispondi si per salvare il file. Per finire, rigenera /etc/resolv.conf in modo che le modifiche vengano applicate subito:

sudo resolvconf -u

Quindi controlla il contenuto di /etc/resolv.conf per vedere che la linea che hai aggiunto ora è lì. Inoltre, sarà ancora presente la prossima volta che verrà riavviato il sistema o verrà riavviato il servizio di rete, a seconda dell'evento che si verifica per primo.

    
risposta data Azendale 01.07.2011 - 01:41
30

Qui di seguito ti mostrerò il modo migliore che ho trovato da quando eseguo l'edizione di Ubuntu Server e uso ifup piuttosto che NetworkManager.

In realtà per me lo hanno reso più facile :) inserendo tutto nel file / etc / network / interfaces. Le stesse configurazioni che avresti scritto su resolv.conf ora possono trovarsi nello stesso file delle configurazioni della scheda di rete come nell'esempio seguente:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
        address 192.168.1.2
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.1.255
        gateway 192.168.1.1
        dns-nameservers 75.75.75.75 75.75.76.76
        dns-search local

Spero che ciò sia di aiuto e sia più facile come per me, ora possiamo creare indirizzi IP statici e aggiungere in nameserver e dominio dns tutto in un file:)

    
risposta data Joseph Mituzas 24.05.2012 - 00:55
16

Il mio è in esecuzione su Ubuntu Server 12.04. Ho apportato le seguenti modifiche e riavviato il server (in genere ciò può essere fatto solo abbassando l'interfaccia di rete, ovvero ifdown eth0 o ifup eth0 ).

Nel file /etc/resolvconf/resolv.conf.d/base ho aggiunto le seguenti voci:

nameserver 8.8.8.8
nameserver 8.8.4.4

Spero che quanto sopra aiuti!

    
risposta data Don Chai 19.03.2013 - 06:56
11

Puoi usare NetworkManager come indicato nella risposta di Frank, ma se preferisci modificare manualmente /etc/resolv.conf , puoi farlo cancellandolo (in realtà è un link simbolico) e quindi creando un nuovo file semplice con il contenuto che desideri. L'utilità resolvconf scrive sempre solo nel file /run/resolvconf/resolv.conf .

    
risposta data Jase 04.05.2012 - 16:38
8

Nota: questa risposta era per una versione pre-merge piuttosto diversa della domanda, con un focus solo su un server dei nomi pre-in sospeso.

Funziona prima di 12.04:

Modifica /etc/dhcp3/dhclient.conf e aggiungi:
prepend domain-name-servers 127.0.0.1;

(In realtà, questa linea è già presente, tutto ciò che devi fare è non-commentarlo.)

    
risposta data belacqua 06.03.2011 - 21:26
6

resolvconf è inutile. Sono su un server Linux e il mio indirizzo IP è statico e il mio DNS sono statici. Non ho bisogno di resolvconf o NetworkManager .

Mantenerlo semplice è la mia politica quando si lavora su un server. Meno è la complessità, più facile sarà gestire / correggere quando le cose si rompono.

Così ho fatto aptitude purge resolvconf e ho fatto in modo che /etc/resolv.conf non fosse un link simbolico e ho appena creato una statica file. Nel caso in cui un programma tenti di cambiare il file, ho fatto il chattr +i (immutabile) a /etc/resolv.conf come precauzione.

    
risposta data Mark 16.10.2012 - 17:41
4

La maggior parte di questi presuppone che tu abbia un sistema pristine, ma la realtà è spesso tale che hai installato diversi client dhcp, disabilitato il gestore di rete in alcune versioni precedenti di Ubuntu, ecc. Potrebbe essere utile sapere quanto segue. Sto usando dnsmasq per un po ', ma lo ho disinstallato. Attualmente il mio sistema ha il seguente contenuto di /etc/resolv.conf (che è un collegamento simbolico a /run/resolvconf/resolv.conf sul mio sistema):

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.0.1

Non importa quanto spesso eseguo sudo resolvconf -u o sudo dpkg-reconfigure resolvconf , non ha aggiornato il nameserver con quelli che ho impostato nel NetworkManager. L'informazione che resolvconf utilizzava da NetworkManager era presente:

cat /run/resolvconf/interface/NetworkManager  
nameserver 8.8.4.4
nameserver 8.8.8.8

Tuttavia, risulta che se ci sono più file in questa directory, questo file potrebbe non essere utilizzato affatto. Il colpevole era un file non rimosso con la disinstallazione di dnsmasq:

cat /run/resolvconf/interface/lo.dnsmasq                        
nameserver 127.0.0.1

La semplice rimozione di questo file (e l'esecuzione di sudo resolvconf -u in seguito) ha risolto i miei problemi di DNS:

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 8.8.4.4
nameserver 8.8.8.8 

Spero che questo aiuti gli altri con il debug (le complesse interazioni tra tutti questi diversi strumenti di rete). Se utilizzi resolvconf , assicurati di eseguire ls /run/resolvconf/interfaces per vedere cosa c'è.

    
risposta data Anne van Rossum 27.12.2014 - 13:54
2

È possibile modificare la connessione "AUTO ETH0" o qualunque sia il nome che si usa per connettersi in NM. Puoi farlo cliccando col tasto destro su NM e selezionando "Modifica connessioni ...". Nella scheda IPv4 puoi selezionare "Solo indirizzi automatici (DHCP)" come "Metodo" e NM ti consentirà di impostare manualmente gli indirizzi del server dei nomi anche se gli indirizzi vengono consegnati tramite DHCP.

    
risposta data Frank Barcenas 04.05.2012 - 16:29
2

Ho appena eliminato un collegamento in /etc/resolv.conf e ho creato un file regolare con gli indirizzi dei nameserver. Funziona, e non vedo alcun motivo per usare quella costruzione piuttosto strana che gli sviluppatori di Ubuntu hanno creato.

    
risposta data Ivan 19.03.2013 - 07:34
1

Ho risolto ciò cambiando l'ordine delle fonti. Ho spostato la sorgente dns prima di mdns in % Co_de%:

hosts: files dns mdns4_minimal [NOTFOUND=return] mdns4

È possibile mantenere le impostazioni e utilizzare ancora il server di memorizzazione nella cache locale in questo modo.

    
risposta data Dan B 13.10.2012 - 03:47
1

Che ne dici di:

% Bl0ck_qu0te%

Prima di ciò, usa Network Manager per cambiare indirizzo DNS e cambia metodo in

% Bl0ck_qu0te%

Quindi esegui il comando sopra e riavvia. Questa è stata la soluzione per me.

    
risposta data Adige72 03.02.2013 - 21:40
1

Aggiungendo il mio bit all'elenco già lungo, ecco un altro modo (testato il 12.04):

Modifica /run/resolvconf/interface/NetworkManager per soddisfare le tue esigenze. Ecco un esempio:

search foobar.com example.com
nameserver 192.168.1.1

Quindi, come indicato per la maggior parte degli altri esempi, fai un sudo resolvconf -u . Ora troverai il resolv.conf simile a questo:

nameserver 192.168.1.1
nameserver 127.0.0.1
search foobar.com example.com

Ancora non mi piace il modo in cui è implementato ora (sembra che Ubuntu abbia bisogno di un servizio per ogni pippo che fa), e preferirebbe sicuramente un resolv.conf normale. Ma questo approccio sembra essere il miglior compromesso per me finora. Il "localhost-NS" aggiunto non dovrebbe fare troppo male.

    
risposta data Izzy 28.09.2013 - 23:32
1
vi /etc/network/interfaces


This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The primary network interface
allow-hotplug eth0


# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
#auto eth0         <<----- change this comment with the #
iface eth0 inet dhcp
    
risposta data Roy Rogers 04.07.2014 - 12:33
1

Questa è una domanda molto popolare, con una raccolta di risposte standard possibili, tutte, IMO, sono piuttosto hacky. Io per primo ho sempre avuto problemi a convincere Ubuntu a rispettare le impostazioni DNS che ho configurato in NetworkManager - in particolare impostando server DNS statici con "Solo indirizzi automatici (DHCP)" - e oggi ho finalmente capito cosa era veramente SBAGLIATO.

Il problema è nell'interazione tra resolvconf e NetworkManager. resolvconf ha questo file chiamato /etc/resolvconf/interface-order . Almeno sui miei sistemi, NetworkManager non è in questo file (eccetto che è coperto dalla * wild card alla fine). Quindi, quello che succede è che il rapporto più recente di dhclient su resolvconf ha la precedenza su tutto ciò che NetworkManager ha da dire.

Quindi, almeno nel mio caso, la risposta effettiva era aggiungere

NetworkManager

nella parte superiore o superiore di /etc/resolvconf/interface-order .

(Sì, so che molte persone dicono semplicemente "disinstallare resolvconf", che mi sembra una cattiva idea in sé e per sé. Ma oltre a questo, almeno wily e xenial considerano resolvconf una parte vitale del sistema [ cioè, ubuntu-minimal dipende da esso], quindi sarebbe difficile mantenere il tuo sistema in uno stato coerente e aggiornato senza resolvconf.)

Su richiesta posso fornire maggiori dettagli su come ho capito. In poche parole, ho sostituito l'eseguibile resolvconf con un wrapper shell attorno ad esso che ha scaricato i suoi argomenti, input, output e stderr nei file; e aggiunto set -x agli script di aggiornamento di resolvconf.

    
risposta data Steven Collins 31.05.2016 - 20:32
0

Un altro modo è definire server dns specifici della finestra mobile in:

/etc/docker/daemon.json

Se non si dispone di un file di questo tipo, è sufficiente crearlo:

{
    "dns": ["10.0.0.2", "8.8.8.8"]
}

Fonte: link

Vedi anche: link

    
risposta data AndreyKo 04.01.2017 - 13:27
0

Per cambiare il DNS, segui le istruzioni in: link

  1. Vai alla rete

  2. Seleziona la connessione per cui vuoi configurare il DNS.

  3. Per modificare le impostazioni per una connessione wireless, seleziona la scheda Wireless, quindi seleziona la rete wireless appropriata.

  4. Fai clic sulla freccia (a destra) e, nella finestra visualizzata, seleziona la scheda Impostazioni IPv4 o Impostazioni IPv6.

  5. Se il metodo selezionato è Automatico (DHCP), apri il menu a discesa e seleziona solo Indirizzi automatici (DHCP). Se il metodo è impostato su qualcos'altro, non cambiarlo.

  6. Nel campo Server DNS, inserisci gli indirizzi IP DNS, separati da una virgola

risposta data Ferroao 10.11.2017 - 21:54

Leggi altre domande sui tag