ifconfig
est une commande Unix qui permet de configurer et d'afficher les informations des interfaces réseau IP à partir de l'interpréteur de commandes. Le nom ifconfig
vient de l'anglais interface configurator.
ifconfig
est apparu en tant que composant de la suite TCP/IP de 4.2BSD. Cette commande a donc été intégrée à la boîte à outils originale d'Internet.
On utilise généralement ifconfig
pour configurer l'adresse IP et le masque de sous-réseau d'un ordinateur, pour afficher des informations sur les interfaces réseau, et pour activer ou désactiver une interface réseau. Au démarrage, beaucoup de distributions de type Unix initialisent leurs interfaces réseau à l'aide de scripts shell qui utilisent ifconfig
.
Exemple de sortie de ifconfig
Le code suivant présente la sortie affichée par la commande ifconfig
sur une machine Linux possédant une interface réseau physique (eth0) et une interface de loopback (lo) :
eth0 Link encap:Ethernet HWaddr 00:07:E9:D5:E0:5D
inet addr:192.168.14.1 Bcast:192.168.14.255 Mask:255.255.255.0
inet6 addr: 2001:6a8:204::1/48 Scope:Global
inet6 addr: fe80::207:e9ff:fed5:e05d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:346293248 errors:0 dropped:0 overruns:0 frame:0
TX packets:1089423722 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1501808809 (1.3 GiB) TX bytes:4184566400 (3.8 GiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
HWaddr
: hardware address, adresse MAC.
Utilisation des arguments de ifconfig
-a
: L'argument « -a » permet d'afficher toutes les interfaces, qu'elles soient actives ou non.
eth
: Pour obtenir les informations d'une interface en particulier, il suffit de faire suivre la commande par le nom de l'interface. Par exemple, pour afficher les informations de l'interface eth0.
Pour assigner une adresse réseau, il suffit d'indiquer l'adresse réseau après avoir précisé l'interface. (ex. : ifconfig eth0 192.168.0.2)
netmask
: Pour assigner le masque de sous-réseau, il faut utiliser l'option netmask suivi du masque à appliquer (ex. : ifconfig eth0 netmask XX.XX.XX.XX). Pour attribuer une adresse IP et un masque de sous-réseau en même temps, on peut écrire : ifconfig eth0 192.168.0.2 netmask 255.254.0.0
up / down
: Pour activer ou désactiver une interface, il existe les options up et down. La configuration d'une interface n'est pas perdue lorsqu'elle est désactivée.
Obsolescence
La commande ifconfig
est considérée comme obsolète dans les distributions Linux récentes. ifconfig
est remplacée par la commande ip
.
L'équivalent de ifconfig est désormais ip addr show
ou son alias ip a
.
Il n'est pas obligé de préciser show
étant donné qu'il s'agit de l'action par défaut.
La sortie de ip
est différente de celle de ifconfig :
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp3s0f2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
link/ether 08:62:66:6c:6e:98 brd ff:ff:ff:ff:ff:ff
3: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 40:e2:30:d1:f4:0d brd ff:ff:ff:ff:ff:ff
inet 192.168.2.2/24 brd 192.168.2.255 scope global wlp2s0
valid_lft forever preferred_lft forever
inet6 fe80::42e2:30ff:fed1:f40d/64 scope link
valid_lft forever preferred_lft forever
Il est à noter que la sortie est plus concise. Le nombre de paquets traités de façon normale ou autre n'est pas affiché. Pour les afficher, ajoutez l'option -s, -stats, -statistics
. Pour obtenir des informations plus complètes et lisibles, il est possible d'utiliser ip -stats -color -human addr
ou ip -s -c -h a
de façon plus concise.