L'indirizzo del server DNS non è più memorizzato in resolv.conf; dov'è adesso?


14

A volte cambio server DNS, usando l'indicatore NetworkManager nella barra delle applicazioni; questo ha funzionato bene con le versioni precedenti, e in realtà funziona anche con 12.04, tranne una cosa: uso Conky per visualizzare alcune informazioni di sistema, incluso l'indirizzo DNS, e ho notato che ora viene sempre visualizzato 127.0.0.1.

Ho guardato dentro resolv.conf, da dove ottiene questo indirizzo, e abbastanza sicuro, è quello che dice sempre. Ho una sola riga, con l'ammonimento di non modificare il file a mano:

nameserver 127.0.0.1

L'unico modo che conosco per controllare l'indirizzo del server DNS ora è aprire la GUI del gestore di rete per controllare la pagina delle informazioni. Quindi, dove sono archiviate queste informazioni ora?

Risposte:


17

Le informazioni sono gestite internamente da Network Manager. È possibile ottenere queste informazioni dalla riga di comando utilizzando lo nmclistrumento incluso .

È possibile recuperare le informazioni di Network Manager per una particolare interfaccia di rete con il seguente comando:

nmcli dev list iface eth0

(sostituisci eth0con l'interfaccia con cui ti stai connettendo). L'output includerà informazioni sull'interfaccia e la connessione attualmente attiva su quell'interfaccia:

GENERAL.DEVICE:                         eth0
GENERAL.TYPE:                           802-3-ethernet
...
IP4.DNS[1]:                             192.168.0.1
...

Non dovrebbe essere troppo difficile estrarre le informazioni che stai cercando da questo output.

Se è necessario un metodo programmatico per accedere a questi dati che non si basa sull'output di nmcli, queste informazioni dovrebbero essere disponibili anche dall'interfaccia D-Bus di Network Manager.


Grazie mille, sono ottime informazioni. Dovrebbe essere abbastanza facile creare un semplice script di shell usando quel nmclicomando per elencare vari parametri interessanti. Forse posso montare qualcosa di utile e condividerlo da qualche parte. Non pensavo davvero che fosse necessario Network Manager, e suppongo che ci possano essere modi alternativi per qualcuno di farlo, ma questo funziona per me.
Marty Fried

Bene, puoi vedere che il server in ascolto 127.0.0.1è un'istanza dnsmasqavviata da Network Manager (vedi l'output di sudo netstat -tlnp). Ma è meglio pensarlo come un dettaglio dell'implementazione e chiedere a Network Manager le informazioni che desideri, dato che è quello che prende la decisione qui.
James Henstridge

Grazie per aver fornito tali informazioni. E, grazie anche per aver modificato la mia domanda, proverò a dedicare più tempo in futuro. :) La mia scusa è che ero appena passato alla 12.04 e stavo spegnendo piccoli fuochi su più fronti. :)
Marty Fried

4
nmcli dev list ifacenon funziona per me ma nmcli dev showfunziona [ubuntu 15.04]
Beni Cherniavsky-Paskin,

10

Gli sviluppatori di Ubuntu dovrebbero documentare queste modifiche /etc/resolv.conf, ma non lo hanno fatto.

Ecco un elenco di comandi rapidi per iniziare.

  1. Mostra i server DNS correnti

    nm-tool | grep DNS
    
  2. Definire un server DNS statico in /etc/dhcp/dhclient.conf. Aggiungi la seguente riga e riavvia il resolver locale:

    supersede domain-search "sub.mydomain.com", "domain.com";
    prepend domain-name-servers 192.168.0.1;
    

    Dal prompt dei comandi:

    invoke-rc.d network-manager restart
    

Qualche altra documentazione: resolvconf (8), /usr/share/doc/resolvconf/README.gz.
jdthood,

4

Tieni presente che l'utilizzo di nmcli potrebbe non fornirti sempre la risposta completa. ad esempio se usi openconnect (o vpnc, presumibilmente) per avviare una VPN e se hai installato il pacchetto resolvconf (per occuparti della gestione automatica di /etc/resolv.conf), scoprirai che può ancora inserire automaticamente il Impostazioni DNS della VPN in /etc/resolv.conf prima di 127.0.0.1. In questa circostanza, il semplice controllo (ad es.) "Nmcli -f IP4 dev list" non ti darà il vero elenco DNS attuale. Non sono sicuro che questo scenario ti colpisca, ma ho pensato che valesse la pena menzionarlo.


Grazie per le informazioni aggiuntive; è sempre utile saperne di più. Per il mio caso d'uso, non dovrò preoccuparmene, in quanto voglio solo essere in grado di sapere quale dei due possibili indirizzi DNS è attivo.
Marty Fried,

Se si utilizza Networkmanager per connettersi a una VPN, quale comando dovrebbe fornire il DNS? I DNS funzionano ma non li trovo.
Jorge Suárez de Lis,
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.