web-dev-qa-db-fra.com

Comment savoir quel DNS j'utilise dans Ubuntu à partir de 14.04

(Un suivi de question similaire pour 12.04 .)

Avant Ubuntu 12.04, vous pouvez voir le DNS actif dans /etc/resolv.conf. Dans Ubuntu 12.04, NetworkManager ne fonctionne plus avec le fichier. Vous devez consulter directement l'outil de ligne de commande nm-tool.

Fait intéressant, nm-tool n'est plus installé par défaut dans 14.04 et les versions ultérieures. Bien que vous puissiez toujours installer via apt-get install, vous ne pouvez pas supposer que tout Ubuntu l’a mis à disposition.

Donc la question reste. Comment savez-vous, par défaut, le DNS que vous utilisez en ligne de commande?

14
Koala Yeung

Réponse rapide

Un nouvel outil NetworkManager, nmcli, est maintenant installé par défaut. L'outil en ligne de commande est très puissant mais un peu plus difficile à apprendre. Tenez-vous en à notre question, la réponse courte est:

nmcli dev show | grep DNS

ou, pour avoir une sortie plus propre

nmcli dev show | grep DNS | sed 's/\s\s*/\t/g' | cut -f 2


Explique

Si vous avez le temps, je peux expliquer le jumbo-mumble ci-dessus:

  1. nmcli dev show

    Fonctionne un peu comme l’ancienne commande nm-tool. Il élabore les informations de réseau actuelles.

    Vous pouvez également apprendre le paramétrage d'une interface donnée en ajoutant le nom de l'interface. Par exemple, pour connaître les informations de eth0, vous pouvez utiliser nmcli dev show eth0.

  2. grep DNS

    Évidemment, grep ne contient que les lignes contenant le texte "DNS".

  3. sed 's/\s\s*/\t/g' | cut -f 2

    Ceci est uniquement pour nettoyer la sortie. cut peut sélectionner la sortie par colonne, mais il ne faut qu'un seul caractère comme séparateur (alors que nmcli utilise BEAU ESPACE). sed transforme les espaces de la sortie d'origine en tabulation.

30
Koala Yeung

L'analyse des paquets serait une méthode alternative qui fonctionne indépendamment de NetworkManager ou de tout autre outil de connexion réseau que vous utilisez. L'idée de base est d'envoyer une requête DNS avec nslookup et, dans un second terminal, de vérifier où vont les paquets.

Pour cela, nous devons nous connecter au réseau pour la première fois, afin que rien ne vienne encombrer les connexions et lancer la commande suivante:

Sudo tcpdump -vv -i wlan0 -W 1200 | grep google.com  

En alternative terminal run:

nslookup google.com 

Une fois que vous avez reçu la liste des paquets de tcpdump, vérifiez où ils vont depuis votre adresse IP.

Par exemple,

$ Sudo tcpdump -vv -i wlan0 -W 1200 | grep google.com                            
tcpdump: listening on wlan0, link-type EN10MB (Ethernet), capture size 65535 bytes
    eagle.29862 > b.resolvers.Level3.net.domain: [udp sum ok] 64057+ [1au] A? google.com. ar: . OPT UDPsize=4096 (39)
    b.resolvers.Level3.net.domain > eagle.29862: [udp sum ok] 64057 q: A? google.com. 11/0/0 google.com. A 173.194.115.64, google.com. A 173.194.115.65, google.com. A 173.194.115.72, google.com. A 173.194.115.66, google.com. A 173.194.115.69, google.com. A 173.194.115.78, google.com. A 173.194.115.70, google.com. A 173.194.115.71, google.com. A 173.194.115.68, google.com. A 173.194.115.67, google.com. A 173.194.115.73 (204)
    eagle.16429 > b.resolvers.Level3.net.domain: [udp sum ok] 38822+ A? google.com. (28)

Comme vous pouvez le constater, mon ordinateur portable, eagle, envoie des paquets au DNS de mon université, b.resolvers.Level3.net.domain. Si vous voulez voir l'adresse IP, vous pouvez utiliser l'indicateur -n avec tcpdump.

Par exemple:

$ Sudo tcpdump -n -vv -i wlan0 -W 1200 | grep google.com                         
tcpdump: listening on wlan0, link-type EN10MB (Ethernet), capture size 65535 bytes
    10.10.87.145.56474 > 4.2.2.2.53: [udp sum ok] 15606+ A? google.com. (28)
4
Sergiy Kolodyazhnyy

vérifiez vos connexions réseau:

ls /etc/NetworkManager/system-connections/

et choisissez la connexion que vous souhaitez configurer.

 Sudo cat /etc/NetworkManager/system-connections/Internet | grep dns

Remplacez "Internet" sans votre nom de connexion


Utilisez peut toujours utiliser nm-tool :

nm-tool | grep DNS

Installez-le pour U14.04 et les versions ultérieures à l'aide de

Sudo apt-get install nm-tool

exemple:

nm-tool | grep DNS
    DNS:             192.168.1.1
    DNS:             192.168.10.1
    DNS:             192.168.11.1
2
Maythux

Il est toujours disponible par défaut sur la version 14.04 car il est fourni avec network-manager. Depuis, il a été supprimé de network-manager (version 15.04 et ultérieure) et n'est même pas disponible via apt-get.

Pour l'instant, sur la version 15.04, vous pouvez télécharger et extraire manuellement nm-tool de l'ancien paquet. Exécutez les commandes suivantes.

Tout d’abord, créez un répertoire temporaire dans lequel travailler:

cd
mkdir APTGET;cd APTGET

Ensuite, téléchargez l'ancienne version et extrayez les fichiers:

wget 'http://us.archive.ubuntu.com/ubuntu/pool/main/n/network-manager/network-manager_0.9.8.8-0ubuntu7.1_AMD64.deb'
ar xvf *
tar xvf dat*

Créez un nouveau répertoire:

mkdir ~/bin

(S'il indique file already exists, ignorez simplement le message et continuez).

Copiez le fichier dans le nouveau répertoire:

cp ./usr/bin/nm-tool ~/bin

Retournez au répertoire personnel et supprimez le répertoire temporaire:

cd ..
rm -R APTGET

Maintenant, définissez un alias pour nm-tool:

cp ~/.bashrc ~/.bashback
echo 'alias nm-tool="~/bin/nm-tool"' | tee -a ~/.bashrc;. ~/.bashrc

L’utilisateur actuel devrait maintenant pouvoir exécuter nm-tool à partir du terminal.


En outre, cela peut toujours ne pas fournir avec précision tous les résolveurs DNS actuels que vous utilisez.

Vous pouvez vous rendre sur DNSleaktest.com pour obtenir un rapport complet. Cliquez sur Extended Test pour obtenir un rapport complet.

1
mchid

nmcli dev list | grep DNS

il produira quelque chose comme;
IP4.DNS[1]: 8.8.8.8 IP4.DNS[1]: 8.8.8.8 IP4.DNS[2]: 8.8.4.4

La commande ci-dessus fonctionne avant Ubuntu 16.04
Pour Ubuntu 16.04, utilisez:
nmcli dev show | grep DNS

1
Komu

En réalité, NetworkManager utilise /etc/resolv.conf. Toutefois, avec les paramètres par défaut, le serveur DNS répertorié dans resolv.conf est 127.0.0.1, car NetworkManager utilise son propre service DNS interne pour certains raisons techniques obscures , qui ne concernent pas de nombreuses personnes. C'est pourquoi vous devez utiliser nmcli pour voir quels serveurs DNS sont utilisés par NetworkManager en interne.

Cependant, il est également possible de désactiver ce comportement et de revenir à l'ancien, où le serveur DNS réellement utilisé est répertorié dans resolv.conf. Pour ce faire, commentez simplement la ligne dns=dnsmasq dans /etc/NetworkManager/NetworkManager.conf et redémarrez. Pour la plupart des gens, cela ne devrait faire aucune différence, mis à part le fait que le serveur DNS actuel sera maintenant affiché dans resolv.conf. Si vous faites partie des cas critiques pour lesquels le changement a été introduit, cela devrait apparaître rapidement et vous pouvez revenir au comportement par défaut en supprimant la mise en commentaire de la ligne.

0
fkraiem