40 votes

Comment puis-je savoir quels serveurs DNS DNSMasq utilise ?

Comment puis-je savoir quels serveurs DNS DNSMasq utilise pour résoudre un nom vers une adresse IP ? Je n'arrive pas à le savoir. Toutes les questions existantes ici semblent aller jusqu'à dire aux utilisateurs qu'ils utilisent DNSMasq.

0voto

Puppe Points 101

Sur Ubuntu 15.04 la commande est :

$ nmcli dev show | grep DNS
IP4.DNS[1]:                             8.8.8.8

0voto

NotMe Points 406

Je développe les réponses données par d'autres, en montrant des commandes un peu plus longues, qui n'impriment que les serveurs DNS.

Ubuntu 14.04 a nmcli 0.9.8.8 dans le gestionnaire de réseau paquet. La liste des serveurs DNS se trouve dans la sortie de la commande nmcli -f IP4 -t -m tabular dev list . Pour n'obtenir que la liste des serveurs DNS, exécutez (sans l'initiale $ ) :

$ env -i nmcli -f IP4 -t -m tabular dev list | perl -ne 'chomp; my @l = split(m@:@, $_); if (@l > 3) { $_ = $l[3]; if (m@^\d+(?=[.])[\d. |]+[.]\d+$@) { for (split(m@ *[|] *@, $_)) { print "$_\n" } } }'
12.34.56.78
90.123.45.6

Ubuntu 15.04 ou plus récent a également nmcli dans le gestionnaire de réseau mais attend des arguments de ligne de commande différents. La liste des serveurs DNS se trouve dans la sortie de nmcli -f IP4.DNS -t -m tabular dev show . Pour n'obtenir que la liste des serveurs DNS, exécutez (sans l'initiale $ ) :

$ env -i nmcli -f IP4.DNS -t -m tabular dev show | perl -ne 'if (m@^\d+(?=[.])[\d. |]+[.]\d+$@) { chomp; for (split(m@ *[|] *@, $_)) { print "$_\n" } }'
12.34.56.78
90.123.45.6

から nmcli se connecte à NetworkManager via DBus, la commande ci-dessus fonctionne pour toutes les connexions gérées par NetworkManager, même pour celles qui n'utilisent pas la fonction dnsmasq . Cependant, toutes les connexions ne sont pas gérées par NetworkManager. La liste des serveurs DNS doit être extraite du fichier /etc/resolv.conf et s'il contient des adresses commençant par 127.0. Le NetworkManager doit être consulté. Voici comment procéder à l'extraction :

$ perl -ne 'print "$1\n" if m@^\s*nameserver\s+(\S+)\s*$@' /etc/resolv.conf 
127.0.1.1

Veuillez noter que 127.0.1.1 (et peut-être d'autres) indique dnsmasq y 127.0.0.53 indique Résolu par le système .

Si la connexion active en cours n'est pas gérée par NetworkManager (et Résolu par le système ), alors les serveurs DNS seront énumérés dans le fichier /etc/resolv.conf .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X