Quali server DNS sto usando?


249

Come posso verificare quale server DNS sto usando (in Linux)? Sto usando il gestore di rete e una connessione cablata alla LAN della mia università. (Sto cercando di scoprire perché il mio dominio non viene risolto)

Risposte:


207

Dovresti essere in grado di ottenere alcune informazioni ragionevoli in:

$ cat /etc/resolv.conf 

26
Tuttavia, si prega di essere consapevoli del fatto che (su Linuxen moderno) i contenuti di /etc/nsswitch.confdettare quali servizi di nomi vengono utilizzati (DNS, LDAP, ecc.) E in quale ordine. Dire fgrep hosts: /etc/nsswitch.conf. Se fa riferimento solo a DNS, /etc/resolv.confè il posto giusto per cercare i tuoi nameserver. Ma è probabile che tu stia utilizzando anche mDNS (aka ZeroConf, aka Avahi, aka Bonjour, ecc.), Ecc. In tal caso, le cose dipendono da ciò che stai usando.
Alexios,

27
Questo file in genere punta a 127.0.1.1 su Ubuntu: è il server di cache DNS locale, non l'upstream effettivo.
Barry Kelly,

2
@BarryKelly Controlla cosa utilizza il tuo router, quindi
Geremia

2
E se hai configurato più server upstream? Come sapere quale è attualmente utilizzato?
Sylvain Leroux,

4
Vedi le risposte di @ G32RW o @Lonniebiz per un approccio più solido in varie circostanze, ad esempio quando ricevi una risposta simile127.0.0.53
nealmcb

194

Ecco come lo faccio:

nmcli dev show | grep DNS

Questo ha funzionato prima del modo sopra:

nm-tool | grep DNS

14
Questo è utile se stai usando VPN e NetworkManager . Farai /etc/resolv.confriferimento al tuo computer, con la dnsmasqrisoluzione dei nomi come configurato da NetworkManager .
Grzegorz Żur

6
Su Debian questo richiede il network-managerpacchetto.
TranslucentCloud

2
nm-tool non è disponibile nei Linux più recenti. per esempio non è nel pacchetto "network-manager" di debian 8.
don luminoso

2
Ho aggiornato la risposta per riflettere ciò che funziona per me nel 2016.
Lonniebiz,

3
questa è la risposta migliore, resol.conf non mostra sempre la verità
blade

72

Penso che puoi anche interrogare DNS e ti mostrerà quale server ha restituito il risultato. Prova questo:

dig yourserver.somedomain.xyz

E la risposta dovrebbe dirti quali server hanno restituito il risultato. L'output che ti interessa sarà simile a questo:

;; Query time: 91 msec
;; SERVER: 172.xxx.xxx.xxx#53(172.xxx.xxx.xxx)
;; WHEN: Tue Apr 02 09:03:41 EDT 2019
;; MSG SIZE  rcvd: 207

Puoi anche dire digdi interrogare un server DNS specifico usandodig @server_ip


8
Su Debian questo richiede il dnsutilspacchetto.
Faheem Mitha,

6
Se si utilizza un servizio di mascheramento / memorizzazione nella cache DNS in esecuzione sul computer locale, verranno nascosti i server DNS reali.
Karatedog,

4
Ubuntu 18.04 mostra solo la cache DNS locale:SERVER: 127.0.0.53#53(127.0.0.53)
wisbucky

58

Basta fare un nslookup,. Parte dei risultati include il server che sta utilizzando.

Nell'esempio seguente, mostra che il server DNS utilizzato è a 8.8.8.8.

$ nslookup google.com
Server:     8.8.8.8
Address:    8.8.8.8#53

Non-authoritative answer:
Name:   google.com
Address: 172.217.22.174

1
puoi fare un esempio di cosa inserire nel prompt?
amorevole

Esempio: $ nslookup www.google.com
Ren

7
Su Debian questo richiede il dnsutilspacchetto.
Gayan Weerakutti,

6
Su un recente Ubuntu, questo punta ancora al server di cache locale 127.0.0.1 come già accennato in questo commento
FriendFX

In CentOS 7 si chiude con errore, ma è un vm quindi l'ho fatto nslookup google.comnell'host di Windows e ho trovato il nameserver. Aggiungilo /etc/resolv.confcome: nameserver xx.xx.xx.xxe riavvia il servizio networke tutto va bene. Ti lodo.
WesternGun

55

Sui sistemi che eseguono systemd utilizzare:

systemd-resolve --status

3
systemd-resolver: opzione non riconosciuta '--status'
Acumenus

Sistema @ABB? versione di systemd?
G32RW

229-4ubuntu21.2
Acumenus

11
Questo è il nuovo modo predefinito per farlo in Ubuntu 18.04 Bionic Beaver: abituati a tutti!
AveryFreeman,

5
Questa è l'unica soluzione che ha funzionato per me, poiché gli altri hanno restituito 127.0.0.53
greuze,

13

Con il nuovo network-managercomando nmcli, procedere come segue:

nmcli --fields ipv4.dns,ipv6.dns con show <connection_name>

Nelle versioni più recenti di gestore di rete (come in Ubuntu 16.04), i nomi dei campi sono leggermente diversi:

nmcli --fields ip4.dns,ip6.dns con show <connection_name>

Se non si conosce il nome della connessione, utilizzare:

nmcli -t --fields NAME con show --active

Per esempio:

$ nmcli --fields ip4.dns,ip6.dns con show 'Wired connection 1'
IP4.DNS[1]:                             172.21.0.13
IP4.DNS[2]:                             172.21.0.4

I miei risultati: order «con» «show» is not valid.
Sopalajo de Arrierez,

Funziona bene con me con Network-Manager 1.0.4 su Ubuntu 15.10. Forse hai una versione precedente?
Sameer

Il formato tabulare è piuttosto male. Spero di ottenere una colonna come un formato simile a Powershell.
CMCDragonkai

1
RestituisceError: invalid field 'ip4.dns'; allowed fields: NAME,UUID,TYPE,TIMESTAMP,TIMESTAMP-REAL,AUTOCONNECT,AUTOCONNECT-PRIORITY,READONLY,DBUS-PATH,ACTIVE,DEVICE,STATE,ACTIVE-PATH.
FriendFX il

semplicemente nmcliera tutto ciò di cui avevo bisogno su Ubuntu 19.04
John Mee,

9

per ottenere il primo SERVER DNS (solo IP):

cat /etc/resolv.conf |grep -i '^nameserver'|head -n1|cut -d ' ' -f2
  • cat genererà la configurazione DNS
  • grep filtra solo nameserver
  • head manterrà solo la prima riga / istanza
  • cut prendere la parte ip della riga (seconda colonna con '' come separatore)

Per inserire l'ip DNS in una variabile di ambiente, è possibile utilizzare come segue:

export THEDNSSERVER=$(cat /etc/resolv.conf |grep -i '^nameserver'|head -n1|cut -d ' ' -f2)

2
grep -m 1interrompe la corrispondenza dopo la prima partita, quindi non è necessario utilizzarlahead
mostra il

Per alleggerire la pipeline ancora di più, i gruppi di cattura con Perl regexp è molto ordinato, e grep prende un file come argomento: grep -Pom 1 '^nameserver \K\S+' /etc/resolv.conf. Ho appena scritto i gruppi Capture con espressione regolare grep perl
mostra il

8

Se stai usando il gestore della rete probabilmente otterrai tutti i parametri di rete dal tuo server DHCP all'università.

Se non si desidera utilizzare la shell per controllare le impostazioni DNS (come descritto da Hesse e Alexios), è possibile visualizzarle dal pannello "Informazioni di rete".

È possibile accedere a questo pannello premendo il tasto destro del mouse sull'icona del gestore di rete e selezionando "Informazioni sulla connessione" dal menu.


5

utilizzando resolvectl

$ resolvectl status | grep -1 'DNS Server'
    DNSSEC supported: no
  Current DNS Server: 1.1.1.1
         DNS Servers: 1.1.1.1
                      1.0.0.1

Per compatibilità, systemd-resolveè un collegamento simbolico resolvectlsu molte distro come per Ubuntu 18.10:

$ type -a systemd-resolve
systemd-resolve is /usr/bin/systemd-resolve

$ ll /usr/bin/systemd-resolve
lrwxrwxrwx 1 root root 10 nov.  15 21:42 /usr/bin/systemd-resolve -> resolvectl

$ type -a resolvectl
resolvectl is /usr/bin/resolvectl

$ file /usr/bin/resolvectl
/usr/bin/resolvectl: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=09e488e849e3b988dd2ac93b024bbba18bb71814, stripped

funziona perfettamente su Ubuntu 18.10.
Georgе Stoyanov,

3

Il comando

 nmcli dev list iface <interfacename> | grep IP4

Sostituisci "interfacename" con il tuo.

examlpe

 nmcli dev list iface eth0 | grep IP4

Questo elencherà tutti i server DNS (se ne usi più di uno).


nmcli dev list iface [devicename]è il comando corretto
sebix,

Non ho notato <interfaccia> nascosta da quando uso <>
Maythux,

1
Su debian ottengo un errore --- $ nmcli dev list iface eth0 Errore: 'dev' command 'list' non è valido.
don luminoso

nmcli è un comando specifico RH.
Rui F Ribeiro,

Questa è la risposta corretta!
VAdaihiep,

3

Ho Fedora 25 e ho avuto anche una risposta lenta simile sulla riga di comando ai comandi sudo.

nmcli dev show | grep DNS 

ha mostrato che solo uno dei miei 3 adattatori (due attivi) aveva voci DNS. Aggiungendo voci DNS all'unica scheda attiva che non aveva una voce - presto! Tutto va bene e il tempo di risposta è immediato.


forse in alternativa
Amos Folarin il


0

Una volta che pensi di aver trovato il vostro DNS, è possibile interrogare direttamente con dig: dig @<dns ip> <host to lookup>. Se funziona, dovresti vederlo dopo SERVERcon uno stato di NOERROR.

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.