Jak ustawić statyczny adres IP w Ubuntu?

56

Jestem nowy w systemie Linux, mam wieloletnie doświadczenie z serwerami / komputerami z systemem Windows i mam problemy z ustawieniem statycznego adresu IP. Używam metody używanej w poprzednich wersjach Ubuntu, która wydaje się nie działać z 16.04

Użyłem polecenia sudo nano /etc/network/interfacei dodałem następujące

iface enp0s25 inet static
address 10.10.8.2
netmask 255.255.0.0
gateway 10.10.1.1
dns-nameservers 8.8.8.8 8.8.4.4

Ponownie uruchomiłem system, a Ethernet jest prawie martwy, ping w ogóle nie działa. Próbowałem zmodyfikować /etc/NetworkManager/NetworkManager.confi wprowadziłem następujące zmiany

#dns=dnsmasq (comment out the dnsmasq)
[ifupdown]
managed=true (changed from false)

Dzięki temu mogę sprawić, że Ethernet będzie działał sporadycznie, jednak ostatecznie się nie powiedzie.

Próbowałem tej konfiguracji na dwóch innych komputerach oraz na maszynie wirtualnej i wszystkie mają takie same wyniki. Mogę potwierdzić, że te ustawienia działają poprawnie po zainstalowaniu systemu Windows na dowolnym z tych komputerów. Gdy pozwolę na automatyczną konfigurację DHCP, wszystko działa dobrze, bez problemów.

Wydaje mi się, że coś tu brakuje, ustawienie statycznego adresu IP nie powinno być wcale trudne.

TeeStar
źródło
jedyne co zauważy i może to właśnie zostały literówka tutaj, ale chciałbym zmienić Dns-nameserversna dns-nameserversnie prawdopodobnie będzie robić nic, aby rozwiązać ten problem, ale może zatrzymać inne problemy dzieje
John Orion
1
Serwery nazw DNS są dopuszczalne pod względem składni, więc nie powinno to stanowić problemu. Kiedy działał z DHCP, czy uruchomiłeś i ifconfigsprawdziłeś nazwę interfejsu, czy zakładałeś, że jest to enp0s25? Czy masz też auto enp0s25na górze pliku konfiguracyjnego? Jeśli nie jest możliwe, że interfejs nie uruchamia się po uruchomieniu.
Andrew
Edytuj swoje pytanie i opublikuj dokładną zawartość /etc/network/interfacespliku. Podczas edytowania wiadomości zaznacz tekst tego pliku, a następnie kliknij {}łącze do kodu w górnej części edytora wiadomości, aby poprawnie sformatować tekst, ułatwiając nam czytanie treści. Wykonaj także to polecenie ip addressi wykonaj te same kroki, aby {}(format kodu) wyprowadzić dane wyjściowe.
LD James

Odpowiedzi:

83

Miałem ten sam problem i to było moje rozwiązanie:

sudo nano /etc/network/interfaces

i wklej (zmieniając dla swojej sieci) to pod # The primary network interface:

auto enp0s25
iface enp0s25 inet static
address 192.168.0.16
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 8.8.4.4 8.8.8.8

Możesz uzyskać poprawną nazwę interfejsu za pomocą komendy Terminal ifconfig -ana Ubuntu 16.04 lub ip address18.04+

Wyłącz maszynę wirtualną, a następnie !!! Przejdź do ustawień sieciowych i kliknij kilka razy przycisk odświeżania adresu MAC :)

wprowadź opis zdjęcia tutaj

i uruchom swoją maszynę wirtualną, a powinieneś uzyskać dostęp do Internetu!

AKTUALIZACJA 20.02.2019

W przypadku Ubuntu 18.04+ musisz edytować ten plik

/etc/netplan/50-cloud-init.yaml

network:
    ethernets:
        enp0s3:
            addresses: [192.168.0.55/24]
            gateway4: 192.168.0.1
            dhcp4: no
            nameservers:
              addresses: [1.1.1.1,8.8.8.8]
            optional: true
    version: 2
lewis4u
źródło
2
Wielkie dzięki, doceniam to. Wydaje się, że teraz działa bez żadnych problemów. Jest teraz bardzo solidny!
TeeStar
Oprócz dns-nameserverspoprawki musiałem skorzystać z tej poprawki: askubuntu.com/questions/574569/... Mój dostawca usług internetowych to monkeybrains.net .
BSalita,
56

Ustawienie statycznego adresu IP zgodnie z powyższą odpowiedzią tutaj działa, ale trzeba wyczyścić stare ustawienie adresu IP, a następnie ponownie uruchomić sieć. Usługa:

sudo ip addr flush enp0s25
sudo systemctl restart networking.service

Następnie sprawdź, czy jest poprawny:

ip add
Dotacja
źródło
2
Opróżnianie było konieczne, aby uniknąć obecności starego adresu w interfejsie (na podstawie ip addr). Ponowne uruchomienie systemctl również działa, ifdowna ifupinterfejs będzie działał bardziej selektywnie.
RichVel
2
dzięki @Grant. dodanie koloru sprawiło, że ta praca
Paweł Madej
3
W Ubuntu 16.04 i nowszych konieczny jest flush!
Diego Duarte
5

sudo vim /etc/network/interfaces

    auto lo
    iface lo inet loopback
    auto eth0
    iface eth0 inet static
    address 192.168.1.10
    gateway 192.168.1.1
    netmask 255.255.255.0
    dns-nameservers 8.8.8.8

sudo ifdown eth0 && sudo ifup eth0

lanni654321
źródło
9
Cześć @ lanni654321, może powinieneś edytować swoją odpowiedź i dodać kilka słów, krótko wyjaśniając, co robisz i dlaczego? myślę, że dzięki temu Twoja odpowiedź byłaby jeszcze bardziej pomocna, co myślisz?
Tshilidzi Mudau
5
# interfaces(5) file used by ifup(8) and ifdown(8)
# auto lo
# iface lo inet loopback
auto enp2s0 
iface enp2s0 inet static
    address 172.16.9.124
    netmask 255.255.240.0
    gateway 172.16.0.9
dns-nameservers 8.8.8.8
rajan
źródło
1
ifcace powinien być iface na linii 5
twoleggedhorse
@twoleggedhorse: Naprawiono literówkę dla odpowiedzi, ale musiałem dodać kilka #w pierwszym wierszu, ponieważ nie możesz edytować bez co najmniej 6 zmienionych znaków, które nie są białymi
znakami
3

Miałem ten sam problem i rozwiązanie „było” po prostu… przynajmniej dla mnie.

auto ens160
iface ens160 inet static
address 172.31.0.164/22
netmask 255.255.252.0
gateway 172.31.0.2
network 172.31.0.0
broadcast 172.31.3.255
dns-nameservers 172.31.0.21 172.31.0.18

#Add internal route
up route add -net 172.16.168.0/21 gw 172.31.0.20 dev ens160

I utwórz pusty plik o nazwie interfejsu sieciowego w:

~$ touch /etc/network/interfaces.d/ens160

To działa...

Manu
źródło
2

Miałem ten sam problem i to było moje rozwiązanie: Usuń wszystkie puste linie na końcu pliku /etc/network/interface.

AkYu
źródło
0

Kiedyś ustawiałem statyczne adresy IP na moich komputerach Ubuntu, a potem zauważyłem, że mogę po prostu przypisać adres IP za pomocą routera. To może być najprostsze rozwiązanie. Zaloguj się do routera, znajdź podłączone urządzenia i przypisz tam adres IP.

Ole
źródło
0

Jeśli twój serwer pokazuje ten stary adres IP, a także nowy przypisany adres IP, po prostu zrestartuj serwer. Automatycznie opróżni stare IP i utrzyma nowe.
A jeśli nie chcesz zrestartować serwera, użyj tego polecenia:


sudo ip addr flush <your-interface-here>

Promienie słoneczne
źródło
0

Uruchom te proste polecenia, aby sprawdzić, czy interfejsy sieciowe są skonfigurowane do uruchamiania po uruchomieniu / ponownym uruchomieniu komputera.

grep "auto" /etc/network/interfaces

Jeśli na standardowym wyjściu nie zostaną wydrukowane żadne wiersze, otwórz je /etc/network/interfacesza pomocą edytora tekstu (vi, nano, sed) i miejmy nadzieję, że zobaczysz coś podobnego do poniższego obrazu.

Domyślny plik / etc / network / interfaces

Oczywiście, jeśli grepnie zwróci żadnych wierszy do okna terminala, format twojego / etc / network / interfaces nie może być bardzo podobny. :-) Należy jednak postępować zgodnie z formatem linii automatycznych .

auto lo
(Loopback configuration follows)
.
.
.

auto enp0s3
(primary interface configuration follows)
.
.
.

====================

Teraz na twoim komputerze .

auto yourInteraceNameHere
(your interface configuration follows)
.
.
.

Nie wiesz, które nazwy interfejsów są dostępne? Uruchom to polecenie.

ifconfig -a

Następujące polecenie zwróci tylko nazwy interfejsów sieciowych.

ifconfig -a | grep encap | awk {'print $1'}

wprowadź opis zdjęcia tutaj

Anthony Rutledge
źródło