Ligne de commande pour lister les serveurs DNS utilisés par mon système

Existe-t-il une commande pour lister les serveurs DNS utilisés par mon système?

J'essayai

$ 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 OVERWRITTENnameserver 127.0.0.1$ cat /etc/network/interfaces # interfaces(5) file used by ifup(8) and ifdown(8)auto loiface lo inet loopback

Mais il ne répertorie aucun serveur, si je vais dans "Outil d'interface graphique du gestionnaire de réseau" , dans la section sans fil, il répertorie "DNS 192.168.1.1 8.8.8.8 8.8.4.4"

Puis-je obtenir les mêmes informations à partir de la ligne de commande?

J'utilise Ubuntu 12.04 LTS

resolv.conf n'est plus vraiment utilisé, sauf si vous l'implémentez vous-même. Le gestionnaire de réseau le fait maintenant. J'ai créé un alias pour répertorier les serveurs DNS de mon système, car je passe parfois d'OpenDNS à open DNS de Google.

>Ubuntu = 15

nmcli device show <interfacename> | grep IP4.DNS

Ubuntu <= 14

nmcli dev list iface <interfacename> | grep IP4

Dans mon cas, <interfacename> être eth0, ce qui est courant, mais pas toujours le cas.

Voyez si c'est ce que vous voulez.

MODIFIER:

Je pense que resolv.conf est en fait utilisé indirectement, car le gestionnaire de réseau crée le serveur qui écoute sur 127.0.0.1, mais on m'a dit que c'est un détail d'implémentation sur lequel il ne faut pas compter. Je pense que si vous entrez des adresses DNS avant cette entrée, elles pourraient être utilisées, mais je ne sais pas exactement comment cela fonctionne. Je pense qu'il est préférable d'utiliser le gestionnaire de réseau dans la plupart des cas, lorsque cela est possible.

Dans Ubuntu 18.04 et 20.04, vous pouvez utiliser systemd-resolve --status

Ceci est valable pour Ubuntu 13.10 et les versions antérieures. Pour Ubuntu 14.04 et versions ultérieures, voir Réponse de Koala Yeung à: Comment savoir quel DNS j'utilise dans Ubuntu à partir de la version 14.04


Utiliser

nm-tool

Vous obtiendrez une sortie similaire à

NetworkManager ToolState: connected (global)- Device: eth0  [Wired connection 1] -------------------------------------------  Type:              Wired  Driver:            e1000e  State:             connected  Default:           yes  HW Address:        00:11:22:33:44:55  Capabilities:    Carrier Detect:  yes    Speed:           1000 Mb/s  Wired Properties    Carrier:         on  IPv4 Settings:    Address:         10.21.6.13    Prefix:          24 (255.255.255.0)    Gateway:         10.21.6.1    DNS:             10.22.5.133    DNS:             10.22.5.3

Ou pour voir juste le DNS faire

nm-tool | grep DNS

Les deux réponses les mieux notées, nmcli dev list iface <interfacename> | grep IP4 et nm-tool les deux supposent que le gestionnaire de réseau est en contrôle. Ce qui est le cas - sur les machines de bureau la plupart du temps au moins. Mais la réponse la plus complète est que parfois le gestionnaire de réseau n'est pas en contrôle. E. g. vpnc mess avec /etc/resolv.conf directement.

Donc: Vérifiez d'abord si 127.0.0.1 / localhost est utilisé. Cela pourrait être fait avec dig:

> dig something.unknown  | grep SERVER:;; SERVER: 127.0.0.1#53(127.0.0.1)

Maintenant tu sais que nous être utilisation de localhost. Allez - y avec l'une des réponses populaires. J'aime:

> nm-tool | grep DNS:    DNS:             8.8.8.8

Mais si 127.0.0.1 / localhost est pas utilisé, puis nm-tool's et nmclila sortie sera trompeuse:

> dig something.unknown  | grep SERVER:;; SERVER: 172.22.216.251#53(172.22.216.251)> nm-tool | grep DNS:    DNS:             8.8.8.8

Ici, dig est correct et nm-toolles informations sont trompeuses. En réalité, les adresses locales à l'environnement dans lequel j'ai VPN-ed sont résolues correctement. Tous les DNS de Google 8.8.8.8 ne le fait pas au courant.

En effet, après la connexion à un VPN avec vpnc, il met une ligne dedans /etc/resolv.conf donc, il ressemble à:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTENnameserver 1.2.3.4nameserver 127.0.0.1search MyDomain

cat /etc/resolv.conf devrait montrer vos serveurs DNS.

Vous ne pouvez pas modifier le resolv.conf directement avec Ubuntu 12.04. Si vous devez les modifier, vous pouvez ajouter de nouveaux serveurs DNS dans votre /etc/network/interfaces fichier en ajoutant ce qui suit:

 dns-nameservers x.x.x.x x.x.x.x

x est les serveurs DNS que vous souhaitez utiliser.

Si j'étais toi, je désinstallerais network-manager. À mon avis, c'est un tas de merde.

Vous pouvez accomplir tout ce que vous devez faire manuellement sans vous soucier de modifier vos paramètres, surtout si vous avez plusieurs cartes réseau sur l'ordinateur.

version 0.9.10 de nmcli

Vous pouvez utiliser l'une de ces commandes:

nmcli -t -f IP4.DNS device show eth0IP4.DNS[1]:192.168.1.1IP4.DNS[2]:8.8.8.8nmcli -t -f IP4.DNS connection show conn-nameIP4.DNS[1]:192.168.1.1IP4.DNS[2]:8.8.8.8

Dans Ubuntu 15.10, vous pouvez obtenir DNS

nmcli device show <interface name> 

Incroyable combien de façons il y a de le faire. Sur un serveur Ubuntu 18.04, si vous ne voulez rien installer de plus comme nm-tool, puis systemd-resolve --status fonctionnera immédiatement pour les informations DNS.

Si vous souhaitez obtenir non seulement vos serveurs DNS, mais également la passerelle par défaut, l'adresse IP, le masque de réseau, etc., alors netplan ip leases eth0 vous donnera toutes ces informations sous une forme facile à lire (en supposant que vous êtes intéressé par le eth0 interface).

Sur les systèmes où systemd-resolved n'est PAS installé :

$ host -v something.unknown | awk -F "[ #]" '/Received /{print$5}' | uniq192.168.1.1

Sur les systèmes où NetworkManager est en cours d'exécution :

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

Sur Ubuntu 20.04

systemd-resolve --status | grep -B 9 -A 6 "Current DNS Server"

cela m'a donné un résultat clair sur le DNS utilisé pour chaque adaptateur utilisant DNS.

Pour reconfigurer le DNS

man systemd-resolved

révèle que les serveurs DNS contactés sont déterminés par des paramètres globaux dans /etc/systemd/resolved.conf.

Sudo édite ce fichier et décommente et définit DNS= et FallbackDNS= aux serveurs DNS IPv4 que vous souhaitez.Exemple, DNS=8.8.8.8 et FallbackDNS=8.8.4.4 utiliserait DNS public de Google.Redémarrez l'ordinateur pour appliquer la modification.

@ PLA, merci pour cela réponse ce qui m'a conduit sur ce chemin.

Qu’est-ce que tu essaies de trouver? les serveurs DNS utilisés par votre système? ou essayez-vous de faire une recherche DNS?

L’ancien @LordofTime

Serveurs DNS @LordofTime utilisés par mon système

vous utilisez 127.0.0.1. utilisez-vous un serveur DNS?

Voir networking - What DNS servers am I using? - Unix & Linux Stack Exchange pour une version non-Ubuntu de cette question