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.