Przełączanie serwera na statyczny adres IP z DHCP

14

Korzystam z instalacji serwera Ubuntu 10.04, a ostatnio musiałem zmienić go z DHCP na statyczny adres IP. Zredagowałem /etc/network/interfacesplik i przełączyłem

iface eth0 inet dhcp

do

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

Zauważysz, że adresy IP są trochę dziwne. Wynika to z faktu, że serwer znajduje się teraz w specjalnej podsieci przeznaczonej do izolowania określonych serwerów. Edytowałem również plik resolv.conf, aby uwzględnić odpowiednie serwery DNS (w tym jeden z Google na wypadek, gdyby całe piekło się straciło).

Problem polega na tym, że, pozornie przypadkowo, maszyna straci możliwość rozmowy ze światem zewnętrznym. Wiem, że maszyna wciąż działa, ale zachowuje się tak, jakby w ogóle nie miała sieci. Myślę, że część problemu polega na tym, że nie ma DHCP działającego w tej podsieci (ani nie będzie), a dhclient wydaje się nadal działać, co powoduje jakiś konflikt (nie wiem co), co powoduje śmierć sieci. Nie mogę jednak usunąć pakietu klienta dhcp3, ponieważ powoduje to również usunięcie pakietu minimalnego ubuntu i byłoby to złe.

Jakieś pomysły? Co może nazywać dhclient i co mogę zrobić, aby go zatrzymać?

Enekk
źródło
1
uruchom sudo dhcpclient eth0i skomentuj, jeśli sieć została później uszkodzona. I ostatnie linijki, /var/log/syslogjeśli to możliwe
aatdark
AKTUALIZACJA Możesz spróbować sudo ifdown eth0zgodnie z art.ubuntuforums.org/showthread.php?t=1419803
aatdark
@aatdark Jeśli uruchomisz ps auxf | less, powinieneś zobaczyć listę procesów zorganizowanych w strukturę drzewiastą. Następnie możesz zobaczyć, jaki proces przyspieszył dhclient(po prostu idź w górę gałęzi); na przykład na moim komputerze dhclientjest synem tego NetworkManagerprocesu.
Riccardo Murri,

Odpowiedzi:

14

Jeśli od tego czasu nie uruchomiłeś ponownie komputera, takie zachowanie jest normalne. Zmiana z dhcp na statyczny ip powinna wyglądać następująco:

  • sudo ifdown eth0
  • zmień konfigurację
  • sudo ifup eth0

Powodem jest to, że jeśli wykonasz ifdown po zmianie konfiguracji, zachowuje się on tak, jakby zdejmował statyczny interfejs i nie zabija procesu dhclient, który będzie po prostu popsuwał twoją konfigurację. W takim przypadku po prostu zabij proces dhclient

sudo killall dhclient

i wszystko powinno się udać.

jneves
źródło
2

Jak wspomnieli jneves , prawdopodobnie klient DHCP ma problemy.

Alternatywnie do opcji sudo ifdown eth0-edit- sudo ifup eth0możesz uruchomić /etc/init.d/networking restartpo edycji pliku. Ma również tę zaletę, że można to zrobić zdalnie ...

(Nie mając wystarczającej liczby punktów na askubuntu, nie wolno mi po prostu komentować odpowiedzi Jneves, więc proszę, uważaj to za komentarz ...)

Edycja : całkowicie zapomniałem; ponieważ powyższe polecenie nie rozłącza cię w żadnym momencie, twoja sesja SSH powinna faktycznie przetrwać ponowne ładowanie konfiguracji. Fajnie jest móc zmieniać ustawienia sieciowe podczas połączenia z tym urządzeniem ...

Morten Siebuhr
źródło
Możesz w pełni (i zachęcać) dodać własną odpowiedź z większą ilością informacji, która opiera się na innej! (Dobra robota, link do poprzedniej odpowiedzi)
Jorge Castro
Używałem /etc/init.d/networking restart(w serwerze 10.04) po edycji pliku konfiguracyjnego - dhclient został jeszcze uruchomiony. Musiałem ręcznie zabić proces dhclient (a następnie ponownie uruchomiłem komputer, aby mieć pewność, że nie uruchomi się ponownie po ponownym uruchomieniu)
HorusKol