# Ifconfig

ifconfig (da interface configurator, configuratore di interfacce) è un comando dei sistemi Unix e Unix-like utilizzato per configurare e controllare un'interfaccia di rete TCP/IP da riga di comando.
Originariamente ifconfig comparve in 4.2BSD, come parte della suite TCP/IP di BSD, in effetti era parte dell'originario set di strumenti per internet.
ifconfig viene comunemente utilizzato per impostare indirizzo IP e maschera di sottorete di un'interfaccia di rete, oppure la sua attivazione o disattivazione. Durante il bootstrap molte distribuzioni Unix-like configurano le proprie interfacce di rete tramite script di shell che utilizzano ifconfig.
ifconfig permette inoltre di isolare un computer, disconnettendolo funzionalmente dalla rete mediante disattivazione delle sue interfacce di rete. Su alcuni sistemi (tra cui quelli basati su Linux) esso permette anche di modificare l'indirizzo fisico delle interfacce di rete, come ad esempio l'indirizzo MAC delle interfacce ethernet.

## Esempio di output

La seguente schermata illustra le informazioni sullo stato corrente di un'interfaccia attiva, vista da due macchine: eth0 in un sistema Linux-based e ural0 in OpenBSD.

## Stato attuale

Nei sistemi operativi UNIX della famiglia Berkeley Software Distribution (ad esempio NetBSD, OpenBSD e FreeBSD) si continua un attivo sviluppo di ifconfig e l'estensione delle sue funzionalità per il supporto alla configurazione delle interfacce di rete wireless.
Nelle distribuzioni Linux basate sui kernel 2.2.x, i comandi ifconfig, route e ipchains potevano essere utilizzati insieme rispettivamente per connettere un computer ad una rete, per definire l'instradamento fra reti e per configurare firewall. ifconfig a volte si trova nella directory /sbin.
Nelle distribuzioni di Linux basate su kernel 2.4.x o successivi, tali comandi sono stati resi obsoleti dal comando ip del pacchetto iproute2 e dal comando iptables: il primo offre funzionalità equivalenti a quelle di ifconfig e route, con in più la possibilità del controllo del traffico (come ad esempio il traffic shaping), mentre il secondo controlla il codice Netfilter del kernel, che analizza e trasforma il traffico di rete.

## Strumenti correlati

Diverse versioni di Microsoft Windows, da Windows 95 a Windows Me, usarono il comando winipcfg per dare un aspetto grafico alle informazioni correnti sull'IP. Il comando ipconfig, simile a ifconfig viene fornito con i sistemi operativi Microsoft basati sul kernel di Windows NT, e controlla anche il client DHCP di Windows.
In macOS il comando ifconfig funziona come wrapper dell'IPConfiguration agent e può inoltre controllare da riga di comando i client BOOTP e DHCP. L'uso di ifconfig per modificare i parametri di rete è sconsigliato in Mac OS X perché questo opera al di sotto del livello dei framework di sistema che aiutano nella gestione delle configurazioni di rete. Per modificare a riga di comando le impostazioni di rete in Mac OS X è preferibile usare i comandi /usr/sbin/ipconfig oppure /usr/sbin/networksetup.
iwconfig è uno degli strumenti dei sistemi basati su Linux che prende il nome da ifconfig e che gestisce le interfacce di reti wireless che sono al di fuori dal campo di applicazione di ifconfig: esso permette di effettuare alcune impostazioni particolari, come lo SSID e la chiave WEP, e funziona in combinazione con il comando iwlist. Con Linux si può inoltre utilizzare il comando iwspy per conoscere i livelli di segnale, rumore e qualità della connessione wireless.
Nei sistemi BSD i comandi wicontrol e iwiconfig eseguono funzioni analoghe a quelle descritte in precedenza, anche se OpenBSD ha largamente incorporato queste funzionalità in ifconfig.
Altri strumenti correlati per configurare interfacce Ethernet sono: ethtool, mii-tool e mii-diag per Linux e show-link per Solaris.