Come usare il Comando ifconfig di Linux

Contenuto1 Introduzione2 Come Installare ifconfig2.1 Installare ifconfig su Ubuntu/Debian3 Installare ifconfig su Centos/RHEL4 Come utilizzare il Comando ifconfig5 Visualizzare Informazioni sulle Interfacce di Rete6 Assegnare Indirizzo IP e Maschera a […]

Avatar di gbfactory
gbfactory 20 Luglio 2022

Introduzione

Il comando ifconfig (interface configuration) è uno strumento di configurazione di rete per configurare e visualizzare lo stato delle interfacce di rete nei sistemi operativi Linux. Con ifconfig è possibile assegnare indirizzi IP, abilitare o disabilitare interfacce, gestire la cache ARP, le rotte e molto altro.

In questa guida impareremo ad Come usare il Comando ifconfig di Linux per compiere molte azioni utili durante l'amministrazione di un sistema basato su Linux.

Come Installare ifconfig

Il comando ifconfig è oramai deprecato ed è stato sostituito dal comando ip, potrebbe quindi non essere preinstallato nelle più recenti distribuzioni Linux.

Se provando ad eseguire il comando riceverai il messaggio di errore "ifconfig: comando non trovato", significa che il pacchetto che contiene il comando non è installato sul tuo sistema.

Installare ifconfig su Ubuntu/Debian

Per installare ifconfig sulle distribuzioni Linux basate su Ubuntu o Debian è sufficiente installare il seguente comando:

sudo apt install net-tools -y

Installare ifconfig su Centos/RHEL

Per installare ifconfig su Centos o su altre distribuzioni basate su RHEL, si utilizza il comando :

sudo dfn install net-tools -y

Come utilizzare il Comando ifconfig

Di seguito è riportata la sintassi di base del comando ifconfig:

ifconfig [-a] [-v] [-s] <interfaccia> [[<AF>] <indirizzo>]

In questa sintassi <interfaccia> rappresenta il nome dell'interfaccia di rete, mentre <indirizzo> è l'indirizzo IP che si desidera assegnare.

Le configurazioni che vengono impostate con il comando ipconfig non sono persistenti, dopo un riavvio del sistema tutti i cambiamenti andranno persi. Per rendere le modifiche permanenti sarà necessario modificare i file di configurazione, diversi in base alla distruzione, oppure creare uno script che verrà eseguito all'avvio del sistema.

Solamente gli utenti root o quelli con i privilegi sudo possono configurare le interfacce di rete.

Visualizzare Informazioni sulle Interfacce di Rete

Utilizzando il comando senza nessun parametro, ifconfig visualizzerà le informazioni di configurazione relative a tutte le interfacce di rete con gli indirizzi IP associati:

ifconfig -a

L'output del comando dovrebbe essere simile a quello riportato di seguito:

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.80  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::dad2:85ff:feb4:a7a3  prefixlen 64  scopeid 0x20<link>
        ether d8:d3:85:b3:a7:a3  txqueuelen 1000  (Ethernet)
        RX packets 4646  bytes 4590230 (4.5 MB)
        RX errors 0  dropped 846  overruns 0  frame 0
        TX packets 2057  bytes 179331 (179.3 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 18

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 118  bytes 9896 (9.8 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 118  bytes 9896 (9.8 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Per visualizzare invece le informazioni specifiche relative a una determinata scheda di rete, basterà aggiungere il nome della scheda dopo il comando:

ifconfig eth0

Ecco come apparirà l'output:

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.80  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::dad3:85ff:feb3:a7a3  prefixlen 64  scopeid 0x20<link>
        ether d8:d3:85:b3:a7:a3  txqueuelen 1000  (Ethernet)
        RX packets 113745  bytes 104011350 (104.0 MB)
        RX errors 0  dropped 28586  overruns 0  frame 0
        TX packets 35173  bytes 2411106 (2.4 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 18

Assegnare Indirizzo IP e Maschera a un'Interfaccia

Con il comando ifconfig è possibile assegnare un indirizzo IP e una maschera di sottorete ad una specifica interfaccia di rete.

Per compiere l'operazione appena descritta possiamo assegnare la sintassi qui riportata:

ifconfig [interface-name] [ip-address] netmask [subnet-mask]

Per esempio, per assegnare l'indirizzo IP 192.168.5.10 e la maschera di sottorete 255.255.255.0 all'interfaccia eth0, dovremmo eseguire il comando:

ifconfig eth0 192.168.5.10 netmask 255.255.255.0

Alla nostra interfaccia possiamo assegnare anche un indirizzo IP secondario utilizzando gli alias delle interfacce:

ifconfig eth0:0 192.168.5.10 netmask 255.255.255.0

Abilitare e Disabilitare le Interfacce di Rete

Il comando ifconfig può essere utilizzato anche per abilitare o disabilitare una specifica interfaccia di rete.

Per disabilitare un'interfaccia di rete attiva, basterà inserire il nome dell'interfaccia seguito dal parametro down:

ifconfig eth0 down

Invece, per riabilitare un'interfaccia di rete disabilitata in precedenza, basterà inserire il parametro up:

ifconfig eth0 up

Abilitare e Disabilitare la Modalità Promiscua

La modalità promiscua permette ad un'interfaccia di rete di accedere e vedere tutti i pacchetti in una rete. È possibile utilizzare ifconfig per abilitare o disabilitare questa modalità promiscua su un dispositivo specifico.

Per abilitare la modalità promiscua su un'interfaccia di rete dovremo utilizzare il parametro promisc dopo il nome dell'interfaccia:

ifconfig eth0 promisc

Invece, per disabilitare la modalità promiscua dovremo usare il parametro -promisc al posto del precedente:

ifconfig eth0 -promisc

Modificare la MTU di un'Interfaccia di Rete

La MTU (Maximun Transmission Unit, in italiano Unità di trasmissione massima) permette di limitare la dimensione dei pacchetti che vengono trasmessi attraverso un'interfaccia.

Si può modificare la MTU utilizzando questi valori nella sintassi:

ifconfig [interfaccia] mtu [valore]

Per esempio, per impostare a 500 il valore MTU dell'interfaccia di rete eht0, possiamo eseguire il seguente comando:

ifconfig eth0 mtu 500

Modificare l'Indirizzo MAC di un'Interfaccia di Rete

L'indirizzo MAC (Media Access Control) è l'indirizzo fisico che identifica in modo univoco i dispositivi su una rete.

Per cambiare l'indirizzo MAC di un'interfaccia di rete, possiamo utilizzare il flag hw ether per impostare il nuovo indirizzo fornito dopo il parametro:

ifconfig eth0 hw ether 00:00:2d:3a:2a:28

Conclusione

Abbiamo visto come utilizzare il comando ifconfig per configurare e visualizzare le informazioni di un'interfaccia di rete. Per maggiori informazioni possiamo consultare la pagina del comando ifconfig.