Introduction

Many Windows administrators are familiar with the ipconfig command line utility, which is used to get information about network interface configuration and make changes to it. Linux systems have a similar utility, ifconfig, which is a common part of the day-to-day tool belt of most Linux sysadmins. There are some distinct differences between ipconfig and ifconfig, however, such as the fact that the DOS/Windows ipconfig does not allow you to make changes to network configuration.

In general, you must be logged in as root or use sudo to make use of the ifconfig utility on a Linux machine. The ifconfig utility can be used either to simply get information about network interface configuration or to change configuration, depending on what options are used with the ifconfig command.

Basic functionality

Entering ifconfig at the command line interface without specifying any options will provide a fairly complete description of the current state of all active network interfaces. For instance, on a machine with hostname erebus, entering ifconfig at the command line might return the following output:

Some important information provided by the ifconfig command includes:

Each active interface is identified by its name. For instance, on erebus, eth0 (the first Ethernet adapter) and lo (the loopback adapter) are both active.

In the case of a physical network adapter, you'll get the MAC address, preceded by the term HWaddr.

The IP address of the interface is preceded by the term inetaddr, the broadcast address by Bcast, and the subnet mask by Mask.

The IPv6 address of each interface is preceded by the term inet6 addr and its scope, predictably, by the word Scope.

The types of activity of each interface are listed together—in the case of eth0 above, it lists UP BROADCAST RUNNING MULTICAST.

Statistics for received and transmitted packets are listed on lines beginning with RX or TX, respectively. On another line, summary information about the amount of received and transmitted data is listed, including the total number of bytes transmitted and received on that device so far.

Options

A number of options can be specified with the ifconfig command to change its behavior:

-a This option tells ifconfig to show information about all interfaces, both active and inactive. On erebus, ifconfig -a returns results for eth0, lo, and sit0.

-s This is the "short listing" option, which shows a one-line summarized listing of data about each interface. The information returned is about interface activity, and not configuration. The output will be identical to what is returned by the netstat -i command.

-v This "verbose" option returns extra information when there are certain types of error conditions to help with troubleshooting.

[int] Simply follow up your ifconfig command with the name of an interface to get only information about that interface. For instance, you could issue the command ifconfig eth0 if you only wanted information about the eth0 interface, and not the loopback interface. Additionally, there are several options that require specifying the interface you wish to configure or get information about.

up This activates an interface if it is not already active. For instance, ifconfig eth0 up causes eth0 to be activated.

down The counterpart to up, this deactivates the specified interface. Thus, ifconfig eth0 down causes eth0 to be deactivated if it is currently active.

netmask [addr] Using the "netmask" option allows you to set the network mask for a given interface. For instance, setting the network mask for eth0 could be done by entering ifconfig eth0 netmask 255.255.255.0.

broadcast [addr] When the "broadcast" option is accompanied by an address argument, as in ifconfig eth0 broadcast 192.168.2.255, then the broadcast address for the specified interface will be set.

[addr] Simply specifying an address with an interface name, as in ifconfig eth0 192.168.2.103, will set that interface's IP address.

Shortcuts

The ifconfig eth0 up command on most Linux systems can be abbreviated to ifup eth0. The same holds true for deactivating an interface, so that ifconfig eth0 down can be abbreviated as ifdown eth0. Some Linux systems will even have a further abbreviated command for cycling an interface's status called ifupdown, which quickly deactivates then reactivates an interface, though this is less common than the individual ifup and ifdown abbreviated commands.

More information

The "if" in ifconfig, and also in ifup, ifdown, and ifstatus, is an abbreviation of "interface". It is not related to the programming conditional "if". You can get more information about this utility by accessing its manpage, by entering man ifconfig at the command line.

Kalpana

30Nov2007 14:28

Re: ifconfig in Linux

can u pls let me know if it is possible to use "ifconfig" to change the hardwaer address and name of the interface...? If so pls let me know....
(P.S) when i try to change the hardware address using....
ifconfig eth1 hw ether 00:02:44:03:12:B1
I get some error messsage like "The device or resource is busy"... :confused:

sofprog66

17Jul2008 02:07

Re: ifconfig in Linux

The reason why it gives you "The device or resource is busy" is because the device or resource is currently in use, you should first somehow turn it off so that it is no longer in use and then you may change the name.

Kalpana

25Jul2008 14:31

Re: ifconfig in Linux

Thanks for the reply...
It is possible to change the hardware address after bringing down the interface using the command
"ifconfig <eth_interface_name> down" and