Wie kann ich überprüfen, welchen DNS-Server ich verwende (unter Linux)? Ich verwende einen Netzwerkmanager und eine Kabelverbindung zum LAN meiner Universität. (Ich versuche herauszufinden, warum meine Domain nicht aufgelöst wird.)

Antwort

Sie sollten in der Lage sein, einige vernünftige Informationen zu erhalten in:

$ cat /etc/resolv.conf 

Kommentare

  • Bitte beachten Sie jedoch, dass (unter modernen Linuxen) der Inhalt von /etc/nsswitch.conf vorschreibt, welche Namensdienste (DNS, LDAP usw.) in welcher Reihenfolge verwendet werden. Sagen Sie fgrep hosts: /etc/nsswitch.conf. Wenn nur auf DNS verwiesen wird, ist /etc/resolv.conf der richtige Ort, um nach Ihren Nameservern zu suchen. Aber wahrscheinlich verwenden Sie ‚ auch mDNS (auch bekannt als ZeroConf, auch bekannt als Avahi, auch bekannt als Bonjour usw.) usw. In diesem Fall hängen die Dinge davon ab, was Sie ‚ wird verwendet.
  • Diese Datei zeigt normalerweise auf 127.0.1.1 unter Ubuntu – ‚ ist der lokale DNS-Cache-Server, nicht der tatsächliche Upstream.
  • @BarryKelly Überprüfen Sie, was Ihr Router verwendet, dann
  • Und wenn Sie mehrere Upstream-Server konfiguriert haben? Woher wissen Sie, welches derzeit verwendet wird?
  • In den Antworten von @ G32RW oder @Lonniebiz finden Sie einen robusteren Ansatz unter verschiedenen Umständen, z. wenn Sie eine Antwort wie 127.0.0.53

Antwort

hier erhalten „So mache ich das:

( nmcli dev list || nmcli dev show ) 2>/dev/null | grep DNS 

Diese hat zuvor wie oben beschrieben funktioniert:

nm-tool | grep DNS 

Unter Debian benötigen Sie das Netzwerkmanager-Paket installiert.

Kommentare

  • Dieser ist nützlich, wenn Sie VPN und verwenden NetworkManager . Ihre /etc/resolv.conf zeigt auf Ihren Computer, wobei dnsmasq Namen auflöst, wie von NetworkManager .
  • Unter Debian ist hierfür das Paket network-manager erforderlich.
  • nm-tool ist in neueren Linux-Versionen nicht verfügbar. Dies ist beispielsweise nicht der Fall im ‚ Netzwerkmanager ‚ Paket von Debian 8.
  • I ‚ Wir haben die Antwort aktualisiert, um zu reflektieren, was arbeitet 2016 für mich.
  • Dies ist die beste Antwort. Resolution.conf zeigt nicht immer die Wahrheit

Antwort

Auf Systemen, auf denen systemd ausgeführt wird, verwenden Sie:

systemd-resolve --status 

Kommentare

  • Systemd-Auflösung: Nicht erkannte Option ‚ –status ‚
  • Sagt Failed to get global data: Unit dbus-org.freedesktop.resolve1.service not found.
  • Dies ist die neue Standardmethode in Ubuntu 18.04 Bionic Beaver – gewöhne dich daran, alle!
  • Dies ist die einzige Lösung, die für mich funktioniert hat, da die anderen 127.0.0.53 zurückgegeben haben
  • Was lese ich? Ich sehe nur DNSSEC-Einträge.

Antwort

Ich denke, Sie können auch DNS abfragen und es wird Ihnen zeigen, was Server gab das Ergebnis zurück. Versuchen Sie Folgendes:

dig yourserver.somedomain.xyz 

In der Antwort sollte angegeben werden, welche Server das Ergebnis zurückgegeben haben. Die Ausgabe, an der Sie interessiert sind, sieht ungefähr so aus:

;; 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 

Sie können auch dig anweisen, eine Abfrage durchzuführen Ein bestimmter DNS-Server unter Verwendung von dig @server_ip

Kommentare

  • Für Debian ist hierfür die dnsutils -Paket.
  • Wenn Sie einen DNS-Maskierungs- / Caching-Dienst verwenden, der auf Ihrem lokalen Computer ausgeführt wird, werden die echten DNS-Server ausgeblendet.
  • Ubuntu 18.04 zeigt nur den lokalen DNS-Cache: SERVER: 127.0.0.53#53(127.0.0.53)

Antwort

Führen Sie einfach eine nslookup aus. Zu den Ergebnissen gehört der Server, den es verwendet. P. >

Im folgenden Beispiel wird gezeigt, dass der verwendete DNS-Server 8.8.8.8 ist.

$ 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 

Kommentare

  • Können Sie ein Beispiel geben, was in die Eingabeaufforderung eingegeben werden soll?
  • Beispiel: $ nslookup www.google.com
  • Unter Debian ist das Paket dnsutils erforderlich.
  • Auf einem aktuellen Ubuntu verweist dies erneut auf den lokalen Cache-Server 127.0.0.1, wie bereits in dieses Kommentars
  • in CentOS angedeutet 7 Es wird mit einem Fehler beendet, aber es ist eine VM, also habe ich nslookup google.com auf dem Windows-Host ausgeführt und den Nameserver gefunden. Fügen Sie es in /etc/resolv.conf wie folgt hinzu: nameserver xx.xx.xx.xx und starten Sie den Dienst network neu, und alles ist in Ordnung. Segne dich.

Antwort

Mit dem neuen Befehl network-manager nmcli, gehen Sie folgendermaßen vor:

nmcli --fields ipv4.dns,ipv6.dns con show [connection_name] 

In neueren Versionen von Network-Manager (wie in Ubuntu 16.04) werden die Feldnamen angegeben unterscheiden sich geringfügig:

nmcli --fields ip4.dns,ip6.dns con show [connection_name] 

Wenn Sie den Verbindungsnamen nicht kennen, verwenden Sie:

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

Zum Beispiel bei alten Versionen von 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 

Kommentare

  • Meine Ergebnisse : order «con» «show» is not valid.
  • Es funktioniert gut mit Network-Manager 1.0.4 unter Ubuntu 15.10. Vielleicht haben Sie eine ältere Version?
  • Das Tabellenformat ist ziemlich schlecht. Ich hoffe, ein spaltenähnliches Format zu erhalten, das Powershell ähnelt.
  • Gibt Error: invalid field 'ip4.dns'; allowed fields: NAME,UUID,TYPE,TIMESTAMP,TIMESTAMP-REAL,AUTOCONNECT,AUTOCONNECT-PRIORITY,READONLY,DBUS-PATH,ACTIVE,DEVICE,STATE,ACTIVE-PATH.
  • einfach nmcli war alles, was ich unter Ubuntu 19.04 brauchte

Antwort

, um zu erhalten der erste DNS-Server (nur IP):

  • cat gibt nur DNS-Konfigurationsfilter
  • grep aus Der Nameserver
  • head behält nur die erste Zeile / Instanz
  • cut die IP Teil der Zeile (zweite Spalte mit „“ als Trennzeichen)

Um DNS-IP in eine Umgebungsvariable einzufügen, können Sie Folgendes verwenden:

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

Kommentare

  • grep -m 1 beendet den Abgleich nach dem ersten Abgleich, sodass Sie muss nicht head
  • verwenden. Um die Pipeline noch einfacher zu machen, ist das Erfassen von Gruppen mit Perl-Regexp sehr ordentlich, und grep nimmt eine Datei Argument: grep -Pom 1 '^nameserver \K\S+' /etc/resolv.conf. Gerade geschrieben Erfassen Sie Gruppen mit dem regulären Ausdruck grep perl
  • Es gibt ‚ sowohl IPv4 als auch IPv6-DNS-Server. Auch sekundäre Server existieren aus einem bestimmten Grund. Welches gibt dieser Befehl zurück? Wird empfohlen, den ersten zu nehmen und die anderen einfach zu ignorieren?

Antwort

Wenn Sie verwenden Netzwerkmanager Sie erhalten wahrscheinlich alle Netzwerkparameter von Ihrem DHCP-Server an Ihrer Universität.

Wenn Sie Ihre DNS-Einstellungen nicht mit Ihrer Shell überprüfen möchten (wie von Hessen und Alexios beschrieben), können Sie sie sehen über das Feld „Netzwerkinformationen“.

Sie können dieses Feld erreichen, indem Sie mit der rechten Maustaste auf das Netzwerkmanagersymbol klicken und im Menü „Verbindungsinformationen“ auswählen.

Antwort

Verwenden von 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 

Aus Kompatibilitätsgründen ist systemd-resolve eine symbolische Verknüpfung zu resolvectl in vielen Distributionen als für 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 

Kommentare

  • funktioniert perfekt unter Ubuntu 18.10.

Antwort

Ich habe Fed ora 25 und reagierte in der Befehlszeile ähnlich langsam auf sudo-Befehle.

nmcli dev show | grep DNS 

zeigte, dass nur einer meiner 3 Adapter (zwei aktive) DNS-Einträge hatte. Durch Hinzufügen von DNS-Einträgen zu einer aktiven Karte, die keinen Eintrag hatte – presto! Alles ist gut und die Antwortzeit ist sofort.

Kommentare

  • vielleicht alternativ

Antwort

In Ubuntu> = 15

nmcli device show <interfacename> | grep IP4.DNS 

Ersetzen Sie <interfacename> durch Ihre.

In Ubuntu < = 14

Der Befehl

 nmcli dev list iface <interfacename> | grep IP4 

Ersetzen Sie <interfacename> durch Ihren.

Beispiele

 nmcli device show eth0 | grep IP4.DNS 

oder

 nmcli dev list iface eth0 | grep IP4 

Hiermit werden alle DNS-Server aufgelistet (wenn Sie mehr als verwenden one).

Kommentare

  • nmcli dev list iface [devicename] ist der richtige Befehl
  • I. Port ‚ nicht bemerkt < Schnittstelle > ist ausgeblendet, da ich >
  • Auf debian erhalte ich einen Fehler — $ nmcli dev li st iface eth0 Fehler: ‚ dev ‚ Befehl ‚ list ‚ ist ungültig.
  • nmcli ist ein RH-spezifischer Befehl.
  • Dies ist die richtige Antwort!

Antwort

Bei einem aktuellen Fedora 33 können Sie einfach

# resolvectl dns Global: Link 2 (enp0s31f6): Link 3 (wlp4s0): 1.1.1.1 8.8.8.8 Link 4 (virbr0): Link 5 (virbr0-nic): 

verwenden, um zu überprüfen, ob systemd-resolved ist aktiv. Führen Sie cat /etc/resolv.conf aus. Hier erfahren Sie, wer die Datei steuert.

Wenn Sie weitere Informationen wünschen, Sie können resolvectl status resolvectl statistics verwenden. Sie können auch Caches leeren …

Zur Fehlerbehebung können Sie journalctl -u systemd-resolved -f -o cat | grep Looking verwenden, nachdem Sie die Stufe auf DEBUG gesetzt haben: sudo resolvectl log-level debug

Antwort

In CentOS können Sie Folgendes verwenden:

/usr/sbin/named -v 

Antwort

Auf Systemen, auf denen systemd-resolved NICHT installiert ist:

 $ host -v something.unknown | awk -F "[ #]" "/Received /{print$5}" | uniq 192.168.1.1  

Auf Systemen, auf denen NetworkManager ausgeführt wird:

$ ( 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 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.