Come scoprire quale server DNS il mio wlan0 utilizza Kubuntu 15.04

2

SFONDO

Sto cercando di scoprire quale server DNS viene utilizzato quando mi collego a Internet con il mio dispositivo wlan0. Sto usando Kubuntu 15.04.

Ho cercato in giro e provato alcune soluzioni, nessuna delle quali funziona per me. Ecco cosa ho provato:

1. Utilizzando il comando nmcli

nmcli dev list | grep DNS

come risposta alla domanda simile qui.

Questo è stato contrassegnato come la risposta per l'OP, ma per me ottengo solo il seguente risultato:

  

Errore: il comando 'dev' lista 'non è valido.

2. Leggere resolv.conf:

cat /etc/resolv.conf

Questo non mi dà le informazioni DNS per la mia connessione.

  1. Uso di nm-tool

nm-tool non sembra essere installato sul mio sistema. Quindi non è la risposta corretta per me.

  1. Uso di dnsmasq

Ci sono alcune risposte che implicano l'uso di dnsmasq. Ma in tutti i casi non ho capito la risposta abbastanza da usarlo e non so cosa sia il dnsmasq.

DOMANDA

Come faccio a sapere che DNS sta usando una connessione, tramite la riga di comando o la GUI, con Kubuntu 15.04?

[EDIT]

Sembra che abbia avuto difficoltà ad articolare questa domanda, perché molte persone hanno fornito risposte che, pur corrette, non sono proprio le risposte alla domanda che avevo in mente. Ecco il mio tentativo di chiarimento:

Le risposte fornite finora mi danno semplicemente l'indirizzo del mio router, perché il mio router è responsabile della fornitura della connessione internet. Ma la domanda che avevo veramente in mente era; quale server di internet DNS viene utilizzato quando digito, ad esempio, "www.google.com" in un browser Internet?

Ho pensato che sarebbe stato relativamente facile scoprirlo, soprattutto perché è facile stabilire quale server DNS internet è utilizzato da solo. Posso, ad esempio, richiamare le mie impostazioni di connessione e dirle di usare 8.8.8.8 per DNS, che è il server DNS pubblico di Google. La mia domanda, quindi, è; se non dettare alcun server DNS specifico e lasciare che il router utilizzi qualsiasi cosa sia assegnata, come faccio a sapere quali server DNS sta utilizzando?

    
posta Brian J Hoskins 05.08.2015 - 15:42

4 risposte

4

Con nmcli puoi verificare quali server DNS dnsmasq è configurato con:

nmcli dev show wlan0 | grep -i dns

Un esempio potrebbe essere:

$ nmcli dev show wlan0 | grep -i dns
IP4.DNS[1]:                             10.11.12.1
IP4.DNS[2]:                             10.11.13.1
    
risposta data mgor 06.08.2015 - 06:52
1

Aggiornamento : come rivelato nei commenti sotto la domanda, OP vuole conoscere il server DNS utilizzato dal router. Se usi la connessione automatica, tutte le risposte fornite qui ti diranno l'indirizzo del tuo router, il che significa che le richieste vanno prima al router. Il router a sua volta ha le sue impostazioni, che inoltrano qualsiasi richiesta DNS inviata al DNS del router.

Scoprire quale server DNS è utilizzato su un router è possibile solo se accedi alle impostazioni del router, in genere per i router residenziali tramite 192.168.0.1 .

TL; DR : Versione 1: controlla syslog. Versione 2: invia pacchetti con nslookup o dig e guarda dove vanno; risposta più avanzata e tecnica, ma sicuramente più divertente e secondo me è un po 'più affidabile.

Le altre risposte pubblicate sopra sono eccezionali e funzionano il 99% delle volte. In questa risposta vorrei fornire una soluzione alquanto alternativa e più tecnica con nslookup . Un'altra soluzione più semplice è controllare /var/log/syslog .

Il metodo syslog

Il metodo semplice è di cercare con grep strumento per using nameserver stringa in /var/log/syslog/ :

$ sudo grep 'using nameserver' /var/log/syslog                                                                                                     
Aug  6 02:25:34 ******** dnsmasq[1487]: using nameserver 208.67.220.220#53

Il metodo tcpdump e nslookup

Ecco un metodo non così semplice ma forse più affidabile. Da quando osserviamo dove vanno le richieste DNS, ci diremo qual è il vero server DNS che possiamo fare esattamente così. C'è uno strumento come tcpdump . Viene utilizzato per analizzare i pacchetti inviati dagli adattatori internet. Spesso questo strumento viene utilizzato nei test delle penne. Per il nostro modesto scopo di determinare dns, abbiamo solo bisogno di fare due cose: eseguire allo stesso tempo tcpdump e usare un altro strumento nslookup (che in realtà aiuta a cercare i nomi di dominio usando il server DNS del sistema). In particolare, vogliamo cercare i pacchetti con cui andare a .domain destinazioni. Ad esempio, eseguo sudo tcpdump -c 50 -i wlan0 > tcpdump-result.txt per acquisire 50 pacchetti dal mio adattatore wireless, e immediatamente vado in un'altra scheda del terminale ed eseguo nslookup google.com . Per praticità, ho anche prodotto il risultato di tcpdump su un file tcpdump-result.txt

Ora, utilizzando un po 'di conoscenza di strumenti come grep e awk , estrapolo le informazioni desiderate su .domain :

$ awk '/.domain/ {gsub("my-host-name","****");print}' tcpdump-result.txt                                                                 
01:49:48.811363 IP ****.local.29258 > 192.168.0.1.domain: 11608+ PTR? 69.0.168.192.in-addr.arpa. (43)
01:49:49.095361 IP ****.local.44184 > google-public-dns.domain: 9560+ A? google.com. (28)
01:49:49.139361 IP google-public-dns.domain > ****.local.44184: 9560 1/0/0 A 216.58.217.46 (44)

Come puoi vedere, la mia richiesta va a 192.168.0.1, che è il mio router di casa. Pertanto, significa che stai utilizzando un server DNS che il tuo fornitore di servizi Internet ti ha assegnato.

Ora, cosa succede se cambiamo dns e facciamo tutto da capo?

$ awk '/.domain/ {gsub("my-hostname","****");print}' tcpdump-result2.txt                                                                
02:05:35.885670 IP ****.local.51056 > resolver2.opendns.com.domain: 2511+ A? google.com. (28)
02:05:36.189665 IP ****.local.5503 > 192.168.0.1.domain: 63991+ PTR? 220.220.67.208.in-addr.arpa. (45)
02:05:36.237664 IP 192.168.0.1.domain > ****.local.5503: 63991 1/0/0 PTR resolver2.opendns.com. (80)
02:05:36.241664 IP ****.local.27776 > 192.168.0.1.domain: 58334+ PTR? 69.0.168.192.in-addr.arpa. (43)

Ora le mie richieste vanno a Opendns! Ma quale IP in particolare?

ping resolver2.opendns.com

PING resolver2.opendns.com (208.67.220.220) 56(84) bytes of data.
64 bytes from resolver2.opendns.com (208.67.220.220): icmp_seq=1 ttl=57 time=59.9 ms
64 bytes from resolver2.opendns.com (208.67.220.220): icmp_seq=2 ttl=57 time=55.9 ms
^C
--- resolver2.opendns.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1003ms
rtt min/avg/max/mdev = 55.999/57.999/59.999/2.000 ms

Come puoi vedere, va a 208.67.220.220

    
risposta data Sergiy Kolodyazhnyy 06.08.2015 - 10:11
0

Ecco due modi:

$ 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.1.1         **<--Server**
search localdomain

o

$ dig localhost

; <<>> DiG 9.9.5-3ubuntu0.4-Ubuntu <<>> localhost
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47070
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;localhost.         IN  A

;; ANSWER SECTION:
localhost.      0   IN  A   127.0.0.1

;; Query time: 1 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)         **<--Server**
;; WHEN: Wed Aug 05 11:30:10 EDT 2015
;; MSG SIZE  rcvd: 54

Si scopre che la domanda era "Vorrei scoprire quali server DNS vengono utilizzati quando utilizzo la mia connessione Internet per risolvere un hostname in un ip. Ad esempio quando utilizzo il mio browser internet per navigare su www.amazon .com, che il server DNS traduce in un ip ".

Ora la risposta è:

Per una connessione esistente, non è possibile. La risoluzione degli indirizzi DNS è avvenuta ed è finita prima di poter aprire la connessione.

Per vedere quali server dei nomi vengono utilizzati per risolvere una query DNS, potresti dig +trace @$( grep nameserver /etc/resolv.conf| awk '{print }' | head -n1 ) amazon.com

dig è dal pacchetto dnsutils .

    
risposta data waltinator 05.08.2015 - 17:34
0

Per mostrare tutto il DNS per ogni dispositivo di rete, eccetto lo :

for i in /sys/class/net/*; do \
    awk -F/ '! /lo/ {system("nmcli dev show "$(NF)" | grep \"DNS\|DEVICE\"")}' <<< "$i"; \
done

Esempio di output

GENERAL.DEVICE:                         eth0
IP4.DNS[1]:                             192.168.20.1    
    
risposta data A.B. 06.08.2015 - 08:35

Leggi altre domande sui tag