Quels serveurs DNS est-ce que j'utilise?


249

Comment puis-je vérifier quel serveur DNS est utilisé (sous Linux)? J'utilise un gestionnaire de réseau et une connexion filaire au réseau local de mon université. (J'essaie de savoir pourquoi mon domaine n'est pas résolu)

Réponses:


207

Vous devriez pouvoir obtenir des informations raisonnables dans:

$ cat /etc/resolv.conf 

26
Cependant, veuillez noter que (sous Linux moderne), le contenu de /etc/nsswitch.confdicte quels services de noms sont utilisés (DNS, LDAP, etc.) et dans quel ordre. Dis fgrep hosts: /etc/nsswitch.conf. S'il fait uniquement référence à DNS, /etc/resolv.confest-il le bon endroit pour rechercher vos serveurs de noms? Mais il est également probable que vous utilisiez mDNS (alias ZeroConf, alias Avahi, alias Bonjour, etc.), etc. Dans ce cas, tout dépend de ce que vous utilisez.
Alexios

27
Ce fichier pointe généralement vers 127.0.1.1 sur Ubuntu - il s’agit du serveur de cache DNS local, et non du serveur amont.
Barry Kelly

2
@BarryKelly Vérifiez ce que votre routeur utilise, puis
Geremia

2
Et si vous avez plusieurs serveurs en amont configurés? Comment savoir lequel est actuellement utilisé?
Sylvain Leroux

4
Voir les réponses de @ G32RW ou @Lonniebiz pour une approche plus robuste dans diverses circonstances, par exemple, lorsque vous obtenez une réponse comme celle-ci127.0.0.53
nealmcb

194

Voici comment je le fais:

nmcli dev show | grep DNS

Cela a fonctionné avant la manière ci-dessus:

nm-tool | grep DNS

14
Celui-ci est utile si vous utilisez VPN et NetworkManager . Votre /etc/resolv.confvolonté pointe sur votre machine, avec dnsmasqles noms de résolution tels que configurés par NetworkManager .
Grzegorz

6
Sur Debian, cela nécessite le network-managerpaquet.
TranslucentCloud

2
nm-tool n'est pas disponible dans les nouveaux linux. par exemple, il ne fait pas partie du paquet 'network-manager' de debian 8.
don bright

2
J'ai mis à jour la réponse pour refléter ce qui fonctionne pour moi en 2016.
Lonniebiz

3
c'est la meilleure réponse, resolvez.conf ne montre pas toujours la vérité
Blade

72

Je pense que vous pouvez également interroger DNS et il vous indiquera quel serveur a renvoyé le résultat. Essaye ça:

dig yourserver.somedomain.xyz

Et la réponse devrait vous dire quel (s) serveur (s) ont renvoyé le résultat. La sortie qui vous intéresse ressemblera à ceci:

;; Query time: 91 msec
;; SERVER: 172.xxx.xxx.xxx#53(172.xxx.xxx.xxx)
;; WHEN: Tue Apr 02 09:03:41 EDT 2019
;; MSG SIZE  rcvd: 207

Vous pouvez également digdemander à interroger un serveur DNS spécifique en utilisantdig @server_ip


8
Sur Debian, cela nécessite le dnsutilspaquet.
Faheem Mitha

6
Si vous utilisez un service de masquage / mise en cache DNS exécuté sur votre ordinateur local, les serveurs DNS réels seront masqués.
karatedog

4
Ubuntu 18.04 montre simplement le cache DNS local:SERVER: 127.0.0.53#53(127.0.0.53)
wisbucky

58

Faites juste un nslookup. Une partie de ses résultats inclut le serveur qu’il utilise.

Dans l'exemple ci-dessous, il est indiqué que le serveur DNS utilisé est 8.8.8.8.

$ nslookup google.com
Server:     8.8.8.8
Address:    8.8.8.8#53

Non-authoritative answer:
Name:   google.com
Address: 172.217.22.174

1
pouvez-vous donner un exemple de ce qu'il faut entrer dans l'invite?
Chovy

Exemple: $ nslookup www.google.com
Ren

7
Sur Debian, cela nécessite le dnsutilspaquet.
Gayan Weerakutti

6
Sur un Ubuntu récent, cela pointe à nouveau vers le serveur de cache local 127.0.0.1 comme déjà indiqué dans ce commentaire
FriendFX

Dans CentOS 7, il se ferme avec une erreur, mais comme il s’agit d’une machine virtuelle, je l’ai fait nslookup google.comdans l’hôte Windows et j’ai trouvé le serveur de noms. Ajoutez-le /etc/resolv.confcomme: nameserver xx.xx.xx.xxet redémarrez le service network, et tout va bien. Te louerai.
WesternGun

55

Sur les systèmes exécutant systemd, utilisez:

systemd-resolve --status

3
systemd-resolution: option non reconnue '--status'
Acumenus

Système @ABB? version de systemd?
G32RW

229-4ubuntu21.2
Acumenus

11
C’est le nouveau moyen par défaut de le faire dans Ubuntu 18.04 Bionic Beaver - s’y habituer, tout le monde!
AveryFreeman

5
C’est la seule solution qui a fonctionné pour moi, puisque les autres sont revenus 127.0.0.53
heure locale

13

Avec la nouvelle network-managercommande nmcli, procédez comme suit:

nmcli --fields ipv4.dns,ipv6.dns con show <connection_name>

Sur les nouvelles versions de network-manager (comme dans Ubuntu 16.04), les noms de champs sont légèrement différents:

nmcli --fields ip4.dns,ip6.dns con show <connection_name>

Si vous ne connaissez pas le nom de la connexion, utilisez:

nmcli -t --fields NAME con show --active

Par exemple:

$ nmcli --fields ip4.dns,ip6.dns con show 'Wired connection 1'
IP4.DNS[1]:                             172.21.0.13
IP4.DNS[2]:                             172.21.0.4

Mes résultats: order «con» «show» is not valid.
Sopalajo de Arrierez

Cela fonctionne bien pour moi avec network-manager 1.0.4 sur Ubuntu 15.10. Peut-être que vous avez une version plus ancienne?
Sameer

Le format des tableaux est assez mauvais. J'espère obtenir un format semblable à celui de Powershell.
CMCDragonkai

1
RetoursError: invalid field 'ip4.dns'; allowed fields: NAME,UUID,TYPE,TIMESTAMP,TIMESTAMP-REAL,AUTOCONNECT,AUTOCONNECT-PRIORITY,READONLY,DBUS-PATH,ACTIVE,DEVICE,STATE,ACTIVE-PATH.
FriendFX

nmcliC'était simplement tout ce dont j'avais besoin sur Ubuntu 19.04
John Mee Le

9

pour obtenir le premier serveur DNS (IP uniquement):

cat /etc/resolv.conf |grep -i '^nameserver'|head -n1|cut -d ' ' -f2
  • cat affichera la configuration DNS
  • grep filtre uniquement le serveur de noms
  • head gardera seulement la première ligne / instance
  • cut prendre la partie ip de la ligne (deuxième colonne avec '' comme séparateur)

Pour mettre l'IP du DNS dans une variable d'environnement, vous pouvez utiliser comme suit:

export THEDNSSERVER=$(cat /etc/resolv.conf |grep -i '^nameserver'|head -n1|cut -d ' ' -f2)

2
grep -m 1arrête l'appariement après le premier match pour ne pas avoir à l'utiliserhead
sshow

Pour alléger le pipeline encore plus, des groupes de capture avec Perl regexp est très propre, et grep prend un argument de fichier: grep -Pom 1 '^nameserver \K\S+' /etc/resolv.conf. Je viens d'écrire des groupes de capture avec l'expression régulière de grep perl
sshow

8

Si vous utilisez le gestionnaire de réseau, vous obtenez probablement tous les paramètres du réseau de votre serveur DHCP de votre université.

Si vous ne voulez pas utiliser votre shell pour vérifier vos paramètres DNS (comme décrit par hesse et Alexios), vous pouvez les voir à partir du panneau "Informations réseau".

Vous pouvez accéder à ce panneau en appuyant sur le bouton droit de la souris sur l'icône du gestionnaire de réseau et en sélectionnant "Informations de connexion" dans le menu.


5

En utilisant resolvectl

$ resolvectl status | grep -1 'DNS Server'
    DNSSEC supported: no
  Current DNS Server: 1.1.1.1
         DNS Servers: 1.1.1.1
                      1.0.0.1

Pour la compatibilité, systemd-resolveest un lien symbolique vers de resolvectlnombreuses distributions comme pour Ubuntu 18.10:

$ type -a systemd-resolve
systemd-resolve is /usr/bin/systemd-resolve

$ ll /usr/bin/systemd-resolve
lrwxrwxrwx 1 root root 10 nov.  15 21:42 /usr/bin/systemd-resolve -> resolvectl

$ type -a resolvectl
resolvectl is /usr/bin/resolvectl

$ file /usr/bin/resolvectl
/usr/bin/resolvectl: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=09e488e849e3b988dd2ac93b024bbba18bb71814, stripped

fonctionne parfaitement sur Ubuntu 18.10.
Georgе Stoyanov

3

La commande

 nmcli dev list iface <interfacename> | grep IP4

Remplacez "interfacename" par le vôtre.

examiner

 nmcli dev list iface eth0 | grep IP4

Cela listera tous les serveurs DNS (si vous en utilisez plusieurs).


nmcli dev list iface [devicename]est la commande correcte
sebix

Je n'ai pas remarqué que <interface> est caché depuis que j'utilise <>
Maythux

1
Sur debian, j'obtiens une erreur --- $ nmcli dev list iface eth0 Erreur: 'dev' command 'list' n'est pas valide.
Don lumineux

nmcli est une commande spécifique à RH.
Rui F Ribeiro

C'est la bonne réponse!
VAdaihiep

3

J'ai Fedora 25 et j'ai également eu une réponse lente similaire en ligne de commande aux commandes sudo.

nmcli dev show | grep DNS 

a montré que seul un de mes 3 adaptateurs (deux actifs) avait des entrées DNS. En ajoutant des entrées DNS à la seule carte active qui n'a pas eu d'entrée - presto! Tout est bon et le temps de réponse est immédiat.


peut-être aussi
Amos Folarin


0

Une fois que vous pensez que vous avez trouvé votre dns, vous pouvez interroger directement avec dig: dig @<dns ip> <host to lookup>. Si cela fonctionne, vous devriez le voir ensuite SERVERavec un statut de NOERROR.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.