Linux and Unix ifconfig command

Quick links

About ifconfig
Related commands
Linux and Unix main page

About ifconfig

ifconfig is used to configure or view the configuration of a network interface.


ifconfig stands for "interface configuration". It is used to view and change the configuration of the network interfaces on your system.

Running the ifconfig command with no arguments, like this:


...will display information about all network interfaces currently in operation. The output will resemble the following:

eth0      Link encap:Ethernet  HWaddr 08:00:22:90:f3:e5  
          inet addr:  Bcast:  Mask:
          inet6 addr: fe80::a00:27ff:fe70:e3f5/64 Scope:Link
          RX packets:54071 errors:1 dropped:0 overruns:0 frame:0
          TX packets:48515 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:22009423 (20.9 MiB)  TX bytes:25690847 (24.5 MiB)
          Interrupt:10 Base address:0xd020 

lo        Link encap:Local Loopback  
          inet addr:  Mask:
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:83 errors:0 dropped:0 overruns:0 frame:0
          TX packets:83 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:7766 (7.5 KiB)  TX bytes:7766 (7.5 KiB)


ifconfig [-v] [-a] [-s] [interface]
ifconfig [-v] interface [aftype] options | address ...

Technical Description

ifconfig is used to configure the system's kernel-resident network interfaces. It is used at boot time to set up interfaces as necessary. After that, it is usually only needed when debugging or when system tuning is needed.

If no arguments are given, ifconfig displays the status of the system's active interfaces. If a single interface argument is given, it displays the status of the given interface only; if a single -a argument is given, it displays the status of all interfaces, even those that are "down" (inactive; not sending or receiving data).

In all other cases, ifconfig configures an interface.

Address Families

If the first argument after the interface name is recognized as the name of a supported address family, that address family is used for decoding and displaying all protocol addresses. Currently supported address families include inet (TCP/IP; this is the default), inet6 (IPv6), ax25 (AMPR Packet Radio), ddp (Appletalk Phase 2), ipx (Novell IPX) and netrom (AMPR Packet radio).


-a display information for all network interfaces, even if they are down.
-s display a short list (like netstat -i).
-v Verbose mode; display additional information for certain error conditions.
interface The name of the interface. This is usually a driver name followed by a unit number, for example "eth0" for the first Ethernet interface. If your kernel supports alias interfaces, you can specify them with eth0:0 for the first alias of eth0. You can use them to assign a second address. To delete an alias interface use ifconfig eth0:0 down. Note: for every scope (i.e. same net with address/netmask combination) all aliases are deleted, if you delete the first (primary).
up This flag causes the interface to be activated. It is implicitly specified if an address is assigned to the interface.
down This flag causes the driver for this interface to be shut down.
[-]arp Enable or disable the use of the ARP protocol on this interface.
[-]promisc Enable or disable the promiscuous mode of the interface. If selected, all packets on the network will be received by the interface.
[-]allmulti Enable or disable all-multicast mode. If selected, all multicast packets on the network will be received by the interface.
metric N This parameter sets the interface metric.
mtu N This parameter sets the Maximum Transfer Unit (MTU) of an interface.
dstaddr addr Set the remote IP address for a point-to-point link (such as PPP). This keyword is now obsolete; use the pointopoint keyword instead.
netmask addr Set the IP network mask for this interface. This value defaults to the usual class A, B or C network mask (as derived from the interface IP address), but it can be set to any value.
add addr/prefixlen Add an IPv6 address to an interface.
del addr/prefixlen Remove an IPv6 address from an interface.
tunnel Create a new SIT (IPv6-in-IPv4) device, tunnelling to the given destination.
irq addr Set the interrupt line used by this device. Not all devices can dynamically change their IRQ setting.
io_addr addr Set the start address in I/O space for this device.
mem_start addr Set the start address for shared memory used by this device. Only a few devices need this.
media type Set the physical port or medium type to be used by the device. Not all devices can change this setting, and those that can vary in what values they support. Typical values for type are 10base2 (thin Ethernet), 10baseT (twisted-pair 10Mbps Ethernet), AUI (external transceiver) and so on. The special medium type of auto can be used to tell the driver to auto-sense the media. Again, not all drivers can do this.
[-]broadcast [addr] If the address argument is given, set the protocol broadcast address for this interface. Otherwise, set (or clear) the IFF_BROADCAST flag for the interface.
[-]pointopoint [addr] This keyword enables the point-to-point mode of an interface, meaning that it is a direct link between two machines with nobody else listening on it. If the address argument is also given, set the protocol address of the other side of the link, just like the obsolete dstaddr keyword does. Otherwise, set or clear the IFF_POINTOPOINT flag for the interface.
hw class address Set the hardware address of this interface, if the device driver supports this operation. The keyword must be followed by the name of the hardware class and the printable ASCII equivalent of the hardware address. Hardware classes currently supported include ether (Ethernet), ax25 (AMPR AX.25), ARCnet and netrom (AMPR NET/ROM).
multicast Set the multicast flag on the interface. This should not normally be needed as the drivers set the flag correctly themselves.
address The IP address to be assigned to this interface.
txqueuelen length Set the length of the transmit queue of the device. It is useful to set this to small values for slower devices with a high latency (modem links, ISDN) to prevent fast bulk transfers from disturbing interactive traffic like telnet too much.



Running ifconfig with no options will display the configuration of all active interfaces.

ifconfig -a

Displays the configuration of all interfaces, both active and inactive.

ifconfig eth0

View the network settings on the interface eth0, which typically is the first Ethernet adapter installed in the system.

ifconfig eth0 up

Activate the network interface eth0.

ifconfig eth0 down

Deactivate the network interface eth0.

ifconfig eth0

Configure the network interface eth0 to use the static IP address

ifconfig eth0 netmask

Configure the network eth0 to use the netmask

ifconfig eth0 netmask broadcast

Configure eth0 to use the static IP address using the netmask, and the broadcast address

What About DHCP?

ifconfig can assign a static IP address to a network interface. If you want to assign a dynamic address using DHCP, use dhclient.

Related commands