Existe-t-il une commande permettant de répertorier les serveurs DNS utilisés par mon système?
J'ai essayé
$ 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.0.1
$ cat /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
Mais il ne répertorie aucun serveur. Si je clique sur "Outil d'interface graphique Network Manager", la section "Sans fil" répertorie "DNS 192.168.1.1 8.8.8.8 8.8.4.4".
Puis-je obtenir les mêmes informations en ligne de commande?
J'utilise Ubuntu 12.04 LTS
resolv.conf n'est plus vraiment utilisé, à moins que vous ne l'implémentiez 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 au DNS ouvert de Google.
buntu> = 15
nmcli device show <interfacename> | grep IP4.DNS
buntu <= 14
nmcli dev list iface <interfacename> | grep IP4
Dans mon cas, <interfacename>
est 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 127.0.0.1, mais on m'a dit qu'il s'agit d'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 risquent de s'habituer, 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.
Ceci est valable pour Ubuntu 13.10 et les versions antérieures. Pour Ubuntu 14.04 et les versions ultérieures, voir Réponse de Koala Yeung à: Comment savoir quel DNS est-ce que j'utilise dans Ubuntu à partir de 14.04
Utilisation
nm-tool
Vous obtiendrez une sortie similaire à
NetworkManager Tool
State: 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 juste voir 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
, supposent toutes deux que le gestionnaire de réseau est en contrôle. C'est ce qui se passe - du moins sur les ordinateurs de bureau. Mais la réponse plus complète est que parfois, le gestionnaire de réseau n’est pas en contrôle. Par exemple. vpnc
interrompt directement /etc/resolv.conf
.
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 vous savez que nous sommes en utilisant 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 non utilisé, les résultats de nm-tool
's et de nmcli
seront trompeurs:
> 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 les informations de nm-tool
sont trompeuses. En réalité, les adresses locales à l'environnement dans lequel le VPN est édité sont résolues correctement. Le DNS de Google 8.8.8.8
non le sait.
En effet, après la connexion à un VPN avec vpnc
, une ligne est insérée dans /etc/resolv.conf
de sorte qu'elle se présente comme suit:
# 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 1.2.3.4
nameserver 127.0.0.1
search 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 cependant les modifier, vous pouvez ajouter de nouveaux serveurs DNS dans votre fichier /etc/network/interfaces
en ajoutant ce qui suit:
dns-nameservers x.x.x.x x.x.x.x
où x
est les serveurs DNS que vous souhaitez utiliser.
Si j'étais vous, je désinstallerais network-manager
. À mon avis, c'est un tas de merde.
Vous pouvez accomplir manuellement tout ce que vous devez faire sans vous soucier de la modification de vos paramètres, en particulier si vous avez plusieurs cartes réseau sur l'ordinateur.
Dans Ubuntu 18.04, vous pouvez utiliser systemd-resolve --status
nmcli version 0.9.10
Vous pouvez utiliser l'une de ces commandes:
nmcli -t -f IP4.DNS device show eth0
IP4.DNS[1]:192.168.1.1
IP4.DNS[2]:8.8.8.8
nmcli -t -f IP4.DNS connection show conn-name
IP4.DNS[1]:192.168.1.1
IP4.DNS[2]:8.8.8.8
Dans Ubuntu 15.10, vous pouvez obtenir le DNS
nmcli device show <interface name>
Semble être géré par le gestionnaire de réseau. Jetez un oeil ici http://manpages.ubuntu.com/manpages/precise/man5/NetworkManager.conf.5.html
pour une grande explication.
Ou la version courte à regarder
/etc/NetworkManager/NetworkManager.conf
ou
<SYSCONFDIR>/NetworkManager/NetworkManager.conf