Comment puis-je vérifier quel serveur DNS jutilise (sous Linux)? Jutilise le gestionnaire de réseau et une connexion filaire au réseau local de mon université. (Jessaie de savoir pourquoi mon domaine ne se résout pas)
Réponse
Vous devriez pouvoir obtenir des informations raisonnables dans:
$ cat /etc/resolv.conf
Commentaires
- Cependant, sachez que (sous Linux moderne) le contenu de
/etc/nsswitch.conf
détermine les services de noms utilisés (DNS, LDAP, etc.) et dans quel ordre. Ditesfgrep hosts: /etc/nsswitch.conf
. Sil ne fait référence quà DNS,/etc/resolv.conf
est le bon endroit pour rechercher vos serveurs de noms. Mais il est probable que vous ‘ utilisez également mDNS (alias ZeroConf, alias Avahi, alias Bonjour, etc.), etc. Dans ce cas, les choses dépendent de ce que vous ‘ utilisez. - Ce fichier pointe généralement vers 127.0.1.1 sur Ubuntu – il ‘ est le serveur de cache DNS local, pas le serveur de cache DNS réel en amont.
- @BarryKelly Vérifiez ce que votre routeur utilise, puis
- Et si vous avez plusieurs serveurs en amont configurés? Comment savoir lequel est actuellement utilisé?
- Voir les réponses de @ G32RW ou @Lonniebiz pour une approche plus robuste dans diverses circonstances, par ex. lorsque vous obtenez une réponse comme
127.0.0.53
Réponse
Ici « Comment je fais:
( nmcli dev list || nmcli dev show ) 2>/dev/null | grep DNS
Ce a fonctionné de la précédente à la manière ci-dessus:
nm-tool | grep DNS
Sur Debian, vous devez avoir le package network-manager installé.
Commentaires
Réponse
Sur les systèmes exécutant systemd, utilisez:
systemd-resolve --status
Commentaires
- systemd-resolution: option non reconnue ‘ –status ‘
- Dit
Failed to get global data: Unit dbus-org.freedesktop.resolve1.service not found.
- Cest la nouvelle façon par défaut de le faire dans Ubuntu 18.04 Bionic Beaver – habituez-vous-y, tout le monde!
- Cest le seul solution qui a fonctionné pour moi, car les autres ont renvoyé 127.0.0.53
- Que suis-je en train de lire? Je ne vois que les enregistrements DNSSEC.
Réponse
Je pense que vous pouvez également interroger DNS et cela vous montrera ce que le serveur a renvoyé le résultat. Essayez ceci:
dig yourserver.somedomain.xyz
Et la réponse devrait vous dire quel (s) serveur (s) a renvoyé le résultat. Le résultat 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 dire à dig
dinterroger un serveur DNS spécifique en utilisant dig @server_ip
Commentaires
- Sur Debian, cela nécessite le
dnsutils
package. - Si vous utilisez un service de masquage / mise en cache DNS exécuté sur votre machine locale, il masquera les vrais serveurs DNS.
- Ubuntu 18.04 montre simplement le cache DNS local:
SERVER: 127.0.0.53#53(127.0.0.53)
Answer
Faites simplement une, nslookup
. Une partie de ses résultats inclut le serveur quil utilise.
Dans lexemple ci-dessous, cela montre que le serveur DNS utilisé est en 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
Commentaires
- pouvez-vous donner un exemple de ce quil faut entrer dans linvite?
- Exemple:
$ nslookup www.google.com
- Sur Debian, cela nécessite le paquet
dnsutils
. - 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
- Dans CentOS 7 il se ferme avec une erreur, mais cest un vm donc jai fait
nslookup google.com
dans lhôte Windows et jai trouvé le serveur de noms. Ajoutez-le dans/etc/resolv.conf
comme:nameserver xx.xx.xx.xx
et redémarrez le servicenetwork
, et tout va bien. Te louerai.
Réponse
Avec la nouvelle commande network-manager
nmcli
, procédez comme suit:
nmcli --fields ipv4.dns,ipv6.dns con show [connection_name]
Sur les versions plus récentes 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, sur les anciennes versions de nmcli:
$ 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
Commentaires
- Mes résultats :
order «con» «show» is not valid
. - Cela fonctionne très bien pour moi avec network-manager 1.0.4 sur Ubuntu 15.10. Peut-être avez-vous une version plus ancienne?
- Le format tabulaire est assez mauvais. Jespère obtenir une colonne comme format similaire à Powershell.
- Renvoie
Error: invalid field 'ip4.dns'; allowed fields: NAME,UUID,TYPE,TIMESTAMP,TIMESTAMP-REAL,AUTOCONNECT,AUTOCONNECT-PRIORITY,READONLY,DBUS-PATH,ACTIVE,DEVICE,STATE,ACTIVE-PATH.
- simplement
nmcli
était tout ce dont javais besoin sur ubuntu 19.04
Réponse
pour obtenir le premier SERVEUR DNS (IP uniquement):
-
cat
affichera la configuration DNS -
grep
filtres uniquement nameserver -
head
ne conservera que la première ligne / instance -
cut
prend ladresse IP partie de la ligne (deuxième colonne avec « » comme séparateur)
Pour mettre DNS ip dans une variable denvironnement, vous pouvez utiliser comme suit:
export THEDNSSERVER=$(cat /etc/resolv.conf |grep -i "^nameserver"|head -n1|cut -d " " -f2)
Commentaires
-
grep -m 1
ne correspond plus après la première correspondance, vous ne ‘ t avoir à utiliserhead
- Pour alléger encore plus le pipeline, capturer des groupes avec Perl regexp est très soigné, et grep prend un fichier argument:
grep -Pom 1 '^nameserver \K\S+' /etc/resolv.conf
. Je viens de rédiger Capturer des groupes avec lexpression régulière grep perl - Il y a ‘ IPv4 et Serveurs DNS IPv6. En outre, les serveurs secondaires existent pour une raison. Lequel cette commande renvoie? Est-il conseillé de prendre le premier et dignorer les autres?
Answer
Si vous utilisez gestionnaire de réseau, vous obtenez probablement tous les paramètres 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 depuis le panneau « Informations sur le réseau ».
Vous pouvez accéder à ce panneau en appuyant sur le bouton droit de la souris sur licône du gestionnaire de réseau et en sélectionnant « Informations de connexion » dans le menu.
Réponse
Utilisation de 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 des raisons de compatibilité, systemd-resolve
est un lien symbolique vers resolvectl
sur de nombreuses 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
Commentaires
- fonctionne parfaitement sur Ubuntu 18.10.
Réponse
Jai Fed ora 25 et avait également une réponse lente similaire sur la 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’avait pas d’entrée – hop! Tout va bien et le temps de réponse est immédiat.
Commentaires
- peut-être alternativement
Réponse
Dans Ubuntu> = 15
nmcli device show <interfacename> | grep IP4.DNS
Remplacez <interfacename>
par le vôtre.
Dans Ubuntu < = 14
La commande
nmcli dev list iface <interfacename> | grep IP4
Remplacez <interfacename>
par la vôtre.
Exemples
nmcli device show eth0 | grep IP4.DNS
Ou
nmcli dev list iface eth0 | grep IP4
Cela listera tous les serveurs DNS (si vous utilisez plus de one).
Commentaires
-
nmcli dev list iface [devicename]
est la bonne commande - I ‘ t remarqué < linterface > est masquée car jutilise < >
- Sur debian, jobtiens une erreur — $ nmcli dev li st iface eth0 Erreur: ‘ dev ‘ command ‘ list ‘ nest pas valide.
- nmcli est une commande spécifique à RH.
- Cest la bonne réponse!
Réponse
Sur un Fedora 33 récent, vous pouvez simplement utiliser
# resolvectl dns Global: Link 2 (enp0s31f6): Link 3 (wlp4s0): 1.1.1.1 8.8.8.8 Link 4 (virbr0): Link 5 (virbr0-nic):
Pour vérifier si systemd-resolved
est actif, faites cat /etc/resolv.conf
Cela vous dira qui contrôle le fichier.
Si vous voulez plus de détails, vous pouvez utiliser resolvectl status
resolvectl statistics
, vous pouvez également vider les caches …
Pour résoudre le problème, vous pouvez utiliser journalctl -u systemd-resolved -f -o cat | grep Looking
après avoir défini le niveau sur DEBUG: sudo resolvectl log-level debug
Réponse
Dans CentOS, vous pouvez utiliser:
/usr/sbin/named -v
Réponse
Sur les systèmes où systemd-resolved
nest PAS installé:
$ host -v something.unknown | awk -F "[ #]" "/Received /{print$5}" | uniq 192.168.1.1
Sur les systèmes sur lesquels NetworkManager
sexécute:
$ ( nmcli -f IP4.DNS,IP6.DNS dev list || nmcli -f IP4.DNS,IP6.DNS dev show ) 2>/dev/null | awk "/DNS/{print$NF}" 192.168.1.1
/etc/resolv.conf
pointera vers votre ordinateur, avecdnsmasq
résolvant les noms comme configuré par NetworkManager .network-manager
.