Press "Enter" to skip to content

Il comando ifconfig in Linux

Nei sistemi operativi Linux/Unix il comando ifconfig è usato per configurare o vedere la configurazione delle interfacce di rete.
In alcune versioni recenti di alcuni sistemi operativi il comando ifconfig è stato sostituito dal comando if.

Descrizione

Il comando ifconfig (in inglese “interface configuration”) serve a visualizzare e gestire la configurazione delle interfacce di rete di un sistema linux/unix.

Lanciando il comando ifconfig senza nessun argomento

ifconfig

si ottengono delle informazioni sulle interfacce di rete attualmente attive nel sistema.

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
 options=1203<RXCSUM,TXCSUM,TXSTATUS,SW_TIMESTAMP>
 inet 127.0.0.1 netmask 0xff000000 
 inet6 ::1 prefixlen 128 
 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 
 nd6 options=201<PERFORMNUD,DAD>  
en4: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
 options=10b<RXCSUM,TXCSUM,VLAN_HWTAGGING,AV>
 ether 78:##:##:##:9d:9a 
 inet6 fe80::###:####:b3c3:8ece%en4 prefixlen 64 secured scopeid 0x5 
 inet 192.168.1.10 netmask 0xffffff00 broadcast 192.168.1.255
 nd6 options=201<PERFORMNUD,DAD>
 media: autoselect (1000baseT <full-duplex>)
 status: active 

In questo caso, lo0 e en4 sono i nomi delle interfacce presenti e attive nel sistema.

  • lo0: Questa è un’interfaccia definita di loopback, cioè che “torna indietro”, il suo ip è standard, 127.0.0.1, e serve al sistema per identificare e parlare con se stesso. Ogni volta che il sistema ha necessità di attivare una connessione di rete verso se stesso può utilizzare 127.0.0.1 e raggiungere se stesso. Questo è differente dall’hostname di cui abbiamo parlato nell’articolo su come cambiare l’hostname.
  • en4: Questa invece è un’interfaccia di rete ethernet, ovvero via cavo, identifica quindi una scheda di rete fisica installata all’interno del computer o collegata ad esempio tramite interfaccia USB.

Questi sono nomi che in alcuni casi possono essere leggermente diversi in base al sistema operativo utilizzato, ma sono generalmente formati da un prefisso che identifica il tipo di interfaccia (lo per loopback, en per ethernet, wl per wireless in questo caso) e un numero che identifica la singola interfaccia nel caso ce ne siano più di una dello stesso tipo.

Vedere la lista di tutte le interfacce

Se avete necessità di vedere la lista completa delle interfacce di un sistema, includendo quindi anche quelle non attive è possibile eseguire il comando con l’opzione -a

ifconfig -a

Questo produrrà un output simile a quello di ifconfig senza opzioni ma nel caso in cui si abbiano nel proprio sistema delle interfacce non attive, verranno visualizzate anche queste ultime

Vedere la configurazione di una singola interfaccia di rete.

Se volete estrarre la configurazione di una singola interfaccia di rete per analizzarla singolarmente potete specificare il suo nome come parametro del comando ifconfig

ifconfig en4

Abilitare e disabilitare un’interfaccia di rete.

Ogni interfaccia può essere attivata e disattivata, come immaginabile se è attiva può inviare e ricevere dati, se è disattiva non può farlo. Il comando ifconfig permette di attivare e disattivare manualmente le singole interfacce di rete in modo semplice.

Per attivare un’interfaccia di rete occorre eseguire il comando ifconfig seguito dal nome dell’interfaccia che vogliamo attivare e il comando up.

Per abilitare o disabilitare un’interfaccia di rete occorrono i permessi di superutente, occorre quindi aver fatto accesso come utente root oppure anteporre il comando sudo per ottenere i privilegi necessari.

Se ad esempio l’interfaccia en4 fosse inattiva e volessimo attivarla manualmente dovremmo eseguire il comando:

sudo ifconfig en4 up

In maniera analoga è possibile disattivare l’interfaccia tramite la parola chiave down, nel nostro esempio per disattivare l’interfaccia en4 eseguiremo

sudo ifconfig en4 down

Configurare un’interfaccia di rete

Come abbiamo detto all’inizio dell’articolo, il comando ifconfig può essere utilizzato non solo controllare lo stato ma anche per configurare le interfacce di rete. Generalmente la configurazione delle interfacce viene effettuata all’avvio del sistema in maniera automatica da script appositamente predisposti. Se però si volessero fare delle modifiche o fosse necessario riconfigurare l’interfaccia è possibile utilizzare il comando ifconfig a tale scopo. Per eseguire la configurazione sono necessari i permessi di superutente quindi anche in questo caso dovremmo accedere come utente root o usare il comando sudo.

Per configurare un indirizzo ip statico assegnato a un’interfaccia di rete è necessario eseguire il comando ifconfig seguito dal nome dell’interfaccia e dall’indirizzo ip che vogliamo assegnare. Ad esempio:

sudo ifconfig en4 192.168.1.150

Per configurare una netmask statica è necessario utilizzare il comando netmask insieme al nome dell’interfaccia e alla netmask che vogliamo assegnare. Ad esempio:

sudo ifconfig en4 netmask 255.255.255.0

Per configurare un indirizzo di broadcast assegnato a un’interfaccia è necessario utilizzare il comando broadcast. Ad esempio:

sudo ifconfig en4 broadcast 192.168.1.255

Se si vuole è possibile combinare insieme i precedenti 3 comandi e configurare l’interfaccia con una singola riga di comando, occorrerà accodare insieme le 3 opzioni, nel nostro esempio avremo:

sudo ifconfig en4 192.168.1.150 netmask 255.255.255.0 broadcast 192.168.1.255

Queste sono le opzioni di configurazione più comuni per il comando ifconfig in linux.

Configurazione DHCP

La configurazione del dhcp, ovvero dell’assegnazione automatica di un indirizzo ip e una configurazione di rete recuperati da un sistema esterno, non è effettuata tramite il comando ifconfig ma tramite il comando dhclient.

Be First to Comment

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *