Ich habe ein Problem mit statischer IP unter Ubuntu 12.04.
Mit DHCP habe ich kein Problem, aber wenn ich (unter /etc/network/interfaces
) die statische Adresse, das Gateway, die Subnetzmaske und die DNS-Nameserver einstelle, habe ich, dass der Server keine Verbindung zur externen Welt herstellen kann.
Es kann nur eine Verbindung zu lokalen IP-Hosts herstellen.
Ich habe versucht, die Nameserver in /etc/resolv.conf
einzufügen, aber jedes Mal, wenn ich die Maschine neu starte, werden die Änderungen abgebrochen.
Was könnte das Problem sein?
Ubuntu 12.04 verwendet resolvconf (eine Reihe von Skripten und Hooks) anstelle von resolv.conf, um den DNS-Server zu verwalten. Der bemerkenswerteste Unterschied für den Benutzer besteht darin, dass jede Änderung, die manuell in der Datei /etc/resolv.conf vorgenommen wird, verloren geht, da sie beim nächsten Mal überschrieben wird, wenn etwas resolvconf auslöst.
Um die statischen DNS-Einträge in der resolv.conf-Datei hinzuzufügen, bearbeiten Sie /etc/resolvconf/resolv.conf.d/base
:
Fügen Sie diese Zeilen hinzu (das folgende Beispiel ist der öffentliche Name-Server von OpenDNS):
%Vor%Führen Sie diesen Befehl aus, um die resolvconf-Einstellung zu aktualisieren:
%Vor%Verwenden Sie folgenden Befehl, um Ihre DNS-Serveradressen anzuzeigen:
%Vor%Zunächst einmal: Überprüfen Sie, ob Sie die richtige Konfiguration haben: - Versuch dein Gateway zu pingen, funktioniert das? Wenn nicht, überprüfen Sie Ihre Gateway IP. - Versuchen Sie, 8.8.8.8 (DNS von Google) zu pingen - funktioniert das? Wenn nein, überprüfen Sie das Routing mit einem der folgenden Befehle:
%Vor%oder
%Vor%und prüfen Sie, bei welchem Hop das Routing stoppt.
In Bezug auf DNS-Namen: Fügen Sie bitte die Zeilen / etc / network / interfaces hinzu:
%Vor%Wir hatten das gleiche Problem mit einem alten HP Terminal und Ubuntu 12.04, um eine statische IP zu verwenden, mussten wir das "manuelle" Flag in /etc/network/interfaces verwenden und eine ifconfig-Eingabe simulieren.
%Vor%Eine seltsame Lösung, aber die minimale Menge an Voodoo, um dieses Problem zu lösen.
Verschiedene Prozesse überschreiben /etc/resolv.conf (dhcpd, networkmanager, etc.). Ich vermute, das ist das Problem, das Sie sehen. Ich würde ein paar Optionen vorschlagen:
Anstatt die Nameserver zu "/etc/resolv.conf" hinzuzufügen, fügen Sie sie stattdessen zu "/etc/resolv.conf.head" hinzu. Der Inhalt von "/etc/resolv.conf.head" wird automatisch dem Inhalt vorangestellt, der automatisch generiert wird. Abhängig von Ihren Optionen können Sie "/etc/resolv.conf.tail" verwenden, um Ihre Einstellungen am Ende der Datei anzuhängen. In jedem Fall sollte dies eine dieser automatisch generierten Einstellungen mit Ihren festen überschreiben.
Schreib / protect /etc/resolv.conf, um zu verhindern, dass deine Änderungen von einem anderen Daemon überschrieben werden (nachdem du deine Änderungen vorgenommen hast):
$ sudo chattr +i /etc/resolv.conf
Wahrscheinlich ist es dhcpd, das /etc/resolv.conf ändert, und Sie haben vergessen, es zu deaktivieren. Entfernen Sie (oder deaktivieren Sie) dhcpd, damit es /etc/resolv.conf nicht ändert. Entfernen:
$ sudo apt-get remove isc-dhcp-client
Verwenden Sie auditd, um festzustellen, welcher Daemon die Datei /etc/resolv.conf ändert:
$ sudo auditctl -w /etc/resolv.conf -p w
Die Protokolle befinden sich in /var/log/audit/audit.log. Sie können das Datum / die Uhrzeit sehen, zu der die Datei geändert wurde und welches Programm sie modifiziert hat (um korrigierende Maßnahmen zu ergreifen).
Ich weiß nicht, aber ich mag die resolv.conf
-Datei nicht. Ich bevorzuge es, den Nameserver so einzustellen, dass er meine Router liest, und normalerweise verwende ich die Namenserver von Google 8.8.8.8 oder 8.8.4.4.
Hier ist eine kleine Anleitung, die ich gefunden habe, wenn jemand interessiert ist.