352 votes

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

Existe-t-il une commande permettant de lister 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 liste aucun serveur, si je vais dans "Network Manager GUI Tool", dans la section Wireless, il liste "DNS 192.168.1.1 8.8.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.

323voto

RHaguiuda Points 757

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 lister les serveurs DNS sur mon système, car je passe parfois d'OpenDNS au DNS ouvert de Google.

Ubuntu >= 15

nmcli device show <interfacename> | grep IP4.DNS

Ubuntu <= 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.

EDIT :

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.

141voto

Wilson Points 411

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

88voto

Binarytales Points 171

Ceci est valable pour Ubuntu 13.10 et antérieures. Pour Ubuntu 14.04 et plus, voir La réponse de Koala Yeung à : Comment savoir quel DNS j'utilise dans Ubuntu à partir de 14.04 ?


Utilisez

nm-tool

Vous obtiendrez un résultat 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 pour voir seulement le DNS faire

nm-tool | grep DNS

70voto

Peter V. Mørch Points 4081

Les deux réponses les mieux notées, nmcli dev list iface <interfacename> | grep IP4 y nm-tool Les deux supposent que le gestionnaire du réseau est aux commandes. Ce qu'il fait - sur les ordinateurs de bureau, la plupart du temps. Mais la réponse plus complète est que parfois le gestionnaire de réseau n'a pas le contrôle. Par exemple vpnc s'occupe de /etc/resolv.conf directement.

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

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

Vous savez maintenant que nous sont en utilisant localhost. Allez-y avec l'une des réponses populaires. J'aime bien :

> nm-tool | grep DNS:
    DNS:             8.8.8.8

Mais si 127.0.0.1/localhost est pas utilisé, alors nm-tool et nmcli 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 correcte et nm-tool Les informations de l'entreprise sont trompeuses. En réalité, les adresses locales de l'environnement dans lequel je me suis connecté par VPN sont résolues correctement. Tout ce que le DNS de Google 8.8.8.8 n'a pas connaître.

C'est parce qu'après s'être connecté à un VPN avec vpnc il met une ligne dans /etc/resolv.conf donc ça ressemble à ça :

# 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

37voto

ssc Points 379

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

Vous ne pouvez pas modifier le resolv.conf directement avec Ubuntu 12.04. Si vous avez besoin de 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

donde x est le serveur DNS que vous souhaitez utiliser.

Si j'étais vous, je désinstallerais network-manager . A 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.

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