Jak skonfigurować statyczny adres IP na Ubuntu Server 18.04


29

Widziałem kilka osób, które twierdzą, że plik do ustawienia statycznego adresu IP nadal jest wyświetlany /etc/network/interfaces

Widziałem też innych ludzi, którzy mówili, że w 18.04 jest już włączony /etc/netplan(co wydaje się niezadowoleni)

Próbowałem umieścić to:

version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: no
      dhcp6: no
      addresses: [192.168.1.9/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [192.168.1.1, 8.8.8.8, 8.8.4.4]

W moim /etc/netplan/50-cloud-init.yamldziałaniu, sudo netplan applyale to po prostu zabija połączenie serwerów z Internetem.


Czy to komputer stacjonarny czy serwer?
user68186,

Czy to świeża instalacja 18.04 lub aktualizacja z innej wersji?
WinEunuuchs2Unix

Przepraszam, że powinienem to powiedzieć w tekście, to nowa instalacja serwera 18.04.
finał 20

Najprostszym rozwiązaniem było określenie statycznego adresu IPv4 bezpośrednio podczas instalacji (wraz z podsiecią, bramą itp.). Wystarczy wypełnić niektóre pola kreatora, bez bałaganu przy użyciu plików konfiguracyjnych.
Uwe Keim,

Możesz to również zrobić na routerach. Kroki są oczywiste w konfiguracji routera.
EODCraft Staff

Odpowiedzi:


13

Jest to ustawiona statyczna instrukcja IP w Ubuntu-Server 18.04

$ sudo nano /etc/netplan/50-cloud-init.yaml

Następnie zamień konfigurację, na przykład następujące wiersze:

# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
  ethernets:
    ens160:
     dhcp4: no
     addresses: [192.168.1.137/24]
     gateway4: 192.168.1.1
     nameservers:
       addresses: [8.8.8.8,8.8.4.4]

Zatwierdź zmiany:

$ sudo netplan apply

W przypadku napotkania niektórych problemów wykonaj:

$ sudo netplan --debug apply

[ UWAGA ]:

  • /24 jest równoważne z 255.255.255.0
  • ens160 to twoja nazwa ethernetowa, którą możesz uzyskać za pomocą $ ifconfig
  • Konfiguracja interfejsu sieciowego Ubuntu 16.04 i 14.04 ma inną metodę.
  • Plik ma format YAML : używaj spacji, bez tabulatorów.

nie można
pingować

OK .... jestem w stanie service networking restart
pingować

1
Nie zrobiłbym tego, ponieważ ten plik jest generowany przez CloudInit
Ludovic Kuty

13

Wszystkie odpowiedzi /etc/netplan/50-cloud-init.yamlwymagające bezpośredniej edycji są niepoprawne, ponieważ CloudInit jest używany i wygeneruje ten plik. W Ubuntu 18.04.2 jest wyraźnie zapisane w pliku:

$ cat /etc/netplan/50-cloud-init.yaml
# This file is generated from information provided by
# the datasource.  Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
    ethernets:
        eno1:
            dhcp4: true
    version: 2

Więc nie powinieneś edytować tego pliku, ale ten poniżej, /etc/cloud/cloud.cfg.d/jeśli nadal chcesz korzystać z CloudInit.

Innym sposobem jest całkowite wyłączenie CloudInit najpierw poprzez utworzenie pustego pliku /etc/cloud/cloud-init.disabled(patrz https://cloudinit.readthedocs.io/en/latest/topics/boot.html ), a następnie inne odpowiedzi są prawidłowe. W Ubuntu 18.04.2 musiałem użyć, dpkg-reconfigure cloud-initaby uwzględnić ten plik /etc/cloud/cloud-init.disabled. Myślę, że to trochę dziwne.

Sugeruję, aby zmienić nazwę pliku ( 50-cloud-init.yamlniepoprawna nazwa, ponieważ uważamy, że nadal używa CloudInit).

Następnie możesz otrzymać nazwę pliku, /etc/netplan/01-netcfg.yamlktóra zawiera konfigurację poniżej. Zwróć uwagę na użycie mechanizmu networkdrenderującego zamiast, NetworkManagerponieważ konfiguracja jest na serwerze.

network:
  version: 2
  renderer: networkd
  ethernets:
    eno1:
      dhcp4: no
      addresses: [192.168.1.246/24]
      gateway4: 192.168.1.1
      nameservers:
         addresses: [192.168.1.1]

2
Działa świetnie. To powinna być najlepsza odpowiedź. Jak podano powyżej, 50-cloud-init.yaml nie powinien być modyfikowany.
Relikt

2
Jeśli nadal używasz CloudInit, musisz zrobić a, sudo cloud-init clean -raby wprowadzić zmiany, zgodnie z odpowiedzią veperr (przynajmniej dla mnie na Ubuntu Server 18.04.3).
Stuart Rossiter,

1
... a rendererponadto wydaje się, że linia nie jest już poprawna (i brakuje jej w podstawowej wersji edytowanego pliku).
Stuart Rossiter

6

Ubuntu 18.04 używa teraz Netplan do konfigurowania interfejsów sieciowych, więc konfiguracja musi zostać wykonana w pliku /etc/netplan/50-cloud-init.yaml, dokumentacja radzi, aby nie bałaganić starego pliku /etc/network/interfaces. Użyłem tej konfiguracji z moją maszyną wirtualną Ubuntu Server i działa ona do tej pory, po prostu upewnij się, że informacje są poprawne; optional: trueustawienie podobno przyspiesza czas bootowania za nie sprawdzenie, czy interfejs jest podłączony czy nie, jest to domyślne, także nie ma potrzeby do wartości oświadczyć, nie używany, na przykład DHCP, jeśli są one nieobecne są one traktowane jako wyłączone, również domyślnym mechanizmem renderującym w Ubuntu Server jest networkdwięc nie ma potrzeby deklarowania go. Biorąc informacje z twojego postu, powinno to wyglądać tak:

network:
    ethernets:
        eht0:
            addresses:
            - 192.168.1.9/24
            gateway4: 192.168.1.1
            nameservers:
                addresses: [192.168.1.1, 8.8.8.8, 8.8.4.4]
            optional: true
    version: 2

Po zapisaniu pliku uruchom wyjście flaga będzie więcej informacji i może przyczynić się do wykrycia ewentualnych błędów. Sprawdź kabel Ethernet, jeśli w trybie wirtualnym przejrzyj konfigurację maszyny wirtualnej. Jeśli korzystam z sieci WLAN, przeczytałem, że konfiguracja jest nieco trudniejsza, ale nie skonfigurowałem jeszcze urządzenia podłączonego do Wi-Fi w tej wersji serwera.sudo netplan --debug applydebug

Jeśli chcesz uzyskać więcej informacji o Netplan, istnieje strona internetowa, zawiera kilka podstawowych przykładów konfiguracji.

https://netplan.io/


5

Plik konfiguracyjny ma format YAML : Nie używaj TAB podczas konfigurowania pliku. Działa tylko z SPACJĄ .

To był mój problem.


4

Znalazłem inny sposób korzystania z chmury-init.

  1. Edytuj plik /etc/cloud/cloud.cfg.d/50-curtin-networking.cfg- zawartość wydaje się taka sama, jak w / etc / netplan.
  2. wyczyść, uruchom ponownie i ponownie zainicjuj za cloud-initpomocą tego polecenia:

    sudo cloud-init clean -r
    
  3. To jest to! Twój system uruchomi cloud-initsię ponownie , ponownie zainicjuje i przejmie zmianę /etc/cloud/cloud.cfg.d/50-curtin-networking.cfgi zastosuje je, /etc/netplan/50-cloud-init.yamla wszystko będzie dobrze. Zweryfikuj za pomocą ifconfig.


0

To ustawienie sprawia, że ​​działa.

$sudo nano /etc/netplan/50-cloud-init.yaml

network:
   ethernets:
     eth0:          
     addresses:
     - 192.168.1.9/24
     dhcp: false
     gateway4: 192.168.1.1
     nameservers:
        addresses:
        - 192.168.1.1
        - 8.8.8.8
        - 8.8.4.4
        search: []
  version: 2  

$sudo netplan apply

zrestartuj serwer

zmień eth0 na swój adapter, dowiedz się o swoim adapterze, używając ifconfig.


0

Aby znaleźć dostępne interfejsy Ethernet, użyj ip link show

Następnie edytuj plik 50-cloud-init.yaml za pomocą $sudo nano /etc/netplan/50-cloud-init.yaml

Dodaj konfigurację dostępnych interfejsów, takich jak eth0: i eth1:

network:
   ethernets:
     eth0:          
     addresses:
     - 192.168.1.9/24
     dhcp: false
     gateway4: 192.168.1.1
     nameservers:
        addresses:
        - 192.168.1.1
        - 8.8.8.8
        - 8.8.4.4
        search: []
     eth0:
     addresses:
     - 192.168.1.9/24
     dhcp: false
  version: 2  

Następnie użyj polecenia, $sudo netplan applyaby zastosować zmiany.


0

Jak skonfigurować statyczny adres IP na Ubuntu Server 18.04

Następnie edytuj plik 50-cloud-init.yaml za pomocą$sudo vim /etc/netplan/50-cloud-init.yaml


network:
  ethernets:
    eno1:
        addresses:
        - 10.0.1.10/24
        dhcp4: false
        gateway4: 10.0.1.1
        nameservers:
            addresses:
            - 10.0.1.2
            search: []
version: 2

Zatwierdź zmiany:

$ sudo netplan apply


Nie zrobiłbym tego, ponieważ ten plik jest generowany przez CloudInit.
Ludovic Kuty

Dlaczego och, dlaczego każdy przewodnik ustawiania statycznego adresu IP w dniu 18.04 mówi mi, aby edytować plik yaml, który mówi, że jest to plik dynamicznie tworzony, który nie będzie trwał? Kolejny okrutny żart od twórców Ubuntu, którzy uważają, że domyślnie można po prostu zepsuć wszystko domyślnie ...
Bigtexun,

0

Konfiguracja sieci w 18.04 jest zarządzana przez netplan i konfigurowana z chmurą init. Aby zmienić konfigurację sieci, edytuj 50-curtin-networking.cfgplik w /etc/cloud/cloud.cfg.d/. Jeśli ten plik nie istnieje, utwórz go.

Znajdź nazwę swojego interfejsu

ip address show

Edytuj / utwórz plik konfiguracji sieci inicjującej chmurę

sudo nano /etc/cloud/cloud.cfg.d/50-curtin-networking.cfg

Aby ustawić statyczny adres IP, użyj klucza adresu, który pobiera listę adresów (IPv4 lub IPv6) wraz z długością prefiksu podsieci (np. / 24). Można również podać informacje o bramie i DNS:

network:
  version: 2
  ethernets:
    eth0:
      addresses:
        - 192.168.1.9/24
      gateway4: 192.168.1.1
      nameservers:
          addresses: [192.168.1.1, 8.8.8.8, 8.8.4.4]

Więcej opcji konfiguracji można znaleźć na https://netplan.io/examples

Ponownie załaduj konfigurację inicjującą chmurę. Spowoduje to ponowne uruchomienie serwera.

sudo cloud-init clean -r
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.