Befehlszeile zum Auflisten der von meinem System verwendeten DNS-Server


254

Gibt es einen Befehl zum Auflisten der von meinem System verwendeten DNS-Server?

Ich habe es versucht

$ 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

Es werden jedoch keine Server aufgelistet, wenn ich zu "Network Manager GUI Tool" gehe. Im Abschnitt "Wireless" wird "DNS 192.168.1.1 8.8.8.8 8.8.4.4" aufgeführt.

Kann ich die gleichen Informationen von der Kommandozeile erhalten?

Ich benutze Ubuntu 12.04 LTS


Was versuchst du zu finden? Welche DNS-Server werden von Ihrem System verwendet? Oder versuchen Sie eine DNS-Suche?
Thomas Ward

Der frühere @LordofTime
ish

@ LordofTime DNS-Server, die von meinem System verwendet werden
Anurag Uniyal

Sie verwenden 127.0.0.1. Betreiben Sie einen DNS-Server?
Skaperen

Siehe unix.stackexchange.com/q/28941/38647 für eine nicht-Ubuntu - Version dieser Frage
mwfearnley

Antworten:


250

resolv.conf wird nicht mehr verwendet, es sei denn, Sie implementieren es selbst. Der Netzwerkmanager macht es jetzt. Ich habe einen Alias ​​erstellt, um die DNS-Server auf meinem System aufzulisten, da ich manchmal von OpenDNS zu Googles offenem DNS wechsle.

Ubuntu> = 15

nmcli device show <interfacename> | grep IP4.DNS

Ubuntu <= 14

nmcli dev list iface <interfacename> | grep IP4

In meinem Fall <interfacename>ist eth0das zwar üblich, aber nicht immer der Fall.

Sehen Sie, ob Sie das wollen.

BEARBEITEN:

Ich denke, resolv.conf wird tatsächlich indirekt verwendet, weil der Netzwerkmanager den Server erstellt, der auf 127.0.0.1 lauscht, aber mir wurde gesagt, dass dies ein Implementierungsdetail ist, auf das man nicht zählen sollte. Ich denke, wenn Sie DNS-Adressen vor diesem Eintrag eingeben, werden sie möglicherweise verwendet, aber ich bin nicht sicher, wie genau dies funktioniert. Ich denke, es ist am besten, den Netzwerkmanager in den meisten Fällen zu verwenden, wenn dies möglich ist.


2
danke, ja, das scheint zu funktionieren, Ubuntu-Netzwerke scheinen verwirrend zu sein, also kann ich DNS-Server in resolve.conf / base oder in / etc / network / interfaces oder in network manager einstellen. Gibt es eine definitive Anleitung für Ubuntu-Netzwerke?
Anurag Uniyal

Wenn Sie die GUI verwenden, können Sie sie am besten festlegen, indem Sie Profile im Dialogfeld "Netzwerkverbindungen" erstellen. Ich habe das Standardprofil dupliziert und dann das Duplikat bearbeitet, um die gewünschten Änderungen vorzunehmen. Dabei habe ich das Standardprofil beibehalten, um sicherzustellen, dass ich immer ein funktionierendes Profil hatte. Dann ist es einfach, das Profil zu wechseln. Ich weiß nicht, wie ich das ohne die GUI machen soll, aber es gibt einen Benutzer "James Henstridge", der sehr gut mit Ubuntus Netzwerkkenntnissen vertraut ist. Sie könnten versuchen, askubuntu nach seinen Informationen zu durchsuchen. Er erzählte mir von dem Befehl, den ich Ihnen in diesem Beitrag gab .
Marty Fried

1
stgraber.org/2012/02/24/dns-in-ubuntu-12-04 ist ein netter Artikel über die DNS-Auflösung in Ubuntu 12.04
Anurag Uniyal

6
Ich verwende 15.04 und 'nmcli dev show | grep DNS' funktioniert stattdessen für mich.
Flickerfly

1
@ vcardillo: Die ursprüngliche Frage lautete: "Ich verwende Ubuntu 12.04 LTS". Es ist 5 Jahre her, seit ich meine Antwort gepostet habe. Nichts hält ewig.
Marty Fried

85

Dies gilt für Ubuntu 13.10 und früher. Informationen zu Ubuntu 14.04 und höher finden Sie in der Antwort von Koala Yeung auf: Woher weiß ich, welchen DNS ich in Ubuntu ab 14.04 verwende?


Verwenden

nm-tool

Sie erhalten eine Ausgabe ähnlich der

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

Oder um nur das DNS zu sehen

nm-tool | grep DNS

1
wollte nur addieren, gehen zu nm-applet's Verbindungsinformationsmenü wird auch funktionieren :)
Samik

1
+1 das funktioniert auch, ebenso wie nm-cli, wie von @Marty Fried
Anurag Uniyal am

2
funktioniert auch auf lubuntu 14.04 sehr gut. Danke
Jamescampbell

2
nm-tool wurde am 15.10.
Labyrinth

1
ja das funktioniert nicht mehr ... nein auch nm-toolin 16.x. nmcli(in Marty Frieds Antwort) ist der Weg zu gehen
Lambart

46

Die beiden Antworten mit der höchsten Punktzahl nmcli dev list iface <interfacename> | grep IP4und nm-toolbeide gehen davon aus, dass der Netzwerkmanager die Kontrolle hat. Was es ist - zumindest die meiste Zeit auf Desktop-Computern. Die umfassendere Antwort lautet jedoch, dass der Netzwerkmanager manchmal nicht die Kontrolle hat. ZB vpnclegt sich /etc/resolv.confdirekt an.

Also: Überprüfen Sie zuerst, ob 127.0.0.1/localhost verwendet wird. Dies könnte gemacht werden mit dig:

> dig something.unknown  | grep SERVER:
;; SERVER: 127.0.0.1#53(127.0.0.1)

Jetzt wissen Sie , dass wir sind localhost verwenden. Fahren Sie mit einer der beliebtesten Antworten fort. Ich mag:

> nm-tool | grep DNS:
    DNS:             8.8.8.8

Wenn jedoch 127.0.0.1/localhost nicht verwendet wird, ist nm-tooldie nmcliAusgabe von und irreführend:

> dig something.unknown  | grep SERVER:
;; SERVER: 172.22.216.251#53(172.22.216.251)
> nm-tool | grep DNS:
    DNS:             8.8.8.8

Hier digstimmt, und nm-tooldie Angaben sind irreführend. In der Realität werden lokale Adressen für die Umgebung, in die ich VPN-Verbindungen hergestellt habe, korrekt aufgelöst. Alles, wovon Googles DNS 8.8.8.8 nichts weiß.

Dies liegt daran, dass nach dem Herstellen einer Verbindung mit einem VPN vpnceine Zeile /etc/resolv.confeingefügt wird, die wie folgt aussieht:

# 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

3
Dies ist die vollständigste Antwort
Marinos An

Danke. Einige von uns hier draußen verwenden kein NM und das ist gut für die Community.
Stephen Boston

Zur Vervollständigung kann das digDienstprogramm einfach mit installiert werden apt install dnsutils.
Daniele Brugnara

32

cat /etc/resolv.conf sollte Ihre DNS-Server anzeigen.

Du darfst das nicht resolv.confdirekt mit Ubuntu 12.04 ändern . Wenn Sie sie jedoch ändern müssen, können Sie Ihrer /etc/network/interfacesDatei neue DNS-Server hinzufügen, indem Sie Folgendes hinzufügen:

 dns-nameservers x.x.x.x x.x.x.x

Wo xsind die DNS-Server, die Sie verwenden möchten?

Wenn ich du wäre, würde ich deinstallieren network-manager. Meiner Meinung nach ist es ein Haufen Mist.

Sie können alles manuell erledigen, ohne sich Gedanken über das Ändern Ihrer Einstellungen machen zu müssen, insbesondere wenn Sie mehrere Netzwerkkarten auf dem Computer haben.


2
Muss ich nm nach der DNS-Änderung neu starten?
Bhargav Nanekalva

1
--Vielen Dank. Das ist toll. Es funktioniert auch ohne dieses Netzwerkmanager-Geschäft.
Adam

msgstr "cat /etc/resolv.conf sollte Ihre DNS - Server anzeigen". Das tut es nicht.
Marinos An

25

In Ubuntu 18.04 können Sie verwenden systemd-resolve --status


NB, wenn Sie cat /etc/resolv.conf es sagt sogar dies
Rqomey

11

nmcli version 0.9.10

Sie können einen dieser Befehle verwenden:

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


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.