Come posso verificare quale server DNS sto utilizzando (in Linux)? Sto utilizzando il gestore di rete e una connessione cablata alla LAN della mia università. (Sto cercando di scoprire perché il mio dominio non viene risolto)
Risposta
Dovresti essere in grado di ottenere alcune informazioni ragionevoli in:
$ cat /etc/resolv.conf
Commenti
Risposta
Qui “è come lo faccio:
( nmcli dev list || nmcli dev show ) 2>/dev/null | grep DNS
Questo ha funzionato prima nel modo sopra:
nm-tool | grep DNS
Su Debian, devi avere il pacchetto network-manager installato.
Commenti
- Questo è utile se utilizzi VPN e NetworkManager . Il tuo
/etc/resolv.conf
punterà alla tua macchina, condnsmasq
che risolve i nomi come configurato da NetworkManager . - Su Debian questo richiede il pacchetto
network-manager
. - nm-tool non è disponibile nei nuovi Linux. per esempio non lo è nel ‘ network-manager ‘ pacchetto di debian 8.
- I ‘ ho aggiornato la risposta per riflettere ciò che sta lavorando per me nel 2016.
- questa è la risposta migliore, resolver.conf non mostra sempre la verità
Risposta
Su sistemi che eseguono systemd utilizzare:
systemd-resolve --status
Commenti
- systemd-resolution: unrecognized option ‘ –status ‘
- Says
Failed to get global data: Unit dbus-org.freedesktop.resolve1.service not found.
- Questo è il nuovo modo predefinito per farlo in Ubuntu 18.04 Bionic Beaver: abituatevi, tutti!
- Questo è lunico soluzione che ha funzionato per me, poiché gli altri hanno restituito 127.0.0.53
- Cosa sto leggendo? Vedo solo i record DNSSEC.
Risposta
Penso che tu possa anche interrogare DNS e ti mostrerà cosa il server ha restituito il risultato. Prova questo:
dig yourserver.somedomain.xyz
E la risposta dovrebbe dirti quale server ha restituito il risultato. Loutput a cui sei interessato 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 a dig
di eseguire la query un server DNS specifico utilizzando dig @server_ip
Commenti
- Su Debian questo richiede
dnsutils
. - Se utilizzi un servizio di mascheramento / memorizzazione nella cache DNS eseguito sulla macchina locale, nasconderà i server DNS reali.
- Ubuntu 18.04 mostra solo la cache DNS locale:
SERVER: 127.0.0.53#53(127.0.0.53)
Answer
Esegui solo un nslookup
. Parte dei risultati includono il server che sta utilizzando.
Nellesempio seguente, mostra che il server DNS utilizzato è 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
Commenti
- puoi fornire un esempio di cosa inserire nel prompt?
- Esempio:
$ nslookup www.google.com
- Su Debian questo richiede il pacchetto
dnsutils
. - Su un Ubuntu recente, questo punta di nuovo al server cache locale 127.0.0.1 come già accennato in questo commento
- In CentOS 7 si chiude con errore, ma è una VM quindi ho fatto
nslookup google.com
nellhost Windows e ho trovato il server dei nomi. Aggiungilo in/etc/resolv.conf
come:nameserver xx.xx.xx.xx
e riavvia il servizionetwork
e tutto va bene. Lode a te.
Risposta
Con il nuovo network-manager
comando nmcli
, fai questo:
nmcli --fields ipv4.dns,ipv6.dns con show [connection_name]
Nelle versioni più recenti di network-manager (come Ubuntu 16.04), i nomi dei campi sono leggermente diversi:
nmcli --fields ip4.dns,ip6.dns con show [connection_name]
Se non conosci il nome della connessione, utilizza:
nmcli -t --fields NAME con show --active
Ad esempio, sulle vecchie versioni di nmcli:
$ 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
Commenti
- I miei risultati :
order «con» «show» is not valid
. - Per me funziona bene con network-manager 1.0.4 su Ubuntu 15.10. Forse hai una versione precedente?
- Il formato tabulare è piuttosto scadente. Spero di ottenere un formato simile a una colonna simile a Powershell.
- Restituisce
Error: invalid field 'ip4.dns'; allowed fields: NAME,UUID,TYPE,TIMESTAMP,TIMESTAMP-REAL,AUTOCONNECT,AUTOCONNECT-PRIORITY,READONLY,DBUS-PATH,ACTIVE,DEVICE,STATE,ACTIVE-PATH.
- semplicemente
nmcli
era tutto ciò di cui avevo bisogno su Ubuntu 19.04
Rispondi
per ottenere il primo SERVER DNS (solo IP):
-
cat
produrrà solo filtri di configurazione DNS -
grep
nameserver -
head
manterrà solo la prima riga / istanza -
cut
accetta lip parte della riga (seconda colonna con “” come separatore)
Per inserire IP DNS in una variabile dambiente, puoi usare come segue:
export THEDNSSERVER=$(cat /etc/resolv.conf |grep -i "^nameserver"|head -n1|cut -d " " -f2)
Commenti
-
grep -m 1
interrompe la corrispondenza dopo la prima corrispondenza, quindi non ‘ non è necessario utilizzarehead
- Per alleggerire ulteriormente la pipeline, lacquisizione di gruppi con Perl regexp è molto semplice e grep accetta un file argomento:
grep -Pom 1 '^nameserver \K\S+' /etc/resolv.conf
. Ho appena scritto Cattura gruppi con lespressione regolare grep perl - Sono presenti ‘ sia IPv4 che Server DNS IPv6. Inoltre, i server secondari esistono per un motivo. Quale restituisce questo comando? È consigliabile prendere il primo e ignorare gli altri?
Rispondi
Se stai usando gestore di rete probabilmente ottieni tutti i parametri di rete dal tuo server dhcp alla tua università.
Se non vuoi usare la tua shell per controllare le tue impostazioni dns (come descritto da Hesse e Alexios), puoi vederli dal pannello “Informazioni di rete”.
Puoi raggiungere questo pannello premendo il tasto destro del mouse sullicona del gestore di rete e selezionando “Informazioni di connessione” dal menu.
Risposta
Utilizzo di 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 a resolvectl
su molte distribuzioni 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
Commenti
- funziona perfettamente su Ubuntu 18.10.
Risposta
Ho Fed ora 25 e ha anche avuto 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 allunica scheda attiva che non aveva una voce – presto! Tutto è buono e il tempo di risposta è immediato.
Commenti
- forse in alternativa
Risposta
In Ubuntu> = 15
nmcli device show <interfacename> | grep IP4.DNS
Sostituisci <interfacename>
con il tuo.
In Ubuntu < = 14
Il comando
nmcli dev list iface <interfacename> | grep IP4
Sostituisci <interfacename>
con il tuo.
Esempi
nmcli device show eth0 | grep IP4.DNS
Oppure
nmcli dev list iface eth0 | grep IP4
Questo elencherà tutti i server DNS (se usi più di uno).
Commenti
-
nmcli dev list iface [devicename]
è il comando corretto - I haven ‘ t notato < interfaccia > è nascosto poiché uso < >
- Su Debian ricevo un errore — $ nmcli dev li st iface eth0 Errore: ‘ dev ‘ comando ‘ list ‘ non è valido.
- nmcli è un comando specifico per RH.
- Questa è la risposta corretta!
Risposta
Su una Fedora 33 recente, puoi semplicemente usare
# resolvectl dns Global: Link 2 (enp0s31f6): Link 3 (wlp4s0): 1.1.1.1 8.8.8.8 Link 4 (virbr0): Link 5 (virbr0-nic):
Per verificare se systemd-resolved
è attivo, fai cat /etc/resolv.conf
Ti indicherà chi controlla il file.
Se desideri maggiori dettagli, puoi utilizzare resolvectl status
resolvectl statistics
, puoi anche svuotare le cache …
Per risolvere i problemi, puoi utilizzare journalctl -u systemd-resolved -f -o cat | grep Looking
dopo aver impostato il livello su DEBUG: sudo resolvectl log-level debug
Risposta
In CentOS, puoi utilizzare:
/usr/sbin/named -v
Risposta
Sui sistemi in cui systemd-resolved
NON è installato:
$ host -v something.unknown | awk -F "[ #]" "/Received /{print$5}" | uniq 192.168.1.1
Sui sistemi in cui è in esecuzione NetworkManager
:
$ ( nmcli -f IP4.DNS,IP6.DNS dev list || nmcli -f IP4.DNS,IP6.DNS dev show ) 2>/dev/null | awk "/DNS/{print$NF}" 192.168.1.1
/etc/nsswitch.conf
determinano quali servizi di denominazione vengono utilizzati (DNS, LDAP, ecc.) e in quale ordine. Pronunciafgrep hosts: /etc/nsswitch.conf
. Se fa riferimento solo a DNS,/etc/resolv.conf
è il posto giusto per cercare i server dei nomi. Ma è probabile che ‘ utilizzi anche mDNS (aka ZeroConf, aka Avahi, aka Bonjour, ecc.), Ecc. In tal caso, le cose dipendono da ciò che ‘ in uso.127.0.0.53