Come configurare un IP statico su Ubuntu Server 18.04


29

Ho visto alcune persone dire che il file per impostare l'ip statico è ancora /etc/network/interfaces

E ho visto altre persone dire che nel 18.04 è ora /etc/netplan(di cui la gente sembra infelice)

Ho provato a mettere questo:

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]

Nel mio modo di /etc/netplan/50-cloud-init.yamlfare, sudo netplan applyma questo uccide solo la connessione del server a Internet.


È un desktop o un server?
user68186

Si tratta di una nuova installazione o aggiornamento 18.04 da un'altra versione?
WinEunuuchs2Unix

Mi dispiace che avrei dovuto dirlo nel testo, è una nuova installazione del server 18.04.
final20

La soluzione più semplice per me è stata quella di specificare un indirizzo IPv4 statico durante l'installazione (insieme a sottorete, gateway, ecc.). Basta compilare alcuni campi della procedura guidata, senza problemi con i file di configurazione.
Uwe Keim,

Puoi farlo anche sui router. I passaggi sono autoesplicativi nella configurazione del router.
Staff EODCraft

Risposte:


13

Questo è impostato un'istruzione IP statica in Ubuntu-Server 18.04

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

Quindi sostituire la configurazione, ad esempio le seguenti righe:

# 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]

Applica i cambiamenti:

$ sudo netplan apply

In caso di problemi, eseguire:

$ sudo netplan --debug apply

[ NOTA ]:

  • /24 è equivalente a 255.255.255.0
  • ens160 è il tuo nome ethernet, puoi ottenerlo usando $ ifconfig
  • La configurazione dell'interfaccia di rete di Ubuntu 16.04 e 14.04 ha un metodo diverso.
  • Il file è in formato YAML : usa spazi, nessuna scheda.

impossibile eseguire il ping dopo aver assegnato un indirizzo IP statico
user2763554

OK .... Sono in grado di eseguire il ping dopo aver fattoservice networking restart
user2763554

1
Non lo farei visto che quel file è generato da CloudInit
Ludovic Kuty il

13

Tutte le risposte che ti dicono di modificare direttamente /etc/netplan/50-cloud-init.yamlsono errate poiché CloudInit viene utilizzato e genererà quel file. In Ubuntu 18.04.2 è chiaramente scritto nel file:

$ 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

Quindi non dovresti modificare quel file ma quello sotto /etc/cloud/cloud.cfg.d/se vuoi ancora usare CloudInit.

Un altro modo è disabilitare completamente CloudInit prima creando un file vuoto /etc/cloud/cloud-init.disabled(vedi https://cloudinit.readthedocs.io/en/latest/topics/boot.html ) e poi le altre risposte sono OK. Sotto Ubuntu 18.04.2 ho dovuto usare dpkg-reconfigure cloud-initper tener conto del file /etc/cloud/cloud-init.disabled. Penso che sia un po 'strano.

Ti suggerisco di rinominare il file (non il nome giusto poiché 50-cloud-init.yamlpensiamo che usi ancora CloudInit).

Quindi potresti finire con un nome file /etc/netplan/01-netcfg.yamlche contiene la configurazione seguente. Nota l'uso del networkdrenderer anziché NetworkManagerperché la configurazione è su un server.

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
Funziona benissimo. Questa dovrebbe essere la risposta migliore. 50-cloud-init.yaml come indicato non deve essere modificato.
Reliquia

2
Se usi ancora CloudInit, devi fare un sudo cloud-init clean -rper ottenere la modifica, come per la risposta di veperr (almeno per me su Ubuntu Server 18.04.3).
Stuart Rossiter,

1
... inoltre la rendererlinea non è più valida sembra (e manca nella versione base del file che si modifica).
Stuart Rossiter,

6

Ubuntu 18.04 ora utilizza Netplan per configurare le interfacce di rete, quindi la configurazione deve essere eseguita nel file /etc/netplan/50-cloud-init.yaml, la documentazione consiglia di non rovinare più il vecchio file /etc/network/interfaces. Ho usato questa configurazione con la mia macchina virtuale Ubuntu Server e funziona finora, assicurati solo che le informazioni siano corrette; l' optional: trueimpostazione presumibilmente accelera il tempo di avvio non verificando se l'interfaccia è connessa o meno, questo è predefinito, inoltre non è necessario dichiarare valori non utilizzati, ad esempio DHCP, se sono assenti vengono considerati disabilitati, anche il il renderer predefinito in Ubuntu Server è networkdquindi non è necessario dichiararlo. Prendendo le informazioni dal tuo post, dovrebbe essere così:

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

Una volta salvato il file, eseguire sudo netplan --debug applyil debugflag genererà più informazioni e può aiutare a rilevare eventuali errori. Controllare il cavo Ethernet, se in revisione virtuale la configurazione della VM. Se utilizzo una WLAN ho letto che è un po 'più complicato da configurare, ma non ho ancora configurato una macchina connessa al WiFi con questa versione del server.

Se vuoi maggiori informazioni su Netplan c'è un sito web, ha alcuni esempi di configurazione di base.

https://netplan.io/


5

Il file di configurazione è in formato YAML : non utilizzare TAB durante la configurazione del file. Funziona solo con SPACE .

Questo era il mio problema.


4

Ho trovato un altro modo usando cloud-init.

  1. Modifica il file /etc/cloud/cloud.cfg.d/50-curtin-networking.cfg- il contenuto sembra essere lo stesso di come sarebbe in / etc / netplan.
  2. pulisci, riavvia e reinizializza cloud-initcon questo comando:

    sudo cloud-init clean -r
    
  3. Questo è tutto! Il tuo sistema si riavvierà, cloud-initreinizializzerà e raccoglierà la modifica /etc/cloud/cloud.cfg.d/50-curtin-networking.cfge le applicherà /etc/netplan/50-cloud-init.yamle tutto andrà bene. Verificare con ifconfig.


0

Questa è l'impostazione che lo fa funzionare.

$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

riavvia il server

cambia eth0 nel tuo adattatore, scopri il tuo adattatore usando ifconfig.


0

Per trovare le interfacce Ethernet disponibili usare ip link show

Quindi modificare il file 50-cloud-init.yaml utilizzando $sudo nano /etc/netplan/50-cloud-init.yaml

Aggiungi la configurazione per le interfacce disponibili come eth0: e 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  

Quindi utilizzare il comando $sudo netplan applyper applicare le modifiche.


0

Come configurare un IP statico su Ubuntu Server 18.04

Quindi modificare il file 50-cloud-init.yaml utilizzando$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

Applica i cambiamenti:

$ sudo netplan apply


Non lo farei visto che quel file è generato da CloudInit.
Ludovic Kuty il

Perché oh perché ogni guida per impostare un IP statico su 18.04 mi dice di modificare un file yaml che dice che è un file creato dinamicamente che non persisterà? Un'altra battuta crudele da parte degli sviluppatori di Ubuntu che pensa che sia giusto rompere le cose per impostazione predefinita ...
Bigtexun

0

La configurazione della rete in 18.04 è gestita tramite netplan e configurata con cloud-init. Per modificare la configurazione della rete, modificare il 50-curtin-networking.cfgfile in /etc/cloud/cloud.cfg.d/. Se questo file non esiste, crearlo.

Trova il nome della tua interfaccia

ip address show

Modifica / crea il file di configurazione della rete cloud-init

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

Per impostare un indirizzo IP statico, utilizzare il tasto degli indirizzi, che accetta un elenco di (IPv4 o IPv6), indirizzi insieme alla lunghezza del prefisso della sottorete (ad es. / 24). È possibile fornire anche informazioni su gateway e 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]

Puoi trovare altre opzioni di configurazione su https://netplan.io/examples

Ricarica la configurazione cloud-init. Questo riavvierà il tuo server.

sudo cloud-init clean -r
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.