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

  • Tuttavia, tieni presente che (sui Linux moderni) i contenuti di /etc/nsswitch.conf determinano quali servizi di denominazione vengono utilizzati (DNS, LDAP, ecc.) e in quale ordine. Pronuncia fgrep 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.
  • Questo file in genere punta a 127.0.1.1 su Ubuntu: ‘ è il server di cache DNS locale, non leffettivo upstream.
  • @BarryKelly Controlla cosa usa il tuo router, poi
  • E se hai configurato diversi server upstream? Come sapere quale è attualmente utilizzato?
  • Vedere le risposte di @ G32RW o @Lonniebiz per un approccio più solido in varie circostanze, ad es. quando ottieni una risposta come 127.0.0.53

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, con dnsmasq 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 servizio network 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 utilizzare head
  • 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 

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *