Es hängt davon ab, ob. Bitte bis zum Ende lesen.
Wenn Sie das Paket resolvconf nicht installiert haben, ist es einfach:Nachdem Sie es nach Ihren Wünschen geändert haben, geben Sie den Befehl
ein sudo chattr +i /etc/resolv.conf
Der Befehl ändert die Dateiattribute und macht sie zu immutable
(die Option +i).
Wenn Sie jedoch das Paket resolvconf installiert haben, kann die Datei /etc/resolv.conf in einen symbolischen Link
umgewandelt werden # file /etc/resolv.conf
/etc/resolv.conf: symbolic link to `../run/resolvconf/resolv.conf'
Dies ist eine Datei in einem virtuellen Dateisystem, der Inbegriff einer nicht permanenten Version. Das Lustige ist, dass Sie möglicherweise nicht wissen, dass Sie resolvconf installiert haben, da neuere Versionen von Debian-ähnlichen Betriebssystemen mit vorinstalliert geliefert werden. Sie können feststellen, ob Ihre Distribution es für Sie installiert hat, indem Sie den folgenden Befehl ausführen:
#whereis resolvconf
resolvconf: /sbin/resolvconf /etc/resolvconf /lib/resolvconf /usr/share/man/man8/resolvconf.8.gz
Am wichtigsten ist jedoch, dass Sie feststellen können, ob Ihr /etc/resolv.conf
wurde mit obigem Befehl (Datei /etc/resolv.conf) in einen Link umgewandelt. Wenn die Antwort ASCII text
ist , verwenden Sie chattr
, sonst...
Wenn Sie eine statische IP verwenden, ist es am einfachsten, die folgende Zeile (oder etwas Ähnliches) hinzuzufügen
dns-nameservers 8.8.4.4 8.8.8.8
zu der Zeilengruppe, die die Eigenschaften Ihrer statischen Schnittstelle in /etc/network/interfaces definiert.
Wenn Sie stattdessen einen Laptop verwenden, der ständig mit verschiedenen Netzwerken verbunden ist, können Sie LawrenceC
folgen 's ausgezeichneter Vorschlag. Aber wenn Sie resolvconf haben Auf Ihrem System besteht der korrekte (und einfachste) Weg, einen festen Satz von DNSs bereitzustellen, darin, die Dateien in /etc/resolvconf/resolv.conf.d zu verwenden . Insbesondere werden folgende Dateien verwendet (siehe Seite von Stephane Graber):
Basis :Wird verwendet, wenn keine anderen Daten gefunden werden können
Kopf :Wird für den Header von resolv.conf verwendet, kann verwendet werden, um sicherzustellen, dass ein DNS-Server immer der erste in der Liste ist
Schwanz :Jeder Eintrag in tail wird an das Ende der resultierenden resolv.conf angehängt.
Platzieren Sie also Ihre bevorzugten Nameserver in head , wie folgt
nameserver 8.8.8.8
und Sie sind fertig.
Fügen Sie eine ähnliche Zeile zu /etc/dhcp/dhclient.conf
hinzu mit einem Root-Terminal:
supersede domain-name-servers 74.122.198.48, 50.116.23.211;
Dies verursacht dhclient
, das Programm, das eine DHCP-Anfrage ausgibt und Änderungen entsprechend der Antwort vornimmt, um die Informationen, die es vom DHCP-Server erhalten hat, durch die oben genannten zu ersetzen, bevor es Änderungen vornimmt.
Die oben genannten sind zwei OpenNIC-DNS-Server. Ersetzen Sie nach Bedarf für die Server, die Sie verwenden möchten.
Da dies immer passiert, wenn Sie Konfigurationsinformationen von DHCP erhalten, verwenden Sie also dhclient -v eth0
oder was auch immer für eine Schnittstelle, um es zu aktualisieren und die Änderung zu sehen.
Es scheint, wie von @Rik erwähnt, dass der Grund für den DNS-Ersatz beim Neustart auf den so eingestellten Netzwerkmanager / das so eingestellte Dienstprogramm zurückzuführen ist. In Linux Mint hatte ich laut Screenshot meine IPv4-Methode nur auf automatische (DHCP) Adressen eingestellt. Sie können dann entweder die richtigen Einstellungen in /etc/resolv.conf oder im Abschnitt DNS-Server eingeben. Ich erinnere mich, dass sich meine Nameserver in Ubuntu 13.04 über einen langen Zeitraum ein paar Mal geändert haben, aber nachdem ich sie tatsächlich in der GUI bearbeitet habe, schien von da an alles stabil zu sein.