Wie kann ich den von DHCP bereitgestellten Nameserver überschreiben?

12

Ich (denke), dass ich eine statische IP-Adresse konfiguriert habe in /etc/network/interfaces:

# The primary network interface 
auto eth0 
iface eth0 inet static
    address 10.1.1.2
    netmask 255.255.255.0
    network 10.1.1.0
    broadcast 10.1.1.255
    gateway 10.1.1.1

Und ich ändere die Datei /etc/resolv.conf, um die gewünschten Nameserver einzuschließen.

Dann starte ich das Netzwerk neu sudo /etc/init.d/networking restart

Aber nach einigen Stunden kehrt resolv.conf immer zum DHCP-Nameserver zurück.


Ich sollte auch sagen, dass dies nur Ubuntu Server mit l0und eth0Schnittstellen ist.

David Parks
quelle
Ist das resolvconfPaket installiert?
Gilles 'SO - hör auf böse zu sein'
Versuchen Sie, dhclient auf einer anderen Netzwerkschnittstelle (z. B. einer WLAN- oder DFÜ-Schnittstelle) zu verwenden, oder wird dhclient auf eth0 falsch ausgeführt, obwohl es statisch sein soll?
Poolie
Es gibt nur eth0 und lo0, die manuell eingestellte IP entspricht der von mir erhaltenen DHCP-IP (der DHCP-Server bedient immer dieselbe statische IP). Ich möchte jedoch nicht den vom DHCP-Server angegebenen Nameserver verwenden, also dachte ich, ich würde die IP selbst festlegen und es würde kein DHCP geben, aber ich verstehe nicht, warum die resolv.conf ständig aktualisiert wird.
David Parks
Gilles - nein, ich habe ausgeführt: dpkg -L resolvconf und bekomme: Paket `resolvconf 'ist nicht installiert.
David Parks

Antworten:

34

Wenn Sie die vom DHCP-Server vorgeschlagenen Nameserver überschreiben oder an diese anhängen möchten, können Sie dies konfigurieren /etc/dhcp/dhclient.conf, z.

interface "eth0" {
    prepend domain-name-servers 10.0.0.2;
}

Sie können dies auch über das Steuerelement "Verbindungen bearbeiten" in der Netzwerkanzeige in Unity oder GNOME tun.

Poolie
quelle
4
Dies war die beste Lösung. Ich habe eine weitere Option veröffentlicht, aber festgestellt, dass das Festlegen einer statischen IP in einer AWS EC2-Umgebung keine gute Idee ist. :)
David Parks
Was ist, wenn Sie mehrere Domain Name Server voranstellen möchten?
Dangonfast
Voranstellen Domain Name Server 127.0.0.1scheint den Nameserver von dhcp geliefert zu verwerfen (dies geschieht nicht andere Nameserver vorangestellt)
dangonfast
2
Ersetzen Sie prependdurch supersede, um den DHCP-Wert vollständig zu überschreiben.
Sqerstet
1

Eine Lösung, die Ihr Problem löst, besteht darin, Ihr resolvconfPaket zu konfigurieren . Dies gibt Ihren bevorzugten Nameservern sowie allen anderen gewünschten Einstellungen Vorrang. Resolv.conf-Einstellungen wie Such- und Domain-Einstellungen.

Bearbeiten Sie die Datei: /etc/resolvconf/resolv.conf.d/head

Platzieren Sie die gewünschten Nameserver und andere Konfigurationen, die Sie bevorzugen, wenn sich dort das Netzwerk ändert. Bei Änderungen am Netzwerk hat die dortige Konfiguration immer Vorrang.

Ein Beispiel für die /etc/resolvconf/resolv.conf.d/headDatei:

# 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.8.8
search mydomain.com

Schauen Sie sich die Antwort auf eine ähnliche Frage an:
Überschreiben Sie den DNS-Nameserver

Hinweis:
Achten Sie darauf, dass nach der letzten Eingabe ein Zeilenvorschub erfolgt. Die meisten Editoren stellen beim Speichern der Datei automatisch einen Zeilenumbruch bereit.

LD James
quelle
-2

Ich habe einen Verweis auf das Entfernen des DHCP-Clients gefunden. Ich denke, das war der Hauptschuldige. Ich habe das getan und das Problem noch nicht gesehen. Ich werde bis morgen warten, um zu bestätigen, aber es scheint, dass der DHCP-Client noch lief und gestoppt und deinstalliert werden musste.

apt-get remove isc-dhcp-client dhcp3-client dhcpcd
David Parks
quelle
Ich bin ein wenig verwirrt, ob die Lösung der Befehl "prepend" war oder ob der DHCP-Client tatsächlich entfernt wurde.
Eugene van der Merwe
@EugenevanderMerwe Es ist der Befehl prepend. Auf dem Poster stand: "Dies war die beste Lösung. Ich habe eine weitere Option veröffentlicht, aber festgestellt, dass das Festlegen einer statischen IP in einer AWS EC2-Umgebung keine gute Idee ist. :)"
Grammargeek
-3

Als Faustregel sollten Sie immer alle Netzwerkdienste deinstallieren, die verwendet werden apt-get --purge remove <package-name> . Auf diese Weise werden auch alle Konfigurationsdateien entfernt.

In diesem Fall wäre der Befehl:

apt-get --purge remove isc-dhcp-client isc-dhcp-common

Dieser Befehl entfernt die isc-dhcp-client.

Miikael Ljung
quelle
4
Wie relevant ist das und warum ist es Ihrer Meinung nach eine gute allgemeine Regel? Er will nicht aufhören, DHCP zu verwenden?
Poolie