Jak skonfigurować pulpit dla statycznego adresu IP?

24

Domyślnie Ubuntu używa DHCP i Gnome NetworkManger do konfigurowania interfejsów. W wielu przypadkach nie jest to optymalne.

Jak skonfigurować komputer stacjonarny dla statycznego adresu IP, który dotyczy wszystkich użytkowników?

Dodatkowe tło : Dla 99,9% użytkowników statyczny wpis DHCP jest prawdopodobnie najłatwiejszym rozwiązaniem, jednak znalazłem konflikt z mythtv-backgroundprocesem i wszelkimi zmianami w interfejsie eth0. Jeśli interfejs zostanie podniesiony / wyłączony po uruchomieniu mythtv, zawiesi proces (co również spowodowało zawieszenie systemu). Tak więc moje pytania naprawdę potrzebują statycznego adresu IP, w którym interfejs jest wywoływany ze znanym adresem IP i pozostaje na stałe.

cmcginty
źródło
2
Na marginesie, możesz użyć rezerwacji DHCP w routerze, który zarezerwuje adres IP dla twojego komputera, identyfikując go na podstawie adresu MAC karty sieciowej, i to będzie działało dosłownie tak, jakby ustawiony był statyczny adres IP.
LFC_fan
1
dzięki dobra wskazówka dla kogoś, kto szuka spójnego adresu IP
cmcginty,

Odpowiedzi:

20

Kliknij prawym przyciskiem myszy nm, wybierz Edytuj połączenia ... znajdź swój interfejs, kliknij Edytuj ... , kliknij Ustawienia IPv4 , wybierz Ręcznie i skonfiguruj interfejs.

Alternatywą byłoby edytowanie / etc / network / interfaces . przykładowa konfiguracja to:

auto eth0
iface eth0 inet static
   address 192.168.1.1
    netmask 255.255.255.0
    gateway 192.168.1.1

następnie uruchomić

/etc/init.d/networking restart

Pamiętaj, że spowoduje to dezaktywację nm dla tego interfejsu i będziesz musiał usunąć (lub odkomentować) wpisy, aby ponownie aktywować nm.

Edycja (patrz post Casey): Musisz także ustawić DNS po edycji / etc / network / interfaces:

Ustaw co najmniej jeden pożądany serwer nazw w /etc/resolv.conf:

serwer nazw 192.168.1.1

sBlatt
źródło
po „ponownym uruchomieniu sieci” pojawia się tylko interfejs lo
cmcginty,
2
Nazwa interfejsu ( eth0w przykładzie sBlatt) może być inna na twoim komputerze: eth0to zwykła nazwa pierwszego przewodowego interfejsu ethernet; nie ma standardu nazewnictwa interfejsów bezprzewodowych. Polecenie ip link showwyświetli listę interfejsów sieciowych wraz z ich odpowiednimi parametrami.
Riccardo Murri
Alternatywnie, po kliknięciu prawym przyciskiem myszy menedżera sieci i wybraniu „Edytuj połączenia”, wybierz, czy będzie to połączenie przewodowe czy bezprzewodowe, a następnie kliknij „Dodaj”. Po dodaniu statycznego adresu IP zgodnie z potrzebą zamknij wszystkie okna dialogowe, a następnie kliknij lewym przyciskiem myszy ikonę menedżera sieci. Będziesz teraz mieć opcję „Auto Eth0”, czyli DHCP i połączenie dodane ręcznie. Możesz to zrobić wiele razy, tworząc listę różnych statycznych adresów IP dla każdej lokalizacji lub okoliczności, w których możesz się znaleźć.
Scaine
@ Riccardo, tak, mój interfejs to eth0. Tak jak powiedziałem, tylko wprowadzanie zmian w interfejsach nie jest dla mnie działającym rozwiązaniem
cmcginty 14.10.10
@Scain, czy zmiany w menedżerze sieci dotyczą wszystkich użytkowników? Mój problem polegał na tym, że przełączanie użytkowników powodowało wyłączenie interfejsu i utworzenie kopii zapasowej. To nie jest tak naprawdę statyczne.
cmcginty
5

Zaktualizuj, /etc/networking/interfacesaby ustawić adres statyczny:

auto eth0
iface eth0 inet static
    address 192.168.0.10
    netmask 255.255.255.0
    gateway 192.168.0.1

Ustaw jeden lub więcej żądanych serwerów nazw w /etc/resolv.conf:

nameserver 192.168.0.1

Musisz uniemożliwić gnome-network-manager próbę przejęcia eth0połączenia:

sudo apt-get remove network-manager network-manager-gnome

Przypisz statyczny adres IP, ponownie uruchamiając podsystem sieciowy:

sudo invoke-rc.d networking restart
cmcginty
źródło
5
Nie usuwaj menedżera sieci! Ryzykujesz brak połączenia z Internetem, jeśli popełnisz kilka błędów podczas konfigurowania statycznego adresu IP (i nie będziesz w stanie ich poprawić).
Riccardo Murri
1
Możesz powiedzieć NetworkManagerowi, aby nie uruchamiał automatycznie interfejsu (kliknij prawym przyciskiem myszy -> Edytuj połączenia ... -> wybierz jedno -> Edytuj ... -> kliknij pole wyboru Połącz automatycznie ); w ten sposób nadal możesz mieć zainstalowanego menedżera sieci i ręcznie aktywować interfejsy za pomocą ifup/ifdown
Riccardo Murri
2
Poza tym mój komentarz miał na celu ostrzeżenie użytkowników z tym samym problemem, że usunięcie menedżera sieci jest ryzykowną drogą. Najwyraźniej jesteś w stanie zarządzać połączeniem sieciowym i rozwiązywać problemy; inni czytelnicy tego pytania mogą nie ...
Riccardo Murri
Nie powinno /etc/networking/interfacesbyć /etc/network/interfaces?
CJBS
1

Jeśli zalogowałeś się do niego mały router (np. Http://192.168.1.1 z Twojej przeglądarki), zapisz aktualne adresy serwerów DNS. Wpisz jeszcze jeden adres IP z DHCP (coś w rodzaju 192.168.1.200-192.168.1.210) lub wyłącz DHCP razem.

Z menu Ubuntu: System -> Preferencje -> Połączenia sieciowe -> Auto eth0 -> edytuj -> Ustawienia IPV4 -> Zmień na Ręcznie -> dodaj ip, (coś jak 192.168.1.200 co zarezerwowałeś powyżej), maska ​​sieci 255.255.255.0 ,, i adres wewnętrzny routera dla domyślnej trasy (coś takiego jak 192.168.1.1 to, z czego się logowałeś) -> Wpisz adresy serwera DNS, które zapisałeś w dolnej części okna.


źródło
Zaktualizowałem trochę moje pytanie, aby wyjaśnić, dlaczego to rozwiązanie nie działa dla mnie. Potrzebuję interfejsu, aby pozostać na stałe.
cmcginty
Zawsze będzie pojawiał się @ pod tym adresem podczas uruchamiania (w tym przykładzie 192.168.0.200) i pozostanie na stałe. Router nie ustawia go już za pośrednictwem DHCP. Jest na stałe zakodowany w komputerze.
0

1) sprawdź, który interfejs należy skonfigurować, zakładając, że interfejs, który chcesz zmienić, to eth0w tym przypadku:

$ ip addr

2) otwórz i edytuj /etc/network/interface:

$ sudo gedit /etc/network/interface

3) dodaj do pliku następujące wiersze /etc/network/interface:

auto eth0
iface eth0 inet static
address 192.168.1.22
netmask 255.255.255.0
gateway 192.168.1.1

3) uruchom ponownie interfejs za pomocą polecenia ifdown i ifup:

$ sudo ifdown --force eth0
$ sudo ifup --force eth0

PS: użyj $ sudo systemctl restart networkinglub $ sudo ifup eth0 może nie działać, gdy używane są inne narzędzia sieciowe, sprawdź także Nie mogę ifdown eth0 (główny interfejs)

realhu
źródło