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


254

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

Provai

$ 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


Cosa stai cercando di trovare? i server DNS utilizzati dal tuo sistema? o stai provando a fare una ricerca DNS?
Thomas Ward

L'ex @LordofTime
ish

@LordofTime i server DNS utilizzati dal mio sistema
Anurag Uniyal

stai usando 127.0.0.1. stai eseguendo un server DNS?
Skaperen,

Vedi unix.stackexchange.com/q/28941/38647 per una versione non Ubuntu di questa domanda
mwfearnley,

Risposte:


250

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

Ubuntu> = 15

nmcli device show <interfacename> | grep IP4.DNS

Ubuntu <= 14

nmcli dev list iface <interfacename> | grep IP4

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

Vedi se questo è quello che vuoi.

MODIFICARE:

Penso che resolv.conf sia effettivamente utilizzato indirettamente, perché il gestore della rete crea il server in ascolto su 127.0.0.1, ma mi è stato detto che si tratta di un dettaglio dell'implementazione su cui non si deve fare affidamento. Penso che se inserisci gli indirizzi DNS prima di questa voce, potrebbero essere utilizzati, ma non sono sicuro di come funzioni. Penso che sia meglio usare il gestore della rete nella maggior parte dei casi, quando possibile.


2
grazie, sì, sembra che funzioni, la rete Ubuntu sembra essere fonte di confusione, quindi posso impostare i server DNS in resol.conf / base o in / etc / network / interfaces o nel gestore della rete, esiste una guida definitiva per la rete Ubuntu?
Anurag Uniyal,

Se si utilizza la GUI, il posto migliore per impostarla è la creazione di profili nella finestra di dialogo Connessioni di rete. Ho duplicato il valore predefinito, quindi ho modificato il duplicato per apportare le modifiche desiderate, mantenendo il valore predefinito per assicurarmi di avere sempre un profilo funzionante. Quindi, è facile cambiare profilo. Non so come farlo senza la GUI, ma c'è un utente "James Henstridge" che è molto ben informato sulla rete di Ubuntu; potresti provare a cercare askubuntu per le sue informazioni. Mi ha parlato del comando che ti ho dato in questo post .
Marty Fried,

1
stgraber.org/2012/02/24/dns-in-ubuntu-12-04 è un bell'articolo sulla risoluzione DNS in Ubuntu 12.04
Anurag Uniyal,

6
Sto usando 15.04 e 'nmcli dev show | grep DNS' invece funziona per me.
flickerfly,

1
@vcardillo: la domanda originale affermava: "Sto usando Ubuntu 12.04 LTS". Sono passati 5 anni da quando ho pubblicato la mia risposta. Niente dura per sempre.
Marty Fried,

85

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


Uso

nm-tool

Otterrai un output 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

nm-tool | grep DNS

1
Volevo solo aggiungere, andare al nm-appletmenu delle informazioni di connessione funzionerà anche :)
Samik,

1
+1 funziona anche così come nm-cli, come ha risposto @Marty Fried
Anurag Uniyal,

2
funziona alla grande anche su lubuntu 14.04. grazie
jamescampbell,

2
nm-tool non è stato trovato il 15.10
labirinto il

1
sì, questo non funziona più ... no neanche nm-toolin 16.x. nmcli(nella risposta di Marty Fried) è la strada da percorrere
Lambart,

46

Le due risposte con il punteggio più alto nmcli dev list iface <interfacename> | grep IP4ed nm-toolentrambe ipotizzano che il gestore della rete abbia il controllo. Qual è, almeno sulle macchine desktop. Ma la risposta più completa è che a volte il gestore della rete non ha il controllo. Ad esempio si vpncscherza /etc/resolv.confdirettamente.

Quindi: per prima cosa controlla se viene utilizzato 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 si sa che noi stiamo 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 viene utilizzato, l' output di " nm-toole 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è corretto e nm-toolle informazioni sono fuorvianti. In realtà, gli indirizzi locali all'ambiente in cui ho eseguito il VPN sono risolti correttamente. Tutto ciò di cui il DNS di Google 8.8.8.8 non è a conoscenza.

Questo perché dopo la connessione a una VPN con vpnc, inserisce una linea in /etc/resolv.confmodo 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

3
Questa è la risposta più completa
Marinos il

Grazie. Alcuni di noi qui fuori non usano NM e questo è positivo per la comunità.
Stephen Boston,

Solo per il completamento, l' digutilità può essere facilmente installata con apt install dnsutils.
Daniele Brugnara,

32

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

Non è possibile modificarlo resolv.confdirettamente con Ubuntu 12.04. Se è necessario modificarli, tuttavia, è possibile aggiungere nuovi server DNS nel /etc/network/interfacesfile aggiungendo quanto segue:

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

dove xsono i server DNS che si desidera utilizzare.

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

Puoi compiere tutto ciò che devi fare manualmente senza preoccuparti di modificare le impostazioni, soprattutto se sul tuo computer sono presenti più schede di rete.


2
Devo riavviare nm dopo aver fatto il cambio DNS?
Bhargav Nanekalva,

1
--Grazie. Questo è fantastico Funziona anche senza l'attività di gestore di rete.
Adam,

"cat /etc/resolv.conf dovrebbe mostrare i tuoi server DNS". Non
Marinos il

25

In Ubuntu 18.04 puoi usare systemd-resolve --status


NB se cat /etc/resolv.conf lo dice anche questo
Rqomey

11

nmcli versione 0.9.10

Puoi usare 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

2

In Ubuntu 15.10 è possibile ottenere DNS

nmcli device show <interface name> 

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.