DNS auf systemd 127.0.0.53 gesetzt - wie dauerhaft ändern?


37

Ich habe kürzlich ein Upgrade auf 17.10 durchgeführt. Wenn ich versuche, zu einer Website zu navigieren oder eine Domain zu pingen, schlägt die Meldung fehl, dass die Site nicht aufgelöst werden kann.

network-adminzeigt den inhalt von /etc/resolv.confzu seinnameserver: 127.0.0.53

Wenn ich das auf 8.8.8.8 oder 208.67.222.222 ändere, dann funktioniert alles. Bis ich neu starte.

Beim Neustart oder Wiederaufnehmen wird der Nameserver auf 127.0.0.53 zurückgesetzt.

Wie stelle ich den Nameserver dauerhaft auf etwas ein, das funktioniert?


Für System-Fans, wenn ich laufe, systemd-resolve --statusbekomme ich

Link 3 (wlo1)
      Current Scopes: LLMNR/IPv4 LLMNR/IPv6
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no

Wenn ich den Ratschlägen bei dieser Frage folge, wird DNS nach dem Neustart weiterhin zurückgesetzt. Ubuntu 17.10 - DNS kann immer noch nicht aufgelöst werden.


systemctl stop systemd-resolvedund systemctl mask systemd-resolvedsollte den Trick tun :)
Shayan

Antworten:


28

Sie können ein Paket resolvconf installieren, das die Art und Weise ändert, wie /etc/resolv.confes beim Systemstart erstellt wird.

sudo apt install resolvconf

Sie können dann eine Datei erstellen oder ändern /etc/resolvconf/resolv.conf.d/tail. Wenn Sie in diese Datei eine Zeile einfügen nameserver 8.8.8.8, wird diese Zeile am Ende des /run/resolvconf/resolv.confBootvorgangs hinzugefügt . /etc/resolv.confwird nun ein symbolischer Link zu dieser Datei sein.


4
Das funktioniert - danke! Wissen Sie, ob es eine Möglichkeit gibt, 127.0.0.53 für sich zum Laufen zu bringen?
Terence Eden

1
Ich bin ziemlich neu in dieser Angelegenheit. Ich habe gerade versucht, DNS-Probleme beim Ein- und Ausschalten von VPN in den letzten Wochen zu beseitigen. Du könntest es versuchen sudo dpkg-reconfigure resolvconf. Ich habe das in letzter Zeit versucht, die Schwanzdatei gelöscht, und auf den ersten Blick scheint das zu funktionieren.
oscar1919

@TerenceEden, wenn Sie 127.0.0.53 für sich arbeiten lassen möchten (wie es sollte), sehen Sie sich meine Antwort an: askubuntu.com/a/1083843/281191
intelfx

9

Die richtige Lösung wäre, systemisch aufgelöste Probleme zu beheben, anstatt zu versuchen, Migräne mit einer Guillotine zu heilen.

Es ist wirklich ein schönes Werkzeug, wenn es richtig verwendet wird.

Gemessen an Ihrer systemd-resolve --statusLeistung ...

Link 3 (wlo1)
      Current Scopes: LLMNR/IPv4 LLMNR/IPv6
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no

... Ihr Netzwerkmanager-Tool die DNS-Konfiguration für die einzelnen Schnittstellen nicht an das vom System aufgelöste System weitergibt.

Neuere Versionen von NetworkManager tun dies beispielsweise automatisch, wenn /etc/resolv.confein Symlink nach innen /run/systemd/resolveoder nach außen zeigt /usr/lib/systemd/resolv.conf. Alternativ versuchen neuere Versionen von systemd-resolved, mit der historischen Schnittstelle resolvconf kompatibel zu sein, indem sie eine resolvconfBinärdatei installieren , die mit systemd-resolved kommuniziert .

Wenn Sie auf der Suche nach einer schnellen und fehlerhaften Lösung sind, können Sie systemd-resolved so konfigurieren, dass Ihre DNS-Server global verwendet werden.

$ cat /etc/systemd/resolved.conf
<...>
[Resolve]
DNS=8.8.8.8 8.8.4.4
<...>

Dann neu starten systemd-resolved.serviceoder neu starten .


Zumindest für mich funktioniert diese Antwort nicht, mit Ubuntu 18.04, nach Änderung des "DNS" -Eintrags wird der 127.0.0.53
André M. Faria

1
@ AndréM.Faria erfahren, wie gelöst funktioniert. 127.0.0.53ist die Adresse des lokalen Caching-Stub-Resolvers. DNS-Anforderungen werden an die von Ihnen angegebenen Upstream-DNS-Server weitergeleitet.
Intelfx

Manchmal weißt du etwas und ignorierst es einfach, ja du hast recht.
André M. Faria

1
Hier ist auch zu beachten, dass systemd-resolvedDNS-Antworten standardmäßig zwischengespeichert werden. Obwohl dies manchmal nützlich sein kann, kann es in einigen Situationen zu Problemen kommen. Kommentieren Sie die cache=yesZeile in der Konfigurationsdatei in der Antwort aus und setzen Sie sie auf no.
Quentin Skousen

was bewirkt eigentlich /etc/resolve.conf(oder wirklich, /run/resolvconf/resolv.confworauf der erstere hinweist) ein update? wäre zu Testzwecken gut zu wissen, ohne dass ein mutmaßlicher Neustart erforderlich wäre. alles was ich sagen kann ist, dass ein Neustart systemd-resolved.servicenicht den Trick zu tun schien
bbarker

8

systemdFügen Sie einem Link / Gerät einen DNS hinzu, wenn Sie innerhalb des Paradigmas arbeiten

Mit Ubuntu 17.10+ eine *.networkDatei hinzufügen :

sudo nano /lib/systemd/network/100-somecustom.network:

100-somecustom.network (100 kann aus Gründen der Priorität eine beliebige Zahl sein und erfordert die .networkDateierweiterung):

[Match]
Name=wlo1 # the device name here

[Network] # add multiple DNS 
DNS=8.8.8.8
DNS=208.67.222.222

Starten Sie dann neu:

sudo service systemd-networkd restart

Schauen Sie auch in:

netplan apply

Dann überprüfe:

systemd-resolve --status wlo1

Von Infoseite info systemd.network:

Zusätzlich zu /etc/systemd/network, Drop-in ".d" Verzeichnisse lassen sich in / lib / systemd / Netzwerk oder / run / systemd / Netzwerk platziert Verzeichnisse. Drop-In-Dateien in / etc haben Vorrang vor denen in / run, die wiederum Vorrang vor denen in / lib haben. Drop-In-Dateien in einem dieser Verzeichnisse haben Vorrang vor der Hauptdatei netdev, wo immer sie sich befinden. (Da / run nur vorübergehend ist und / usr / lib für Anbieter bestimmt ist, ist es unwahrscheinlich, dass an diesen Stellen Drop-Ins verwendet werden.)

Ein anderer Ansatz zum Deaktivieren der DNSStubListenerfür die Verwendung mit dnsmasq:

sudo nano /etc/systemd/resolved.conf:

#
DNSStubListener=false

verbunden:


Seltsamerweise haben Sie angegeben, dass der DNSStubListener = false ist, aber die tatsächlich kommentierte Konfiguration ist DNSStubListener = yes, normalerweise ist die Umkehrung des "yes" -Werts "no" und nicht "false", wer im Falle von "false" normalerweise "false" war. wahr".
André M. Faria

Ihre Antwort auf die Erstellung einer Datei mit der Erweiterung .network hat nicht funktioniert.
André M. Faria

7

Ich benutze Lubuntu & Kubuntu 18.04. Ich konnte das DNS-Problem in zwei Schritten lösen:

Erster Schritt: Installieren Sie es unboundund stellen Sie es so ein, dass es ersetzt wird, systemd-resolvedwie es Grégoire C hier zeigt .

sudo systemctl disable systemd-resolved
sudo systemctl stop systemd-resolved
sudo systemctl enable unbound-resolvconf
sudo systemctl enable unbound

neustarten

Öffnen Sie als root die Datei /etc/NetworkManager/NetworkManager.conf

( sudo leafpad /etc/NetworkManager/NetworkManager.confin Lubuntu 18.04 oder in Kubuntu 18.04 SUDO_EDITOR=kate sudoedit /etc/NetworkManager/NetworkManager.conf)

und unten [main]diese Zeile setzen:

dns=unbound

neu starten

Zweiter Schritt: Wenn das Problem nach dem Neustart immer noch nicht behoben ist, wie es in meinem Fall der Fall war, starten Sie den Dateimanager als root, gehen Sie zu /etc, löschen Sie ihn resolv.confund erstellen Sie einen neuenresolv.conf . Lassen Sie es leer und starten Sie das Betriebssystem neu. In meinem Fall ist das Problem nach diesem Neustart verschwunden.

In Kubuntu 18.04 können Sie Dolphin nicht als root starten. Sie können also zuerst /etcdas Terminal aufrufen und von dort aus öffnen, dann eingeben sudo suund die Eingabetaste drücken , um es als root zu verwenden, und dann resolv.confmit dem Befehl löschen rm resolv.conf. Dann können Sie eine neue leere Datei auf Ihrem Desktop erstellen, benennen resolv.confund von dort aus ein Terminal öffnen. Verwenden Sie den sudo suBefehl, um den Stammmodus für das Terminal aufzurufen, und kopieren Sie das neue mit dem Befehl resolv.confvon Ihrem Desktop nach ./etccp resolv.conf /etc

Ich muss hinzufügen, dass ich nicht versucht habe, den zweiten Schritt vor der Installation auszuführen unbound, also werde ich dies beim nächsten Mal tun, nur um zu sehen, ob es ausreicht oder nicht.


Warum nicht einfach als root bearbeiten und den Inhalt löschen?
Ballie

@Ballie Ich habe das zuerst versucht, aber es hat nicht geholfen. Auch das Original resolv.confvon /etcwurde als eine Art Abkürzung gezeigt, was meiner Meinung nach nicht normal ist. Aus diesem Grund habe ich beschlossen, es zu löschen und neu zu erstellen, indem ich eine neue leere Datei erstellte und sie benannte resolv.conf. Und es hat funktioniert. Aus diesem Grund habe ich oben geschrieben, dass ich versuchen werde, das nächste Mal, wenn ich das Betriebssystem neu installieren muss, dies zuerst zu tun, ohne den "ersten Schritt" zu machen - um zu sehen, ob es ausreichen würde. Aber das Original resolv.confin /etcBedürfnissen sowieso entfernt und neu erstellt werden - darüber bin ich sicher.
Калоян Грънчаров

Ich habe gerade systemd-resolved.service deaktiviert und den Link von resolv.conf entfernt und einen manuell erstellt, und es hat funktioniert!
André M. Faria

2

So ändere ich meinen DNS-Eintrag in der Schnittstellenkonfiguration.

$ vi /etc/netplan/50-cloud-init.yaml

Ändern Sie die Adressen des Nameservers, vorher war es .4, dann habe ich es in .3 geändert:

...
            nameservers:
                addresses:
                - 192.168.1.3
...

Speichern Sie die Konfiguration und wenden Sie sie an:

$ sudo netplan apply

Starten Sie danach den resolvectl-Dienst neu.

$ sudo systemctl restart systemd-resolved.service

Hinweise: Ich habe den Server neu gestartet und die vorgenommenen Änderungen noch intakt. Ich benutze resolvctl dnsBefehl, um den DNS-Datensatz zu überprüfen.


Das ist eigentlich die richtige Antwort. Ich bin überrascht, dass es nicht das akzeptierte ist.
Toumal

0

Wir hatten einige Probleme mit NordVPN und haben uns daher entschlossen, diese zu ergänzen.

Ergebnisse:
NordVPN legt die /run/systemd/resolve/resolv.confDNS-Einstellungen für die Verbindung fest.
NordVPN entfernt alle DNS-Einstellungen /run/systemd/resolve/resolv.confbeim Trennen der Verbindung.
Dies führt dazu, dass der DNS-Server nicht mehr funktioniert (da kein einziger Satz vorhanden ist).

Das System muss neu gestartet werden, um die Einstellungen wiederherzustellen. Ein Standard-Neustart des Dienstes ( sudo systemctl restart systemd-resolved.service) funktioniert nicht.

Die Lösung, um dies zu umgehen:

sudo apt install resolvconf

Gehen Sie zu /etc/resolvconf/resolv.conf.d/

cd /etc/resolvconf/resolv.conf.d/
sudo nano tail

Fügen Sie Nameserver hinzu

nameserver 1.1.1.1
nameserver 1.0.0.1

Überprüfen Sie die folgenden Stellen für Nameserver, die festgelegt worden sein könnten:

/run/resolvconf/interface/original.resolvconf
/run/resolvconf/interface/systemd-resolved
/etc/resolvconf/resolv.conf.d/tail
/etc/resolvconf/resolv.conf.d/head
/etc/systemd/resolved.conf
/run/systemd/resolve/resolv.conf
/run/systemd/resolve/stub-resolv.conf

Testen Sie, mit welchen DNS-Servern gearbeitet wird:

nslookup google.com

Server:         1.1.1.1
Address:        1.1.1.1#53

0

Vielleicht ein bisschen spät, aber ich bin auf dieses Problem gestoßen. Ich muss zugeben, dass ich meine Netzwerkeinstellungen zuvor manuell über cli und nicht über den eingebauten Netzwerkmanager konfiguriert habe. Ich laufe Ubuntu 18.04.

Nachdem ich also systemd.resolved.service deaktiviert und dann wieder aktiviert hatte, wurde dieses unregelmäßige Verhalten des zufälligen Verlusts meiner DNS-Konfiguration für mich behoben.

systemctl disable systemd.resolved.service
reboot

nach dem Neustart:

systemctl enable systemd.resolved.service
reboot

Ich bin ein relativ frischer Linux-Benutzer, also muss es jemanden geben, der erklären kann, wie und warum dies für mich funktioniert hätte, aber es schien erwähnenswert, ob es anderen helfen kann.


Sry enttäuscht, aber es muss etwas geben, das Sie zwischenzeitlich getan haben, um das Problem zu beheben. Die Operationen, die Sie hier vorschlagen, können das System nur so lassen, wie es war.
Tishma

-1

Bei Verwendung von DHCP funktioniert die Namensauflösung in Ubuntu wie erwartet. Die Probleme beginnen, wenn Sie statisch werden möchten. cat /etc/resolv.confzeigt an, dass Ihre DNS 127.0.0.53 ist und nicht die, die Sie in der /etc/netplan/.yamlDatei haben. Um dies zu beheben, müssen Sie den /etc/resolve.confLink entfernen und einen neuen erstellen, auf den verwiesen wird/run/resolve/resolve.conf


Bitte bearbeiten Sie Ihre Antwort und
korrigieren Sie

-2

Dies erforderte ein wenig Herumspielen. Nachdem ich die Einstellung aktualisiert habe, habe ich neu gestartet. Verwenden:

ln -s /run/resolvconf/resolv.conf /etc/resolv.conf

/etc/systemd/resolved.conf
DNS=8.8.8.8
Cache=no

System resolved failed
systemctl stop systemd-resolved
systemctl disable systemd-resolved

Beim Auskommentieren der "Anfrage" für

# domain-name, domain-name-servers, domain-search, host-name,

Fügen Sie diese Zeile zu Ihrem hinzu /etc/dhcp/dhclient.conf:

 supersede domain-name "cwillenterprise.com";

Konfigurationsdatei bearbeiten und Eintrag hinzufügen. Zusätzliches wird nicht ersetzt.

Einträge hinzufügen zu /etc/resolvconf/resolv.conf.d/tail

nameserver 8.8.8.8
search "cwillenterprise.com"

Führen Sie aus, um die Änderungen zu implementieren

resolvconf -u

1
Willkommen bei Ask Ubuntu ! Bitte bearbeiten Sie Ihre Antwort auf die Verwendung Code - Formatierung für den Code, der in Dateien oder Terminal eingegeben werden sollen. Stellen Sie #dem Code keine „Kommentare“ voran - dies bedeutet Überschrift in Markdown. Bitte überprüfen Sie immer die Vorschau Ihres Beitrags, bevor Sie ihn senden.
Melebius
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.