web-dev-qa-db-fra.com

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

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

241
Anurag Uniyal

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.

237
Marty Fried

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
84
tgm4883

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.8non 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
42
Peter V. Mørch

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

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.

31
ssc

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

21
PLA

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
11
iman

Dans Ubuntu 15.10, vous pouvez obtenir le DNS

nmcli device show <interface name> 
2
Suleman Hasib

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
0
mbs