Ricerca nel sito web

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


Questo tutorial spiega come impostare un indirizzo IP statico su un sistema Ubuntu dalla riga di comando. Copre la configurazione di rete per tutte le versioni attuali di Ubuntu e include istruzioni per configurare un indirizzo IP statico, impostare il nome host e configurare la risoluzione dei nomi.

Configurazione di rete su Ubuntu 22.04, Ubuntu 20.04 e Ubuntu 18.04

La configurazione di rete in Ubuntu viene effettuata 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 varia a seconda della versione di Ubuntu.

Ubuntu 22.04 e 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 è in linguaggio di programmazione Python (formato .yaml), quindi il rientro delle righe è importante!

Il contenuto del file è lo stesso su Ubuntu 22.04 - 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 Google gratuiti 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]

Oppure, 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]

È necessario racchiudere l'indirizzo IPv6 tra virgolette singole. Altrimenti riceverai un errore di sintassi.

Per applicare le modifiche, eseguire quanto segue:

sudo netplan apply

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

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 Netplan

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

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). Per questo esempio, sto utilizzando 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 sulle versioni precedenti di Ubuntu:

auto lo eth0
iface lo inet loopback
iface eth0 inet dynamic

Nei sistemi Ubuntu con systemd (come Ubuntu 16.04 e versioni successive), l'interfaccia di rete ora si chiama ens33 invece di eth0 e la parola "dinamico" è stata sostituita con "dhcp".

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

# 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 versione precedente 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

Ed ecco un esempio per Ubuntu 16.04 e versioni successive:

# 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

Ed ecco il file di configurazione di rete completo da un sistema Ubuntu 16.04.

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

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

<---Digita "y"

Nome del file da scrivere: interfacce

<---INVIO

Passaggio 2: configura i server DNS

Le modifiche a /etc/resolv.conf sono richieste solo su sistemi con Ubuntu < 14.04, per le versioni Ubuntu più recenti 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 netplan con un editor. Utilizzerò l'editor nano 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 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) Versioni Ubuntu 14.04 e 16.04

Apri nuovamente 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 configurazione della tua rete.

Se utilizzi l'editor "nano", digita Ctrl+x per salvare le modifiche.

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

<---Digita "y"

Nome del 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, desideri 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 utilizzi l'editor "nano", digita Ctrl+x per salvare le modifiche.

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

<---Digita "y"

Nome del 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 Ubuntu 14.04 e 16.04 utilizziamo invece systemctl:

systemctl restart ifup@eth0

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 utilizzare 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 dei nomi locali.

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

Innanzitutto, modifica il file /etc/hostname

sudo nano /etc/hostname

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

obelix

e salvare 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

Ecco uno screenshot del file /etc/hosts.

Il formato è questo:

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

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

Articoli correlati: