Befehlszeile zum Auflisten der von meinem System verwendeten DNS-Server

207

Gibt es einen Befehl zum Auflisten der DNS-Server, die von meinem System verwendet werden?

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, werden im Abschnitt "Wireless" DNS 192.168.1.1 8.8.8.8 8.8.4.4 "

" aufgeführt

Kann ich dieselben Informationen über die Befehlszeile erhalten?

Ich verwende Ubuntu 12.04 LTS

    
Anurag Uniyal 18.06.2012, 16:36
quelle

8 Antworten

205

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

Ubuntu > = 15

nmcli device show <interfacename> | grep IP4.DNS

Ubuntu < = 14

nmcli dev list iface <interfacename> | grep IP4

In meinem Fall ist <interfacename> eth0 , was üblich ist, aber nicht immer der Fall ist.

Prüfen Sie, ob Sie dies wünschen.

BEARBEITEN:

Ich denke, dass resolv.conf tatsächlich indirekt verwendet wird, da der Netzwerkmanager den Server erstellt, der auf 127.0.0.1 wartet, aber mir wurde gesagt, dass dies ein Implementierungsdetail ist, auf das nicht zu rechnen ist. Ich denke, wenn Sie vor diesem Eintrag DNS-Adressen eingeben, können sie sich daran gewöhnen, aber ich weiß nicht genau, wie das genau funktioniert. Ich denke, es ist am besten, wenn möglich den Netzwerkmanager zu verwenden.

    
Marty Fried 18.06.2012, 17:20
quelle
82

Dies gilt für Ubuntu 13.10 und frühere Versionen. Für Ubuntu 14.04 und höher siehe Antwort von Koala Yeung auf: Wie kann ich wissen, was DNS in Ubuntu ab 14.04 verwendet?

Verwenden Sie

nm-tool

Sie erhalten eine Ausgabe ähnlich wie

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 die DNS zu sehen

nm-tool | grep DNS
    
tgm4883 18.06.2012 17:22
quelle
34

Die beiden Antworten mit der höchsten Punktzahl, nmcli dev list iface <interfacename> | grep IP4 und nm-tool , setzen beide voraus, dass der Netzwerkmanager die Kontrolle hat. Welches ist es - zumindest auf Desktop-Maschinen meistens. Die umfassendere Antwort lautet jedoch, dass der Netzwerkmanager manchmal nicht die Kontrolle hat. Z.B. vpnc macht direkt mit /etc/resolv.conf aus.

Also: Prüfen Sie zunächst, ob 127.0.0.1/localhost verwendet wird. Dies könnte mit dig :

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

Jetzt wissen Sie, dass wir 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 die Ausgabe von nm-tool und nmcli 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 ist dig korrekt und die Informationen von nm-tool irreführend. In der Realität werden Adressen, die sich lokal auf die Umgebung beziehen, in die ich VPN-ed erstellt habe, korrekt aufgelöst. Alles, worüber Google's DNS 8.8.8.8 nichts weiß. weiß nicht.

Dies liegt daran, dass nach dem Herstellen einer Verbindung zu einem VPN mit vpnc eine Zeile in /etc/resolv.conf eingefügt wird, sodass es so 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
    
Peter V. Mørch 28.05.2015 21:19
quelle
30

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

Sie können resolv.conf nicht direkt mit Ubuntu 12.04 ändern. Wenn Sie sie jedoch ändern müssen, können Sie Ihrem DNS-Server neue DNS-Server hinzufügen /etc/network/interfaces -Datei, indem Sie Folgendes hinzufügen:

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

Dabei steht x für die DNS-Server, die Sie verwenden möchten.

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

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

    
ssc 03.05.2013 17:27
quelle
10

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
    
iman 19.08.2015 12:03
quelle
4

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

verwenden     
PLA 27.09.2018 21:29
quelle
2

In Ubuntu 15.10 können Sie DNS erhalten

nmcli device show <interface name> 
    
Suleman 02.03.2016 19:09
quelle
0

Scheint vom Netzwerkmanager verwaltet zu werden. Schauen Sie hier link

für eine ausführliche Erklärung.

Oder die Kurzversion, in der Sie nachsehen

 /etc/NetworkManager/NetworkManager.conf

oder

 <SYSCONFDIR>/NetworkManager/NetworkManager.conf
    
mbs 18.06.2012 16:46
quelle

Tags und Links