web-dev-qa-db-fra.com

Comment savoir quel serveur DNS mon wlan0 utilise Kubuntu 15.04

ARRIÈRE-PLAN

J'essaie de savoir quel serveur DNS est utilisé lorsque je me connecte à Internet avec mon périphérique wlan0. Je suis sous Kubuntu 15.04.

J'ai cherché et essayé quelques solutions, dont aucune ne fonctionne pour moi. Voici ce que j'ai essayé:

1. Utilisation de la commande nmcli

nmcli dev list | grep DNS

selon une réponse à la question similaire posée ici.

Cela a été marqué comme la réponse pour l'OP, mais pour moi je viens d'obtenir le résultat suivant:

Erreur: La commande 'dev' 'liste' n'est pas valide.

2. Lecture de resolv.conf:

cat /etc/resolv.conf

Cela ne me donne pas les informations DNS pour ma connexion.

  1. Utiliser nm-tool

nm-tool ne semble pas être installé sur mon système. Donc, ce n'est pas la bonne réponse pour moi.

  1. Utiliser Dnsmasq

Il existe quelques réponses qui impliquent l'utilisation de Dnsmasq. Mais dans tous les cas, je n'ai pas suffisamment compris la réponse pour pouvoir l'utiliser et je ne sais pas ce qu'est le dnsmasq.

QUESTION

Comment savoir quel DNS une connexion utilise, via la ligne de commande ou l'interface graphique, avec Kubuntu 15.04?

[EDIT]

Il semble que j'ai eu du mal à formuler cette question, car de nombreuses personnes ont fourni des réponses qui - tout en étant correctes - ne sont pas tout à fait les réponses à la question que j'avais en tête. Voici ma tentative de clarification:

Les réponses fournies jusqu'à présent me donnent simplement l'adresse de mon routeur, car c'est mon routeur qui est chargé de fournir la connexion Internet. Mais la question que j'avais vraiment à l'esprit était: quel serveur Internet DNS est utilisé lorsque je tape, par exemple, "www.google.com" dans un navigateur Internet?

Je pensais que ce serait relativement facile à découvrir, principalement parce qu'il est facile de dicter quel serveur DNS Internet est utilisé. Je peux, par exemple, faire apparaître mes paramètres de connexion et lui dire d'utiliser 8.8.8.8 pour DNS, qui est le serveur DNS public de Google. Ma question est alors la suivante: si je ne dicte aucun serveur DNS spécifique et laisse le routeur utiliser ce qui lui est attribué, comment puis-je savoir quel (s) serveur (s) DNS il/elle utilise?

2
Brian J Hoskins

Avec nmcli, vous pouvez vérifier quels serveurs DNS sont configurés avec:

nmcli dev show wlan0 | grep -i dns

Un exemple serait:

$ nmcli dev show wlan0 | grep -i dns
IP4.DNS[1]:                             10.11.12.1
IP4.DNS[2]:                             10.11.13.1
4
mgor

Mise à jour: Comme l'indiquent les commentaires ci-dessous, OP veut connaître le serveur DNS utilisé par le routeur. Si vous utilisez une connexion automatique, toutes les réponses données ici vous indiqueront l'adresse de votre routeur, ce qui signifie que les demandes sont d'abord envoyées à votre routeur. Le routeur a ses propres paramètres, qui transmettent toute demande DNS que vous envoyez au DNS du routeur.

Il est uniquement possible de connaître le serveur DNS utilisé sur un routeur si vous accédez aux paramètres de votre routeur, généralement pour les routeurs résidentiels via 192.168.0.1.

TL; DR: Version 1 - vérifie syslog. Version 2 - envoyer des paquets avec nslookup ou Dig et voir où ils vont; réponse plus avancée et technique, mais certainement plus amusant et à mon avis est un peu plus fiable.

Les autres réponses indiquées ci-dessus sont excellentes et fonctionnent 99% du temps. Dans cette réponse, je voudrais proposer une solution un peu alternative, plus technique, avec nslookup. Une autre solution plus simple consiste à vérifier /var/log/syslog.

La méthode syslog

La méthode simple consiste à rechercher avec grep outil pour using nameserver chaîne dans /var/log/syslog/:

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

Les méthodes tcpdump et nslookup

Voici une méthode pas si simple mais peut-être plus fiable. Etant donné que l’observation des demandes DNS nous dira quel est le véritable serveur DNS, nous pouvons faire exactement cela. Il existe un outil tel que tcpdump. Il est utilisé pour analyser les paquets envoyés par les adaptateurs Internet. Cet outil est fréquemment utilisé dans les tests au stylo. Dans notre but modeste de déterminer les dns, nous n'avons besoin que de deux choses: exécuter en même temps tcpdump et utiliser un autre outil nslookup (qui aide en fait à rechercher des noms de domaine à l'aide du serveur DNS du système). Plus précisément, nous voulons rechercher des paquets avec cela qui vont à .domain destinations. Par exemple, je lance Sudo tcpdump -c 50 -i wlan0 > tcpdump-result.txt pour capturer 50 paquets de mon adaptateur sans fil, puis je passe immédiatement à un autre onglet de terminal et lance nslookup google.com. Par souci de commodité, j'ai également sorti tcpdump résultat dans un fichier tcpdump-result.txt

Maintenant, en utilisant un peu de connaissance des outils tels que grep et awk, je filtre les informations souhaitées sur .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)

Comme vous pouvez le constater, ma demande va à 192.168.0.1, qui est mon routeur domestique. Par conséquent, cela signifie que vous utilisez le serveur DNS que votre fournisseur de services Internet vous a attribué.

Maintenant, que se passe-t-il si nous changeons de DNS et que nous recommençons?

$ 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)

Maintenant, mes demandes vont à l'opendns! Mais quelle adresse IP en particulier?

ping résolver2.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

Comme vous pouvez le voir, cela passe à 208.67.220.220

2

Pour afficher tous les DNS pour chaque périphérique réseau, à l'exception de lo:

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

Exemple de sortie

GENERAL.DEVICE:                         eth0
IP4.DNS[1]:                             192.168.20.1    
0
A.B.

Voici deux manières:

$ 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

ou

$ 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

La question était "J'aimerais savoir quels serveurs DNS sont utilisés lorsque j'utilise ma connexion Internet pour convertir un nom d'hôte en adresse IP. Par exemple, lorsque j'utilise mon navigateur Internet pour naviguer sur www.Amazon.com quel serveur DNS le traduit en ip ".

Maintenant, la réponse est:

Pour une connexion existante, vous ne pouvez pas. La résolution de l'adresse DNS a eu lieu et est terminée avant que vous puissiez ouvrir la connexion.

Pour voir quels serveurs de noms sont utilisés pour résoudre une requête DNS, vous pouvez Dig +trace @$( grep nameserver /etc/resolv.conf| awk '{print $2}' | head -n1 ) Amazon.com

Dig provient du package dnsutils.

0
waltinator