/etc/network/interfaces Ubuntu Linux networking example

Q. Can you explain how to setup network parameters such as IP address, subnet, dhcp etc using /etc/network/interfaces file?

A. /etc/network/interfaces file contains network interface configuration information for the both Ubuntu and Debian Linux. This is where you configure how your system is connected to the network.

Defining physical interfaces such as eth0

Lines beginning with the word “auto” are used to identify the physical interfaces to be brought up when ifup is run with the -a option. (This option is used by the system boot scripts.) Physical interface names should follow the word “auto” on the same line. There can be multiple “auto” stanzas. ifup brings the named inter faces up in the order listed. For example following example setup eth0 (first network interface card) with 192.168.1.5 IP address and gateway (router) to 192.168.1.254:iface eth0 inet static address 192.168.1.5 netmask 255.255.255.0 gateway 192.168.1.254

Examples: How to set up interfaces

Following is file located at /usr/share/doc/ifupdown/examples/network-interfaces, use this file as reference (don’t forget interfaces man pages for more help):

######################################################################
# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
#
# A "#" character in the very first column makes the rest of the line
# be ignored. Blank lines are ignored. Lines may be indented freely.
# A "\" character at the very end of the line indicates the next line
# should be treated as a continuation of the current one.
#
# The "pre-up", "up", "down" and "post-down" options are valid for all
# interfaces, and may be specified multiple times. All other options
# may only be specified once.
#
# See the interfaces(5) manpage for information on what options are
# available.
######################################################################
# We always want the loopback interface.
#
# auto lo
# iface lo inet loopback
# An example ethernet card setup: (broadcast and gateway are optional)
#
# auto eth0
# iface eth0 inet static
# address 192.168.0.42
# network 192.168.0.0
# netmask 255.255.255.0
# broadcast 192.168.0.255
# gateway 192.168.0.1
# A more complicated ethernet setup, with a less common netmask, and a downright
# weird broadcast address: (the "up" lines are executed verbatim when the
# interface is brought up, the "down" lines when it's brought down)
#
# auto eth0
# iface eth0 inet static
# address 192.168.1.42
# network 192.168.1.0
# netmask 255.255.255.128
# broadcast 192.168.1.0
# up route add -net 192.168.1.128 netmask 255.255.255.128 gw 192.168.1.2
# up route add default gw 192.168.1.200
# down route del default gw 192.168.1.200
# down route del -net 192.168.1.128 netmask 255.255.255.128 gw 192.168.1.2
# A more complicated ethernet setup with a single ethernet card with
# two interfaces.
# Note: This happens to work since ifconfig handles it that way, not because
# ifup/down handles the ':' any differently.
# Warning: There is a known bug if you do this, since the state will not
# be properly defined if you try to 'ifdown eth0' when both interfaces
# are up. The ifconfig program will not remove eth0 but it will be
# removed from the interfaces state so you will see it up until you execute:
# 'ifdown eth0:1 ; ifup eth0; ifdown eth0'
# BTW, this is "bug" #193679 (it's not really a bug, it's more of a
# limitation)
#
# auto eth0 eth0:1
# iface eth0 inet static
# address 192.168.0.100
# network 192.168.0.0
# netmask 255.255.255.0
# broadcast 192.168.0.255
# gateway 192.168.0.1
# iface eth0:1 inet static
# address 192.168.0.200
# network 192.168.0.0
# netmask 255.255.255.0
# "pre-up" and "post-down" commands are also available. In addition, the
# exit status of these commands are checked, and if any fail, configuration
# (or deconfiguration) is aborted. So:
#
# auto eth0
# iface eth0 inet dhcp
# pre-up [ -f /etc/network/local-network-ok ]
#
# will allow you to only have eth0 brought up when the file
# /etc/network/local-network-ok exists.
# Two ethernet interfaces, one connected to a trusted LAN, the other to
# the untrusted Internet. If their MAC addresses get swapped (because an
# updated kernel uses a different order when probing for network cards,
# say), then they don't get brought up at all.
#
# auto eth0 eth1
# iface eth0 inet static
# address 192.168.42.1
# netmask 255.255.255.0
# pre-up /path/to/check-mac-address.sh eth0 11:22:33:44:55:66
# pre-up /usr/local/sbin/enable-masq
# iface eth1 inet dhcp
# pre-up /path/to/check-mac-address.sh eth1 AA:BB:CC:DD:EE:FF
# pre-up /usr/local/sbin/firewall
# Two ethernet interfaces, one connected to a trusted LAN, the other to
# the untrusted Internet, identified by MAC address rather than interface
# name:
#
# auto eth0 eth1
# mapping eth0 eth1
# script /path/to/get-mac-address.sh
# map 11:22:33:44:55:66 lan
# map AA:BB:CC:DD:EE:FF internet
# iface lan inet static
# address 192.168.42.1
# netmask 255.255.255.0
# pre-up /usr/local/sbin/enable-masq $IFACE
# iface internet inet dhcp
# pre-up /usr/local/sbin/firewall $IFACE
# A PCMCIA interface for a laptop that is used in different locations:
# (note the lack of an "auto" line for any of these)
#
# mapping eth0
# script /path/to/pcmcia-compat.sh
# map home,*,*,* home
# map work,*,*,00:11:22:33:44:55 work-wireless
# map work,*,*,01:12:23:34:45:50 work-static
#
# iface home inet dhcp
# iface work-wireless bootp
# iface work-static static
# address 10.15.43.23
# netmask 255.255.255.0
# gateway 10.15.43.1
#
# Note, this won't work unless you specifically change the file
# /etc/pcmcia/network to look more like:
#
# if [ -r ./shared ] ; then . ./shared ; else . /etc/pcmcia/shared ; fi
# get_info $DEVICE
# case "$ACTION" in
# 'start')
# /sbin/ifup $DEVICE
# ;;
# 'stop')
# /sbin/ifdown $DEVICE
# ;;
# esac
# exit 0
# An alternate way of doing the same thing: (in this case identifying
# where the laptop is is done by configuring the interface as various
# options, and seeing if a computer that is known to be on each particular
# network will respond to pings. The various numbers here need to be chosen
# with a great deal of care.)
#
# mapping eth0
# script /path/to/ping-places.sh
# map 192.168.42.254/24 192.168.42.1 home
# map 10.15.43.254/24 10.15.43.1 work-wireless
# map 10.15.43.23/24 10.15.43.1 work-static
#
# iface home inet dhcp
# iface work-wireless bootp
# iface work-static static
# address 10.15.43.23
# netmask 255.255.255.0
# gateway 10.15.43.1
#
# Note that the ping-places script requires the iproute package installed,
# and the same changes to /etc/pcmcia/network are required for this as for
# the previous example.
# Set up an interface to read all the traffic on the network. This
# configuration can be useful to setup Network Intrusion Detection
# sensors in 'stealth'-type configuration. This prevents the NIDS
# system to be a direct target in a hostile network since they have
# no IP address on the network. Notice, however, that there have been
# known bugs over time in sensors part of NIDS (for example see
# DSA-297 related to Snort) and remote buffer overflows might even be
# triggered by network packet processing.
#
# auto eth0
# iface eth0 inet manual
# up ifconfig $IFACE 0.0.0.0 up
# up ip link set $IFACE promisc on
# down ip link set $IFACE promisc off
# down ifconfig $IFACE down
# Set up an interface which will not be allocated an IP address by
# ifupdown but will be configured through external programs. This
# can be useful to setup interfaces configured through other programs,
# like, for example, PPPOE scripts.
#
# auto eth0
# iface eth0 inet manual
# up ifconfig $IFACE 0.0.0.0 up
# up /usr/local/bin/myconfigscript
# down ifconfig $IFACE down

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.

Your support makes a big difference:

I have a small favor to ask. More people are reading the nixCraft. Many of you block advertising which is your right, and advertising revenues are not sufficient to cover my operating costs. So you can see why I need to ask for your help. The nixCraft takes a lot of my time and hard work to produce. If everyone who reads nixCraft, who likes it, helps fund it, my future would be more secure. You can donate as little as $1 to support nixCraft:

49 comment

Thanks for the info I struggled forever with wierd behaviour after reboot with my NIC until I found this info. I didn’t even know this file existed and although everything si not fixed with the NIC atleast all apps poin to the right interface and it holds an IP address instead of jumpin to dhcp all the time or shoeing “The interface does not exist” Very annoying message that

Every time I add the following lines, Ubuntu takes a long time to show the logon screen, and the nic is down after logon:

auto eth0 iface eth0 inet dhcp

Without these lines, everything works fine, but I’m trying to add these lines in an attempt to fix the following problem with logons via Active Directory accounts. (Whenever the pc is rebooted, users get a “no logon servers available” error and can’t logon via AD unless I logon a local account and manually restart samba and winbind in the terminal. I’m under the impression that adding these lines to “/etc/network/interfaces” may bring up dhcp sooner and get the pc on the network before samba and winbind start.)

In any case, the lines above seem to mess things up even more, but if anyone has any ideas . . .

I just installed ubuntu 8.04, trying to manually enter the network configuration, but ubuntu doesn’t show up any nic card and manuall static ip configuration doesn’t work, I have installed CENTos on different machine, usually it shows something like eth0. One more thing, I am able to connect to internet/Lan if I choose “roaming profile” – any help is appreciated..

Hey, I had a question, I am trying to setup a Ubuntu 8.10 server with my PC on a WLAN. I was just wondering how to set it up since I have WPA2 Personal, AES encrypted WLAN in the middle. I would like to be abe to connect it to that WLAN, how do I configure it?

How can I extend the two interface on one NIC example above to bridge a set of virtual servers on a host machine with the two interfaces on two different networks? Am I looking for a bridge setup or is it more suited to tun/tap? Here’s where I’ve started: auto eth0 eth0:1 # physical network connected to my ISP router iface eth0 inet static address 192.168.1.50 network 192.168.1.0 netmask 255.255.255.0 gateway 192.168.1.254

I think you are very sure that is indeed true. Though I actually don’t even know about the new version i can tell you 1 big problem you missed out. We don’t use gnome, or kde, … Sometimes things are best left to the professionals…

ubuntu has not abandoned /etc/network/interfaces, NetworkManager just handles interfaces NOT mentioned in that file.

However, I’m by far no expert, using ubuntu for years, starting my first ubuntu-server. I don’t want much (SSH from Internet to my Machine, and from there in the network to my desktop) and it works sometimes.

I only configured interfaces, no bridge, no route. eth1 is internet (router), eth0 network per dhcp (router). How should i proceed?

Does anyone know if there exists a way to test a large file full or static IP aliases (about 30) and custom, static routes (about 80) for conflicts or issues without doing a network restart (and risking the interfaces not coming back up correctly)?

I had a similar issue. I ended up searching for the settings in my home directory with a command like this: grep -R . I found a file called all in my home directory with contents similar to /etc/network/interfaces. Deleting solved my problem.

A question for the “interfaces” experienced folks – I have a wireless network attached to a router with a gateway, and I want to use the wired connection (configured manually to a specific IP address) on a LAN that has no gateway (just a switch and a bunch of local devices talking UDP to each other). Linux seems to prevent the wlan from accessing anything as it seems to take the gateway setting only from the eth0. If I use the wlan gateway in the eth0 setting – no joy. Any suggestions?