Riga di comando per elencare i server DNS utilizzati dal mio sistema

197

Esiste un comando per elencare i server DNS utilizzati dal mio sistema?

Ho provato

$ 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
$ cat /etc/network/interfaces 
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

Ma non elenca alcun server, se vado a "Network Manager GUI Tool", nella sezione Wireless elenca "DNS 192.168.1.1 8.8.8.8 8.8.4.4"

Posso ottenere le stesse informazioni dalla riga di comando?

Sto usando Ubuntu 12.04 LTS

    
posta Anurag Uniyal 18.06.2012 - 16:36
fonte

7 risposte

196

resolv.conf non è più realmente utilizzato, a meno che non lo implementiate da soli. Il gestore di rete lo fa ora. Ho creato un alias per elencare i server DNS sul mio sistema, poiché a volte passo da OpenDNS al DNS aperto di Google.

Ubuntu & gt; = 15

nmcli device show <interfacename> | grep IP4.DNS

Ubuntu & lt; = 14

nmcli dev list iface <interfacename> | grep IP4

Nel mio caso, <interfacename> è eth0 , che è comune, ma non sempre il caso.

Verifica se questo è ciò che desideri.

EDIT:

Penso che resolv.conf sia effettivamente usato indirettamente, perché il gestore di rete crea il server che ascolta su 127.0.0.1, ma mi è stato detto che si tratta di un dettaglio di implementazione su cui non si dovrebbe contare. Penso che se inserisci degli indirizzi DNS prima di questa voce, potrebbero essere usati, ma non sono sicuro di come funzioni. Penso che sia meglio usare il gestore di rete nella maggior parte dei casi, quando possibile.

    
risposta data Marty Fried 18.06.2012 - 17:20
fonte
82

Questo è valido per Ubuntu 13.10 e precedenti. Per Ubuntu 14.04 e versioni successive, consulta la risposta di Koala Yeung a: Come sapere cosa sto utilizzando DNS in Ubuntu dal 14.04 in poi

Usa

nm-tool

Riceverai un risultato simile a

NetworkManager Tool

State: connected (global)

- Device: eth0  [Wired connection 1] -------------------------------------------
  Type:              Wired
  Driver:            e1000e
  State:             connected
  Default:           yes
  HW Address:        00:11:22:33:44:55

  Capabilities:
    Carrier Detect:  yes
    Speed:           1000 Mb/s

  Wired Properties
    Carrier:         on

  IPv4 Settings:
    Address:         10.21.6.13
    Prefix:          24 (255.255.255.0)
    Gateway:         10.21.6.1

    DNS:             10.22.5.133
    DNS:             10.22.5.3

O per vedere solo il DNS fare

nm-tool | grep DNS
    
risposta data tgm4883 18.06.2012 - 17:22
fonte
31

Le due risposte con punteggio più alto, nmcli dev list iface <interfacename> | grep IP4 e nm-tool presuppongono entrambe che il gestore di rete abbia il controllo. Che è - su macchine desktop la maggior parte del tempo almeno. Ma la risposta più completa è che a volte il gestore di rete non ha il controllo. Per esempio. vpnc scompiglia con /etc/resolv.conf direttamente.

Quindi: Prima verifica se viene usato 127.0.0.1/localhost. Questo potrebbe essere fatto con dig :

> dig something.unknown  | grep SERVER:
;; SERVER: 127.0.0.1#53(127.0.0.1)

Ora sai che noi siamo usando localhost. Vai avanti con una delle risposte popolari. Mi piace:

> nm-tool | grep DNS:
    DNS:             8.8.8.8

Ma se 127.0.0.1/localhost è non usato, l'output di nm-tool e nmcli sarà fuorviante:

> dig something.unknown  | grep SERVER:
;; SERVER: 172.22.216.251#53(172.22.216.251)
> nm-tool | grep DNS:
    DNS:             8.8.8.8

Qui, dig è corretta e le informazioni di nm-tool sono fuorvianti. In realtà gli indirizzi locali verso l'ambiente in cui ho inserito VPN sono stati risolti correttamente. Tutto ciò che Google DNS 8.8.8.8 non conosce.

Questo perché dopo essersi connesso a una VPN con vpnc , mette una riga in /etc/resolv.conf in modo che assomigli a:

# 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 1.2.3.4
nameserver 127.0.0.1
search MyDomain
    
risposta data Peter V. Mørch 28.05.2015 - 21:19
fonte
28

cat /etc/resolv.conf dovrebbe mostrare i tuoi server DNS.

Non puoi modificare resolv.conf direttamente con Ubuntu 12.04. Se è necessario cambiarli, puoi aggiungere nuovi server DNS nel tuo /etc/network/interfaces file aggiungendo quanto segue:

 dns-nameservers x.x.x.x x.x.x.x

dove x è il server DNS che desideri utilizzare.

Se fossi in te, disinstallerei network-manager . Secondo me è un mucchio di merda.

Puoi eseguire tutto ciò che devi fare manualmente senza preoccuparti di cambiare le impostazioni, soprattutto se sul computer sono presenti più schede NIC.

    
risposta data ssc 03.05.2013 - 17:27
fonte
8

nmcli versione 0.9.10

Puoi utilizzare uno di questi comandi:

nmcli -t -f IP4.DNS device show eth0
IP4.DNS[1]:192.168.1.1
IP4.DNS[2]:8.8.8.8

nmcli -t -f IP4.DNS connection show conn-name
IP4.DNS[1]:192.168.1.1
IP4.DNS[2]:8.8.8.8
    
risposta data iman 19.08.2015 - 12:03
fonte
2

In Ubuntu 15.10 puoi ottenere DNS

nmcli device show <interface name> 
    
risposta data Suleman 02.03.2016 - 19:09
fonte
0

Sembra essere gestito dal gestore di rete. Dai un'occhiata qui link

per una spiegazione esauriente.

Oppure la versione breve per cercare in

 /etc/NetworkManager/NetworkManager.conf

o

 <SYSCONFDIR>/NetworkManager/NetworkManager.conf
    
risposta data mbs 18.06.2012 - 16:46
fonte

Leggi altre domande sui tag