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)

Grzenio
la source

Réponses:

207

Vous devriez pouvoir obtenir des informations raisonnables dans:

$ cat /etc/resolv.conf 

la source
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
Lonniebiz
la source
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

Freiheit
la source
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
Sam
la source
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
G32RW
la source
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
Sameer
la source
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)
boly38
la source
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.

Tombolinux
la source
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
olibre
la source
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).

Maythux
la source
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.

CRTLBREAK
la source
peut-être aussi
Amos Folarin
0

Dans CentOS, vous pouvez utiliser:

/usr/sbin/named -v
Miloud Eloumri
la source
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.

Ohlemacher
la source