Umschalten eines Servers von DHCP auf statische IP


14

Ich führe eine Ubuntu 10.04-Serverinstallation aus und musste sie kürzlich von DHCP auf statische IP umstellen. Ich habe die /etc/network/interfacesDatei bearbeitet und gewechselt

iface eth0 inet dhcp

zu

iface eth0 inet static  
address 192.168.1.167  
netmask 255.255.255.240  
network 192.168.1.160  
broadcast 192.168.1.175  
gateway 192.168.1.161

Sie werden feststellen, dass die IPs etwas seltsam sind. Dies liegt daran, dass sich der Server jetzt in einem speziellen Subnetz befindet, das der Isolierung bestimmter Server dient. Ich habe auch die Datei resolv.conf bearbeitet, um die richtigen DNS-Server einzuschließen (einschließlich eines von Google, nur für den Fall, dass die Hölle los ist).

Das Problem ist, dass die Maschine scheinbar zufällig die Fähigkeit verliert, mit der Außenwelt zu sprechen. Ich weiß, dass die Maschine immer noch in Betrieb ist, aber es sieht so aus, als hätte sie überhaupt keine Vernetzung. Ich denke, ein Teil des Problems ist, dass in diesem Subnetz kein DHCP läuft (und wird es auch nicht geben) und der Dhclient gelegentlich immer noch läuft, was zu Konflikten führt (keine Ahnung, was), die zum Absterben des Netzwerks führen. Ich kann das Paket dhcp3-client jedoch nicht entfernen, da es auch dazu führt, dass das Paket ubuntu-minimal entfernt wird, und das wäre schlecht.

Also irgendwelche Ideen? Wie kann ich den Dhclient aufrufen und verhindern, dass er ausgeführt wird?


1
Bitte ausführen sudo dhcpclient eth0und kommentieren, wenn das Netzwerk danach unterbrochen wurde. Und die letzten Zeilen von /var/log/syslogwenn möglich
aatdark

UPDATE Sie können versuchen, sudo ifdown eth0gemäß art.ubuntuforums.org/showthread.php?t=1419803
aatdark

@aatdark Wenn Sie ausführen ps auxf | less, sollten Sie in der Lage sein, eine Liste von Prozessen anzuzeigen , die in einer baumartigen Struktur organisiert sind. Sie können dann sehen, welcher Prozess ausgelöst wurde dhclient(gehen Sie einfach den Zweig hinauf). Zum Beispiel ist auf meinem PC dhclientein Sohn des NetworkManagerProzesses.
Riccardo Murri

Antworten:


14

Wenn Sie den Computer seitdem nicht neu gestartet haben, ist dieses Verhalten normal. Der Wechsel von DHCP zu statischer IP sollte sein:

  • sudo ifdown eth0
  • Ändern Sie die Konfiguration
  • sudo ifup eth0

Der Grund dafür ist, dass wenn Sie das ifdown nach dem Ändern der Konfiguration ausführen, es sich so verhält, als würde es eine statische Schnittstelle ausschalten und den dhclient-Prozess nicht beenden, der Ihre Konfiguration immer wieder durcheinander bringt. In diesem Fall beenden Sie einfach den dhclient-Prozess mit

sudo killall dhclient

und es sollte alles klappen.


2

Wie von jneves erwähnt , ist es wahrscheinlich der DHCP-Client, der die Dinge für Sie durcheinander bringt .

Alternativ zu sudo ifdown eth0-edit- sudo ifup eth0können /etc/init.d/networking restartSie die Datei erst ausführen, nachdem Sie sie bearbeitet haben. Es hat auch den Vorteil, dass Sie es aus der Ferne tun können ...

(Da ich nicht genug Punkte bei askubuntu habe, darf ich nicht nur die Antwort von jneves kommentieren, also halte das bitte für einen Kommentar ...)

Edit : Völlig vergessen; Da der obige Befehl Sie zu keinem Zeitpunkt trennt, sollte Ihre SSH-Sitzung das erneute Laden der Konfiguration tatsächlich überstehen. Es ist sehr schön, die Netzwerkeinstellungen zu ändern, während Sie mit dem Computer verbunden sind ...


Es ist vollkommen in Ordnung (und wird empfohlen), dass Sie Ihre eigene Antwort mit weiteren Informationen hinzufügen, die auf anderen aufbauen! (Netter Job, der auch mit der vorherigen Antwort verknüpft ist)
Jorge Castro

Ich habe /etc/init.d/networking restart(in 10.04 Server) nach der Bearbeitung der Konfigurationsdatei verwendet - der dhclient lief noch. Ich musste den dhclient-Prozess manuell beenden (und dann einen Neustart durchführen, um sicherzustellen, dass er nach einem Neustart nicht wieder
aktiviert wird
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.