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.