Ricerca nel sito web

Nozioni di base su Linux: imposta un IP statico su Ubuntu


Questo tutorial spiega come configurare un indirizzo IP statico su un sistema Ubuntu dalla riga di comando. Copre la configurazione di rete per tutte le versioni correnti di Ubuntu e include le istruzioni per la configurazione di un indirizzo IP statico, l'impostazione del nome host e la configurazione della risoluzione dei nomi.

Configurazione di rete su Ubuntu 20.04 LTS e Ubuntu 18.04 LTS

La configurazione di rete in Ubuntu è fatta con uno strumento chiamato netplan, ha sostituito il tradizionale file /etc/network/interfaces.

Configura un indirizzo IP statico con Netplan su Ubuntu

Ecco i passaggi per configurare un indirizzo IP statico con Netplan. I file di configurazione di Netplan si trovano nella directory /etc/netplan/. Il file di configurazione predefinito è /etc/netplan/01-netcfg.yaml.

Apri il file di configurazione della rete con un editor. Il nome del file di configurazione di netplan è diverso, a seconda della versione di Ubuntu.

Ubuntu 20.04:

sudo nano /etc/netplan/00-installer-config.yaml

Ubuntu 18.04:

sudo nano /etc/netplan/01-netcfg.yaml

La sintassi di configurazione è nel linguaggio di programmazione Python (formato .yaml), quindi il rientro delle righe è importante!

Il contenuto del file è lo stesso su Ubuntu 20.04 e 18.04.

Ecco un esempio di indirizzo IPv4 statico 192.168.1.100 sulla prima interfaccia di rete ens33 e IP gateway 192.168.1.1. Il server utilizzerà i server DNS gratuiti di Google 8.8.8.8 e 8.8.4.4 per la risoluzione dei nomi.

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

O come screenshot da un server Ubuntu:

È possibile aggiungere un indirizzo IPv6 nella riga indirizzi, separato da una virgola. Esempio:

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

È importante racchiudere l'indirizzo IPv6 tra virgolette singole, altrimenti si otterrà un errore di sintassi.

Per applicare le modifiche, eseguire:

sudo netplan apply

Oppure usalo con l'opzione --debug per ottenere un output utile se l'analisi del file di configurazione di netplan ha avuto successo.

sudo netplan --debug apply

Configura un indirizzo DHCP con Netplan

Ecco la configurazione per ottenere la configurazione di rete per IPv4 e IPv6 da un server DHCP.

# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
version: 2
renderer: networkd
ethernets:
ens33:
dhcp4: yes
dhcp6: yes

Per applicare le modifiche, eseguire:

sudo netplan apply

Altre opzioni di configurazione di Netplan

Netplan è un nuovo sistema di configurazione complesso per configurare schede di rete, dispositivi virtuali, VLAN e bridge in Ubuntu 18.04. Per ulteriori esempi e una spiegazione approfondita della sintassi, consulta la pagina man.

Configurazione di rete su Ubuntu 12.04 - 17.04 (incluso Ubuntu 16.04 LTS)

Passaggio 1: configura l'interfaccia di rete

In questo passaggio, configurerai manualmente la tua interfaccia di rete modificando i seguenti file utilizzando il tuo editor di testo preferito (nano gedit vi). Ai fini di questo esempio, sto usando l'editor \nano\. È possibile modificare il file appropriato immettendo il seguente comando nel terminale:

Puoi copiare e incollare direttamente da questa riga.

sudo nano /etc/network/interfaces

Inserisci la tua password di root, una volta che il tuo editor preferito apre il file puoi vederlo nelle versioni precedenti di Ubuntu:

auto lo eth0
iface lo inet loopback
iface eth0 inet dynamic

Ubuntu Systems con systemd (come Ubuntu 16.04 e versioni successive), l'interfaccia di rete è ora denominata ens33 anziché eth0 e la parola dynamic è stata sostituita con dhcp.

Una configurazione in cui l'indirizzo IP viene assegnato automaticamente da DHCP sarà simile a questa:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto ens33
iface ens33 inet dhcp

Le schede di rete configurate staticamente avranno una sezione come questa nelle versioni precedenti di Ubuntu:

auto lo eth0
iface lo inet loopback
iface eth0 inet static
        address xxx.xxx.xxx.xxx(enter your ip here)
        netmask xxx.xxx.xxx.xxx
        gateway xxx.xxx.xxx.xxx(enter gateway ip here,usually the address of the router)

Ecco un esempio per una vecchia versione di Ubuntu:

auto lo eth0
iface lo inet loopback
iface eth0 inet static
	address 192.168.1.100
	netmask 255.255.255.0
	gateway 192.168.1.1

E qui un esempio per Ubuntu 16.04 e successivi:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# test

# The primary network interface
auto ens33
iface ens33 inet static
address 192.168.1.100
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameservers 8.8.8.8 8.8.4.4

E qui il file di configurazione di rete completo da un sistema Ubuntu 16.04.

Se usi l'editor \nano\ per modificare il file di configurazione, digita Ctrl+x per salvare le modifiche.

Salva buffer modificato (RISPONDERE \No\ DISTRUGGERÀ LE MODIFICHE) ?

<---Digitare \y\

Nome file da scrivere: interfacce

<---INVIO

Passaggio 2: configurare i server DNS

Le modifiche in /etc/resolv.conf sono richieste solo su sistemi con Ubuntu < 14.04, per le versioni più recenti di Ubuntu i server dei nomi vengono configurati nel file /etc/network/interfaces o nel file di configurazione netplan.

a) Ubuntu 20.04

Apri il file di configurazione di netplan con un Editor. Userò il nano editor in questo esempio:

sudo nano /etc/netplan/00-installer-config.yaml

Ho contrassegnato in grassetto gli indirizzi IP del server DNS:

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

b) Ubuntu 18.04

Apri il file di configurazione di netplan con l'editor nano:

sudo nano /etc/netplan/01-netcfg.yaml

Ho contrassegnato in grassetto gli indirizzi IP del server DNS:

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

c) Ubuntu versioni 14.04 e 16.04

Apri di nuovo il file /etc/network/interfaces e aggiungi una riga dns-nameservers 8.8.8.8 subito dopo la riga gateway.

sudo nano /etc/network/interfaces
auto lo
iface lo inet loopback
iface ens33 inet static
        address xxx.xxx.xxx.xxx(enter your ip here)
        netmask xxx.xxx.xxx.xxx
        gateway xxx.xxx.xxx.xxx(enter gateway ip here,usually the address of the router)
        dns-nameservers 8.8.8.8

I nameserver 8.8.8.8 e 8.8.4.4 sono forniti da Google per uso pubblico, quindi puoi utilizzarli nella tua configurazione di rete.

Se usi l'editor \nano\, premi Ctrl+x per salvare le modifiche.

Salva buffer modificato (RISPONDERE \No\ DISTRUGGERÀ LE MODIFICHE) ?

<---Digitare \y\

Nome file da scrivere: interfacce

<---INVIO

d) Versioni di Ubuntu < 14.04

In questo passaggio, configurerai manualmente il tuo file di configurazione DNS.

sudo nano /etc/resolv.conf

Una volta che il tuo editor apre il file che vuoi inserire le seguenti informazioni...

nameserver xxx.xxx.xxx.xxx(enter your dns server ip)
nameserver xxx.xxx.xxx.xxx(enter your alt dns server ip)

Se usi l'editor \nano\, premi Ctrl+x per salvare le modifiche.

Salva buffer modificato (RISPONDERE \No\ DISTRUGGERÀ LE MODIFICHE) ?

<---Digitare \y\

Nome file da scrivere: resolv.conf

<---INVIO

Ecco un esempio:

nameserver 8.8.8.8
nameserver 8.8.4.4

Passaggio 3: riavviare la rete

Riavvia manualmente l'interfaccia di rete con le nuove impostazioni.

Per Ubuntu 20.04 e 18.04, utilizza il comando netplan per applicare le modifiche e riavviare la rete. Il comando è:

sudo netplan apply

Per le versioni di Ubuntu 14.04 e 16.04 usiamo invece systemctl:

systemctl restart 

A questo punto puoi verificare se le impostazioni sono corrette:

ifconfig

Se tutto è corretto otterrai questo risultato.

eth0      Link encap:Ethernet  direcciónHW 00:33:27:46:2v:34
          Direc. inet:192.168.1.101  Difus.:0.0.0.0  Másc:255.255.255.0
 ...

Per Ubuntu < 14.04 usa lo script init di rete:

sudo /etc/init.d/networking restart

Questo dovrebbe restituire un risultato simile al seguente:

*Reconfiguring network interfaces… [OK]

Configura il nome host

Il nome host di un server o desktop Ubuntu viene configurato nei file /etc/hostname e /etc/hosts . Il file /etc/hostname imposta il nome host effettivo del sistema mentre /etc/hosts viene utilizzato per la risoluzione del nome locale.

In questo esempio, cambierò il nome host del mio sistema in obelix.example.com.

Per prima cosa, modifica il file /etc/hostname

sudo nano /etc/hostname

Il file hostname contiene solo la parte locale del nome host. La parte locale qui è \obelix\. Modificare il contenuto del file /etc/hostname in:

obelix

e salva il file. Il file del nome host come appare in nano dopo la modifica:

Quindi apri il file /etc/hosts con un editor:

sudo nano /etc/hosts

e modificare la riga che inizia con l'indirizzo IP del sistema in questo modo:

192.168.1.100   obelix.example.com     obelix

Qui uno screenshot del file /etc/hosts.

Il formato è così:

[Indirizzo IP] [nome host completo incl. dominio] [parte locale del nome host]

Infine, riavvia il sistema per applicare la modifica del nome host.