Command Line Network Interface Configuration

You can configure a network interface from the command line using the basic Linux networking utilities. You configure your network client hosts with the command line by using commands to change your current settings or by editing a number of system files. Two commands, ifconfig and route, are used for network configuration. The netstat command displays information about the network connections.

/sbin/ifconfig ifconfig is used to configure your network interface. You can use it to

• Activate or deactivate your NIC or change your NIC's mode

• Change your machine's IP address, netmask, or broadcast address

• Create an IP alias to allow more than one IP address on your NIC

• Set a destination address for a point-to-point connection

You can change as many or as few of these options as you'd like with a single command. The basic structure for the command is as follows:

ifconfig [network device] options

Table 18.1 shows a subset of ifconfig options and examples of their uses.

Table 18.1. ifconfig Options

Create alias

Change IP address Change the netmask

Change the broadcast

Take interface down Bring interface up

Set NIC promiscuous Set multicasting mode Enable [disable]



[network device]

netmask [netmask] broadcast [address] down up (add IP address)

[-]promisc [ifconfig eth0 -promise]


[-]pointopoint eth0 pointopoint

Example ifconfig eth0:0_:[number]

ifconfig eth0

fconfig eth0 netmask

ifconfig eth0 broadcast

ifconfig eth0 down ifconfig eth0 up (ifconfig eth0

ifconfig eth0 promisc mode on [off]

ifconfig eth0_0n [off] allmulti [ifconfig eth0 -allmulti]

ifconfig_point-to-point address [ifconfig eth0 pointopoint_10.10.10.20]

The ifconfig man page shows other options that enable your machine to interface with a number of network types such as AppleTalk, Novell, IPv6, and others. Again, read the man page for details on these network types.


Promiscuous mode causes the NIC to receive all packets on the network. It is often used to sniff a network. Multicasting mode enables the NIC to receive all multicast traffic on the network.

If no argument is given, ifconfig displays the status of active interfaces. For example, the output of ifconfig, without arguments and one active and configured NIC, looks similar to this: $ ifconfig eth0 Link encap:Ethernet HWaddr 00:0F:EA:B2:53:85

inet addr: Bcast: Mask: inet6 addr: fe80::20f:eaff:feb2:5385/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:471 errors:0 dropped:0 overruns:0 frame:0 TX packets:695 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000

RX bytes:160637 (156.8 KiB) TX bytes:86193 (84.1 KiB) Interrupt:185 Base address:0x6000

lo Link encap:Local Loopback inet addr: Mask:

inet6 addr: ::1/128 Scope:Host


RX packets:19 errors:0 dropped:0 overruns:0 frame:0

TX packets:19 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

The output is easily understood. The inet entry displays the IP address for the interface. up signifies that the interface is ready for use, broadcast denotes that the interface is connected to a network that supports broadcast messaging (ethernet), running means that the interface is operating, and loopback shows which device (lo) is the loopback address. The maximum transmission unit (MTU) on etho is 1500 bytes. This determines the size of the largest packet that can be transmitted over this interface (and is sometimes "tuned" to other values for performance enhancement). MeTRic is a number from 0 to 3 that relates to how much information from the interface is placed in the routing table. The lower the number, the smaller the amount of information.

The ifconfig command can be used to display information about or control a specific interface using commands as listed in Table 18.1. For example, to deactivate the first Ethernet device on a host, use the ifconfig command, the interface name, and the command down like so:

$ sudo ifconfig eth0 down

You can also configure and activate the device by specifying a hostname or IP address and network information. For example to configure and activate ("bring up") the etho interface with a specific IP address, use the ifconfig command like this:

$ sudo ifconfig eth0 netmask up

If you have a host defined in your system's /etc/hosts file (see the section "Network Configuration Files" later in this chapter), you can configure and activate the interface according to the defined hostname like this:

$ sudo ifconfig eth0 up

Read the next section to see how to configure your system to work with your LAN.


The second command used to configure your network is the route command. route is used to build the routing tables (in memory) implemented for routing packets as well as displaying the routing information. It is used after ifconfig has initialized the interface. route is normally used to set up static routes to other networks via the gateway or to other hosts. The command configuration is like this:

$ route [options] [commands] [parameters]

To display the routing table, use the route command with no options. The display will look similar to this:

$ route

Kernel IP routing table Destination Gateway

default .


Flags Metric Ref U 0 0

Use Iface

0 eth0 0 eth0

In the first column, Destination is the IP address (or, if the host is in /etc/hosts or /etc/networks, the hostname) of the receiving host. The default entry is the default gateway for this machine. The Gateway column lists the gateway that the packets must go through to reach their destination. An asterisk (*) means that packets go directly to the host. Genmask is the netmask. The Flags column can have several possible entries. In our example, u verifies that the route is enabled and g specifies that Destination requires the use of a gateway. The Metric column displays the distance to the Destination. Some daemons use this to figure the easiest route to the Destination. The Ref column is used by some UNIX flavors to convey the references to the route. It isn't used by Linux. The Use column indicates the number of times this entry has been looked up. Finally, the iface column is the name of the interface for the corresponding entry.

Using the -n option to the route command will give the same information, substituting IP addresses for names and asterisks (*), and looks like this:

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

The route command can add to the table using the add option. With the add option, you can specify a host (-host) or a network (-net) as the destination. If no option is used, the route command assumes that you are configuring the host issuing the command. The most common uses for the route command are to add the default gateway for a host, for a host that has lost its routing table, or if the gateway address has changed. For example, to add a gateway with a specific IP address, you could use the following:

$ sudo route add default gw

Note that you could use a hostname instead of an IP address if desired. Another common use is to add the network to the routing table right after using the ifconfig command to configure the interface. Assuming that the entry from the previous examples was missing, replace it using the following command:

$ sudo route add -net netmask dev eth0

You also can use route to configure a specific host for a direct (point-to-point) connection. For example, say that you have a home network of two computers. One of the computers has a modem through which it connects to your business network. You typically work at the other computer. You can use the route command to establish a connection through specific hosts using the following command:

$ sudo route add -host gw

The preceding example makes the computer with the modem the gateway for the computer you are using. This type of command line is useful if you have a gateway or firewall connected to the Internet. There are many additional uses for the route command, such as manipulating the default packet size. See the man page for those uses.


The netstat command is used to display the status of your network. It has several parameters that can display as much or as little information as you prefer. The services are listed by sockets (application-to-application connections between two computers). You can use netstat to display the information in Table 18.2.

Table 18.2. netstat Options

Option Output

-g Displays the multicast groups configured

-i Displays the interfaces configured by ifconfig

Option Output

Lists a summary of activity for each protocol Gives verbose output, listing both active and inactive sockets Updates output every second (good for testing and troubleshooting) Gives verbose output for active connections only

Displays information from the route cache and is good for looking at past connections

Several other options are available for this command, but they are used less often. As with the route command, the man page can give you details about all options and parameters.

Was this article helpful?

0 0

Post a comment