Wie stelle ich mein DNS ein, wenn resolv.conf überschrieben wird?

Die meisten Informationen, die ich online sehe, besagen, dass /etc/resolv.conf bearbeitet werden soll, aber alle Änderungen, die ich dort vornehme, werden einfach überschrieben .

$ 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.1.1 

Es scheint, dass 127.0.1.1 eine lokale Instanz von dnsmasq ist. In den Dokumenten dnsmasq wird angegeben, dass /etc/resolv.conf bearbeitet werden soll. Ich habe versucht, benutzerdefinierte Nameserver in /etc/resolv.conf.d/base einzufügen, aber die Änderungen wurden in /etc/resolv.conf nach dem Ausführen von sudo resolvconf -u.

Zu Ihrer Information, ich möchte DNS nicht pro Verbindung ändern, sondern Standard-DNS-Einstellungen festlegen, die für alle Verbindungen verwendet werden, sofern nicht anders angegeben.

UPDATE:

Ich habe diese Frage selbst beantwortet: https://unix.stackexchange.com/a/163506/67024

Ich denke, es ist die beste Lösung seit:

  1. Es funktioniert.
  2. Es erfordert die geringste Anzahl von Änderungen und
  3. Es funktioniert immer noch in Verbindung mit dem DNS-Cache von dnsmasq, anstatt ihn zu umgehen.

Kommentare

  • Beantworten Sie Ihre Frage besser, anstatt Ihre Frage zu aktualisieren. Ich denke, es wird einfacher sein, die richtige Antwort auf Ihr Problem zu finden
  • Es scheint, dass die meisten Antworten Ubuntu-orientiert und übermäßig kompliziert sind. Eine universelle Lösung für NetworkManager-Benutzer besteht darin, einfach dns=none in /etc/NetworkManager/NetworkManager.conf hinzuzufügen (siehe Details in meiner Antwort unten).
  • Ich denke, diese Antwort verdeutlicht, warum die resolve.conf überschrieben wird, dann wissen Sie, wie Sie sie konfigurieren.

Antwort

Wenn Sie den DNS-Nameserver überschreiben möchten, fügen Sie in Ihrer base Datei unter resolv.conf.d.

Beispiel

$ sudo vim /etc/resolvconf/resolv.conf.d/base 

Fügen Sie dann Ihre Nameserver-Liste in like ein Also:

nameserver 8.8.8.8 nameserver 8.8.4.4 

Aktualisieren Sie schließlich resolvconf:

$ sudo resolvconf -u 

Wenn Sie sich die Manpage für resolvconf ansehen, werden die verschiedenen Dateien unter /etc/resolvconf/resolv.conf.d/ beschrieben.

 /etc/resolvconf/resolv.conf.d/base File containing basic resolver information. The lines in this file are included in the resolver configuration file even when no interfaces are configured. /etc/resolvconf/resolv.conf.d/head File to be prepended to the dynamically generated resolver configuration file. Normally this is just a comment line. /etc/resolvconf/resolv.conf.d/tail File to be appended to the dynamically generated resolver configuration file. To append nothing, make this an empty file. This file is a good place to put a resolver options line if one is needed, e.g., options inet6 

Obwohl oben in der Datei head eine Warnung angezeigt wird:

Diese Warnung ist vorhanden, damit die Warnung beim Erstellen dieser Dateien letztendlich in die resultierende resolv.conf -Datei eingreift, die diese Dateien verwenden verwendet werden, um zu machen. Sie hätten also genauso gut die Zeilen nameserver, die oben für die Datei base beschrieben wurden, zur Datei Datei auch.

Referenzen

Kommentare

  • Ubuntu 14.04 – Als ich die Nameserver in base steckte und resolvconf -u ausführte, waren die Nameserver nicht in resolv.conf eingefügt – als ich die Nameserver in head einfügte, waren sie
  • Ubuntu 14.04 – mussten auch auskommentieren Konfigurationssatz in /run/resolvconf/interface/NetworkManager
  • Geben Sie nslookup google.com ein, und die erste IP in der Liste sollte Ihr neuer Nameserver sein, wenn nicht , du hast es falsch gemacht
  • Ubuntu 16.04: Funktioniert, wenn nur an /etc/resolvconf/resolv.conf.d/head angehängt wird, nicht mit base. Bestätigt mit nslookup google.com.
  • Zunächst muss resolvconf installiert sein. Sie können es installieren, indem Sie sudo apt-get install resolvconf ausführen.

Antwort

Diese Frage interessiert mich auch und ich habe die vorgeschlagene Lösung @sim ausprobiert.

Um sie zu testen, habe ich

nameserver 8.8.8.8 

in /etc/resolvconf/resolv.conf.d/base und

nameserver 8.8.4.4 

in /etc/resolvconf/resolv.conf.d/head

Dann habe ich das Netzwerk mit

sudo service network-manager restart 

neu gestartet. Das Ergebnis ist, dass /etc/resolv.conf wie

# 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 8.8.4.4 nameserver 127.0.1.1 

und nm-tool geben an, dass die dnsserver

DNS: 208.67.222.222 DNS: 208.67.220.220 

sind Welches sind die von meinem Router bereitgestellten. Auf der anderen Seite sagt das Graben einer Adresse, dass

;; Query time: 28 msec ;; SERVER: 8.8.4.4#53(8.8.4.4) 

Wenn ich Recht habe, schließe ich daraus, dass

  1. nur Der „head“ -Teil wird von resolvonf gelesen: Der „base“ -Teil wird irgendwie von dnsmasq gesteuert.
  2. Der dnsserver wird tatsächlich auf 8.8.4.4 gezwungen, unabhängig vom von dhcp bereitgestellten Server, ABER Sie verlieren das bereitgestellte Caching von dnsmasq, da die Anfrage immer an 8.8.4.4 gesendet wird
  3. dnsmasq verwendet immer noch NUR den von dhcp bereitgestellten dnsserver.

Alles in allem funktioniert es, aber ich Ich glaube nicht, dass es das gewünschte Ergebnis ist.Eine engere Lösung ist meiner Meinung nach die folgende. Bearbeiten Sie

sudo vim /etc/dhcp/dhclient.conf 

und fügen Sie dann

supersede domain-name-servers 8.8.8.8; 

hinzu. Das Ergebnis lautet wie folgt: resolv.conf enthält nur 127.0.0.1, was bedeutet, dass der dnsmasq-Cache aufgerufen wird und das nm-Tool

DNS: 8.8.8.8 

sagt, was bedeutet, dass sich der gesuchte Name nicht im Cache befindet , dann wird es um 8.8.8.8 und nicht auf dem von dhcp bereitgestellten Server abgefragt.

Eine andere (vielleicht bessere) Option ist die Verwendung von „voranstellen“ anstelle von „ersetzen“: auf diese Weise, wenn die Der Name wird von 8.8.8.8 nicht aufgelöst, dann fällt die Anforderung auf den anderen Server zurück. Tatsächlich sagt nm-tool

DNS: 8.8.8.8 DNS: 208.67.222.222 DNS: 208.67.220.220 

Kommentare

  • Eine viel bessere Antwort als das Hacken in die NS-Konfigurationen. Insbesondere die Option, einen Server vor den von DHCP bereitgestellten zu stellen. Scheint die perfekte Balance zu sein, um das Problem zu lösen, ohne neue zu erstellen!
  • ‚ Es ist erwähnenswert, dass das nm-Tool durch nmcli
  • ersetzt wurde

Antwort

Ich habe herausgefunden, dass Sie die von dnsmasq verwendeten Nameserver ändern können Durch Hinzufügen der folgenden Zeilen zu /etc/dnsmasq.conf:

server=8.8.8.8 server=8.8.4.4 

hatte ich keine /etc/dnsmasq.conf -Datei, da sie vom dnsmasq-Paket installiert wird, Ubuntu jedoch nur mit dnsmasq-base geliefert wird. Ich habe sudo apt-get install dnsmasq ausgeführt, dann /etc/dnsmasq.conf bearbeitet, dann sudo service dnsmasq restart und sudo service network-manager restart.

Ich habe sudo tail -n 200 /var/log/syslog ausgeführt, um mein Syslog zu überprüfen und sicherzustellen, dass dnsmasq das verwendet Nameserver, die ich angegeben habe:

Oct 21 23:00:54 mylaptop dnsmasq[8611]: using nameserver 8.8.8.8#53 Oct 21 23:00:54 mylaptop dnsmasq[8611]: using nameserver 8.8.4.4#53 

Kommentare

  • Es gibt einen Grund, warum dies als der beste markiert wird antworte … weil es tatsächlich so ist! vielen Dank! Ich würde hinzufügen, dass nach all den Schritten, die Sie erwähnt haben, möglicherweise ein Neustart des Netzwerks erforderlich ist, damit alles reibungslos funktioniert (für mich … sudo service network-manager restart)
  • uf Ubuntu 14.04 Server würde ein Kaltstart ungefähr die Hälfte der Zeit dazu führen, dass keine Internetverbindung über eine URL hergestellt wird, aber eine IP-Adresse funktioniert. Ich verbrachte viel Zeit erfolglos damit, es zu reparieren, gab monatelang auf und fand dann diese Lösung. Ich denke auch, dass dies die beste Antwort ist.

  • ‚ ist faszinierend, dass dnsmasq installiert werden muss. Dies hat zwar mein DNS in einer normalen Situation behoben, aber meine VPN-Konfiguration wurde vollständig beschädigt (VPN-Verbindung schlägt jetzt fehl …).
  • Auf Centos
  • Ubuntu 16 gibt es keine solche Datei: Änderungen gegenüber der Prozedur mit dnsmasq werden nicht in /etc/resolv.conf übertragen. Die Folge ist, dass nslookup immer noch seinen ursprünglich definierten localhost 127.0.0.1 verwendet. Obwohl ich Ihre erwähnten Syslogs bestätigen kann.

Antwort

Für statische IP-Situationen wird im Ubuntu Server-Handbuch Folgendes angegeben Ändern Sie die Datei / etc / network / interfaces, die folgendermaßen aussehen kann:

iface eth0 inet static address 192.168.3.3 netmask 255.255.255.0 gateway 192.168.3.1 dns-search example.com dns-nameservers 192.168.3.45 192.168.8.10 

Sie ändern die IPs 192.168.3.45 192.168.8.10 für die gewünschten , wie 8.8.8.8

https://help.ubuntu.com/14.04/serverguide/serverguide.pdf Page 38

Kommentare

  • Das sieht sicherlich richtig aus, aber wie regeneriere ich jetzt resolv.conf?!
  • @JoelBerger ifdown eth0; ifup eth0.
  • no / etc / network / interfaces auf Centos

Antwort

  1. Suche nach „Netzwerkverbindung“

  2. Öffnen Sie sie

    geben Sie hier die Bildbeschreibung ein

  3. Wählen Sie dann entweder WiFi oder Ethernet oder was auch immer Sie verwenden, und klicken Sie auf Bearbeiten. Sie erhalten Folgendes:

    Geben Sie hier die Bildbeschreibung ein.

  4. Wählen Sie ipv4 in den Registerkarten

  5. Wählen Sie Adressen nur in der Methode

  6. aus. Geben Sie unten Ihren DNS-Namen ein und speichern Sie ihn

  7. Sie sind fertig

Kommentare

  • I ‚ Ich müsste dies jedoch für jede Netzwerkverbindung tun. In der Vergangenheit konnten Sie die Standardeinstellung für alle Verbindungen ändern, was ich hier gesucht habe.
  • Ich liebe dich! Diese UI-Einstellung rettete meinen Arsch vor Sudo und Vim-Chaos: ‚ (
  • Verwenden von Mint (unter Ubuntu 14.04) – aber auch bei KDE – für einige Aus diesem Grund hat das Festlegen von DNS-Servern im GUI-Netzwerk-Manager ‚ keinen Einfluss auf die in einem Terminal verwendeten DNS-Einstellungen.
  • Beste Antwort imho. Unter Ubuntu 14.04 habe ich 2 externe IP-Adressen für DNS, die ‚ Clients in meinem Heimnetzwerk nicht erkennen würden. Methode auf ‚ Automatisch (DHCP) ‚ für die Kabelverbindung hat die IP-Adresse meines Routers ‚ zur vorhandenen Liste hinzugefügt.Für die drahtlose Verbindung über wlan0 funktionierte das ‚ nicht, aber die Methode für ‚ Automatische (DHCP) Adressen nur ‚ ersetzte die externen Adressen durch meine Router-IP und dann funktionierte das auch. Übernehmen Sie die Änderungen mit sudo service network-manager restart, warten Sie ein wenig und überprüfen Sie dies mit nmcli d list | grep 'DNS\|IP-IFACE'. Und pingen Sie Ihren internen Client mit seinem Namen an.
  • Dies ist die richtige Antwort.

Antwort

Eine schnelle und schmutzige Problemumgehung, die noch nicht erwähnt wurde, setzt das unveränderliche Flag für die Datei resolv.conf direkt nach der Bearbeitung.

$ sudo nano /etc/resolv.conf 

Fügen Sie dies hinzu und speichern Sie:

nameserver 8.8.8.8 

Dann:

$ sudo chattr +i /etc/resolv.conf 

Das sollte den Trick machen. Ich mache das auch auf meinem System.

Kommentare

  • Immer wenn Ihre Lösung Chattr beinhaltet, ist es ‚ ist keine wirkliche Lösung.
  • Dies ist das, was ich auf Systemen mache, auf denen ich aus irgendeinem Grund das DNS vorübergehend ändern und ‚ t möchte die Konfiguration nicht ändern. Als dauerhafte Lösung würde ich ‚ es nicht empfehlen.
  • “ Schnelle und schmutzige Problemumgehung “
  • Dies ist nicht ‚ nicht schmutzig. Programme Diese zerstören die lokale Konfiguration, weil sie glauben, dass sie besser wissen, dass sie schmutzig sind.

Antwort

Mein Problem war etwas anders Ich wollte die DNS-Server meines Routers überschreiben. Ich habe diesen Link von Ubuntu gefunden: https://wiki.ubuntu.com/OverrideDNSServers

Es heißt: Wenn Sie möchten Überschreiben Sie die von einem DHCP-Server bereitgestellten DNS-Einstellungen, öffnen Sie

/etc/dhcp3/dhclient.conf 

und fügen Sie die folgende Zeile hinzu:

supersede domain-name-servers <dns_ip_address1>,<dns_ip_address2>; 

Ersetzen von <dns_ip_address*> Elementen durch den richtigen Inhalt.

Kommentare

  • Dies ist die Antwort, die mein Problem gelöst hat.
  • Perfekt. Fügen Sie einfach hinzu, dass Sie das sudo service-Netzwerk neu starten sollten, um die Änderungen zu aktivieren.
  • Was ist, wenn wir ‚ nicht haben, dass dhcp3 Ordner? Ich habe Xubuntu 17.10, wurde es einfach in /etc/dhcp verschoben?
  • @PlasmaBinturong in meinem Fall war es /etc/dhcp/dhclient.conf aktiviert Neueste Debian- und Ubuntu-Versionen.

Antwort

Fügen Sie dns-nameservers XXX.XXX.XXX.X in Ihre /etc/networking/interfaces -Datei.

Kommentare

  • Hinterlassen Sie bitte einen Kommentar, wenn Sie abstimmen. Dies ist die im Handbuch , Seite 38, angegebene Methode.
  • Das nicht erwähnte Handbuch zeigt alle IPs in einer Zeile. Diese Antwort scheint darauf hinzudeuten, eine Zeile hinzuzufügen. Und warum ist die letzte Zahl nur ein X breit? Ich denke, es war hauptsächlich das äußerst informelle und unsichere kurze Schreiben im Chat-Stil, das die negativen Stimmen @Zook einbrachte.

Antwort

Vielleicht fehlt mir etwas, aber gemäß den Konfigurationsanweisungen unter https://help.ubuntu.com/14.04/serverguide/network-configuration.html ist alles, was Sie tun Aktualisieren Sie Folgendes: Ich verwende keinen Proxy – nur einen Computer hinter einer Firewall und lokalem DNS (Beispiel zeigt Googles, aber stellen Sie ihn auf das ein, was Sie benötigen).

nano /etc/network/interfaces 

Standard:

# This file... # and how to activate... # The loopback... auto local iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet dhcp 

AKTUALISIERT:

# This file... # and how to activate... # The loopback... auto local iface lo inet loopback # The primary network interface #iface eth0 inet dhcp iface eth0 inet static address x.x.x.x netmask 255.255.255.0 gateway x.x.x.x #nameservers # you may not need dns-search # I use it because I"m running this on a Windows network # so its useful to have # dns-search x.y dns-nameservers 4.4.4.4 8.8.8.8 

Starten Sie neu, wenn Sie können.

Antwort

Einige der Antworten hier funktionieren einwandfrei. Ich war jedoch nicht zufrieden mit der Tatsache, dass ich manuell durchgehen muss Konfigurationsdateien, nur um die „richtige“ DNS festzulegen, die ich alre ady empfängt über DHCP mit NetworkManager.

Ich habe ein wenig gegraben und festgestellt, dass die Datei /etc/resolv.conf tatsächlich ein Link ist und auf /run/systemd/resolve/stub-resolv.conf div zeigt Nach einigen Experimenten scheint das Verzeichnis /run/systemd/resolve/ eine andere Datei mit dem Namen resolv.conf zu enthalten, die bereits die Einstellungen enthält, die Sie über DHCP. Anstatt Konfigurationsdateien in /etc/ manuell überschreiben / erstellen zu müssen, können Sie /etc/resolv.conf einfach neu verknüpfen, um auf /run/systemd/resolve/resolv.conf Datei und alles sollte in Ordnung sein:

# sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf 

Sie sollten jetzt in der Lage sein, die Einstellungen auch über das Netzwerk zu bearbeiten Manager in Gnome. 🙂

Ich bin mir nicht sicher, ob dies unter älteren Ubuntus funktioniert, aber unter Ubuntu 17.10.

Kommentare

  • Wenn wir systemd-resolve --flush-cache ausführen, wird die ursprünglich verknüpfte Datei anscheinend getrennt, die obige Antwort wird wiederhergestellt die ursprüngliche Funktionalität

Antwort

BEARBEITEN 6. MAI, 2016

Ich habe ein Skript geschrieben, um alle Einstellungen für Systemverbindungen im Verzeichnis /etc/Network-Manager/system-connections/ zu aktualisieren Die GUI, mit der Sie einzelne Verbindungen bearbeiten, bearbeitet eine bestimmte Datei in diesem Verzeichnis. Das Skript aktualisiert alle Dateien – es sucht nur nach denen, für die DNS nicht mit grep festgelegt wurde, und legt sie mit awk fest.

Da für den Zugriff auf diese Dateien sudo Zugriff erforderlich ist, führen Sie dieses Skript mit sudo aus und starten Sie den Netzwerkmanager

#!/bin/bash # Author: Serg Kolo # Date: May 6, 2015 # Description: this script checks all settings for connections in # /etc/NetworkManager/system-connections/ , and if there"s no custom # dns set , this script sets it; # NOTE: run sudo service network-manager restart after running this script set -x for file in /etc/NetworkManager/system-connections/* ; do grep "dns=208.67.220.220;" "$file" || ( awk "{print;if ($1=="[ipv4]"){getline; print "method=auto\ndns=208.67.220. 220;\nignore-auto-dns=true"}}" "$file" > .tmpfile && ( cat .tmpfile > "$file") ) done 

Skript in Aktion:

Geben Sie hier die Bildbeschreibung ein.

ORIGINAL POST Einige Benutzer hier wiesen darauf hin, dass DNS irgendwie von dnsmasq gesteuert wird. Das ist wahr. Ich hatte ein etwas kleineres Problem, bei dem ich head oder body in /etc/resolvconf/resolv.conf.d, mein Computer konnte nicht intern auf den Domänennamen zugreifen – nur mit IP-Adressen.

Ich habe die Datei /etc/NetworkManager/NetworkManager.conf bearbeitet. Ursprünglich stand dns=dnsmasq, aber ich habe es geändert in: dns=208.67.222.222. Obwohl auf diese Weise nm-tool 208.67.222.222 nicht erwähnt wird, konnte ich immer noch Domänennamen verwenden, nicht nur IP-Adressen.

So gehts Die Datei NetworkManager.conf sieht jetzt so aus:

[main] plugins=ifupdown,keyfile,ofono #dns=dnsmasq dns=208.67.222.222 [ifupdown] managed=false 

HINWEIS: Weitere Informationen zu meinem Problem und dieser Lösung finden Sie in meinem Beitrag unter askubuntu.com .

UPDATE # 1

Nachdem ich heute von der Universität nach Hause zurückgekehrt war, stellte ich fest, dass ich keine Verbindung zu meinem Heim-WLAN herstellen konnte. Ich habe ein wenig über und es stellt sich heraus, dass dns= in [main] tatsächlich eine Zeile für Plug-Ins ist, also Zeile dns=dnsmasq fügt anscheinend tatsächlich das dnsmasq-Plugin zum NetworkManager hinzu.

Meine Lösung funktionierte also immer noch, nur nicht so, wie ich es erwartet hatte. Hier ist ein Auszug aus der Manpage:

dns=plugin1,plugin2, ... List DNS plugin names separated by ",". 

DNS-Plugins werden verwendet, um lokale Caching-Nameserver-Funktionen bereitzustellen (wodurch DNS-Abfragen beschleunigt werden) und DNS-Daten an Anwendungen übertragen werden, die sie verwenden.

Setzen Sie also dns=208.67.222.222 Ich habe NetworkManager möglicherweise grundsätzlich daran gehindert, dieses Plugin zu verwenden, das andernfalls den lokalen DNS-Server verwenden würde (der anscheinend nicht funktioniert).

Antwort

Es gibt zwei Methoden

Methode 1

Der zu verwendende DNS-Server kann geändert werden, indem die Datei head unter resolv.conf.d

und führen Sie dann

$ sudo resolvconf -u 

aus. Das oben Gesagte generiert eine generische resolv.conf -Datei im Verzeichnis /etc. Alle Ihre Auflösungsanfragen werden an den oben genannten Nameserver gesendet. Gelöst.

Dies hat jedoch Auswirkungen. Wenn Sie mit resolvconf 1.1.1.1 direkt nach Adressauflösungen abfragen, ist die von dnsmasq bereitgestellte Caching-Leistung weg. Jede Anforderung wird an 1.1.1.1

Methode 2

gesendet. Wenn dies nicht der Fall sein soll und dnsmasq für DNS-Auflösungen verwendet wird, lesen Sie diese Antwort. Die Antwort wird hier einfach beschrieben.

Fügen Sie den folgenden Inhalt in die Datei /etc/dnsmasq.conf ein

server = 1.1.1.1

Starten Sie anschließend den dnsmasq-Dienst

$ sudo systemctl restart dnsmasq.service 

Die Dinge werden gut funktionieren. Gelöst.

Antwort

Der einfache Weg, DNS zu ändern:

$ sudo nano /etc/network/interfaces 

Wenn Probleme auftreten, installieren Sie nano:

$ sudo apt-get install nano -y 

dann ..

  1. finde dies: dns-nameservers
  2. Wenn Sie es nicht finden, geben Sie es einfach dort ein.
  3. Ich habe meins so gemacht: dns-nameservers 199.85.126.10 199.85.127.10

Ich hoffe, das ist der beste Weg, ich habe es übrigens auf einem VPS so gemacht.

Antwort

im Stammverzeichnis:

  1. Kommentar dns=dnsmasq am /etc/NetworkManager/NetworkManager.conf
  2. füge supersede domain-name-servers 4.2.2.1,4.2.2.3,4.2.2.5,4.2.2.4,4.2.2.1,4.2.2.2; am Ende von /etc/dhcp/dhclient.conf
  3. sudo service network-manager restart

Im Folgenden werden die oben gezeigten Änderungen vorgenommen:

$ sudo sed -i "s/dns\x3Ddnsmasq/\x23dns\x3Ddnsmasq/" \ /etc/NetworkManager/NetworkManager.conf $ echo "supersede domain-name-servers 4.2.2.1,4.2.2.3,4.2.2.5,4.2.2.4,4.2.2.1,4.2.2.2;" | \ sudo tee --append /etc/dhcp/dhclient.conf $ sudo service network-manager restart 

Warten Sie 7/10 Sekunden, um den Neustartvorgang abzuschließen. Überprüfen Sie Ihre Konfiguration mit“ nslookup nist.gov „. Funktioniert gut unter Ubuntu LTS 14.04.

Antwort

Hinweis: Wie bei den meisten Antworten wird bei diesem die Verwendung von NetworkManager vorausgesetzt . Im Gegensatz zu den meisten anderen Antworten wird jedoch nicht davon ausgegangen, dass resolvconf, dhclient oder irgendetwas anderes verwendet wird. obwohl (siehe Update).

Angesichts der Anzahl der Aufrufe dieser Frage ist es ziemlich unglaublich, dass diese 8 Zeichen Lösung wurde noch nicht veröffentlicht: Laut man NetworkManager.conf

dns: […] none: NetworkManager ändert die resolv.conf nicht. Dies impliziert, dass der RC-Manager nicht verwaltet wird.

Fügen Sie daher

dns=none 

im Abschnitt [main] von /etc/NetworkManager/NetworkManager.conf starten Sie NetworkManager neu und es wird /etc/resolv.conf mehr.

Beachten Sie, dass die Einstellung rc-manager=unmanaged dns=none entsprechen sollte und diese Einstellung rc-manager=symlink zusammen mit /etc/resolv.conf als Symb olic link ist möglicherweise eine bessere Idee (siehe oben genannte Manpage).

Update:

Nachdem NetworkManager aufgehört hat, /etc/resolv.conf zu überschreiben, dachte ich mir dhcpcd ersetzte /etc/resolv.conf bereits beim Booten durch eine nutzlose leere Datei. Die Manpage von dhcpcd.conf hat geholfen. Es reicht aus,

nohook resolv.conf 

in Ihre dhcpcd.conf (meins ist in /etc/dhcpcd.conf).

Antwort

Das „s, weil eine bestimmte installierte Anwendung diese Datei verwaltet. Sie können diese Anwendung entweder deinstallieren oder Ihre gewünschten Optionen direkt über diese Anwendung festlegen.

In meinem Fall (Linux Centos7 Minimal Server) mit der gleichen Situation, die ich hatte # Generated by NetworkManager oben in der Datei resolv.conf, sodass ich diese Option am besten ändern konnte, indem ich

nmtui

Befehl. Sie können Nameserver in diesem Tool bearbeiten. Wenn Sie die Optionen von networkmanager in diesem Dienstprogramm ändern, werden sie nach dem Neustart automatisch auf /etc/resolv.conf angewendet. Hier finden Sie weitere Informationen .

Antwort

Nichts bei alles im Internet er Ich habe es getan, weil das CLI-Dienstprogramm von NordVPN jedes Mal, wenn ich eine Verbindung zum VPN herstellte und die Verbindung zum VPN aufgab, /etc/resolv.conf überschrieb. Es hat sogar chattr +i überschrieben, was super nervig war !!

Was für mich funktioniert hat, war die Auflösung von resolvconf !

Bearbeiten Sie /etc/resolvconf.conf und machen Sie dies zum einzigen Eintrag:

resolv_conf=NO 

Dadurch wird , dh Ihre /etc/resolv.conf wird dadurch niemals geändert. Dann fahren Sie fort und sudo chattr +i /etc/resolv.conf für ein gutes Maß.

Getestet unter Arch Linux.

Antwort

Unter Centos 7 besteht die sauberste, beständigste und funktionierendste Lösung, die ich finden konnte, darin, ein NetworkManager-Skript zu erstellen, das nmcli verwendet, um die gewünschten Werte festzulegen.

zB

Erstellen Sie /etc/NetworkManager/dispatcher.d/mydns.sh mit den Berechtigungen 755 und den folgenden Inhalten:

#!/usr/bin/sh if [ $1 == "enp0s11" -a $2 == "up" ] then echo "Setting my DNS ($1 is $2)" | logger # disable default DNS nmcli device mod enp0s11 ipv4.ignore-auto-dns yes # Substitute our own DNS, in the desired order nmcli device mod enp0s11 ipv4.dns "10.0.1.101 10.0.1.1" fi 

Und zum Testen ohne Neustart:

systemctl restart NetworkManager.service cat /etc/resolv.conf 

YMMV, aber dies ist der einzige Weg, den ich gefunden habe, der es meiner /etc/resolv.conf erlaubt „Überleben“ Sie einen Neustart, ohne mit Werten überschrieben zu werden, die ich nicht möchte.

Schreibe einen Kommentar

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