Ubuntu ships with a number of graphical utilities to configure your network devices. This document is geared toward server administrators and will focus on managing your network on the command line.
Most Ethernet configuration is centralized in a single file,
/etc/network/interfaces
. If you have no Ethernet devices,
only the loopback interface will appear in this file, and it will look something
like this:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
address 127.0.0.1
netmask 255.0.0.0
If you have only one Ethernet device, eth0, and it gets its configuration from a DHCP server, and it should come up automatically at boot, only two additional lines are required:
auto eth0
iface eth0 inet dhcp
The first line specifies that the eth0 device should come up automatically when
you boot. The second line means that interface (“iface”) eth0
should have an IPv4 address space (replace “inet” with
“inet6” for an IPv6 device) and that it should get its
configuration automatically from DHCP. Assuming your network and DHCP server
are properly configured, this machine's network should need no further
configuration to operate properly. The DHCP server will provide the default
gateway (implemented via the route command), the
device's IP address (implemented via the ifconfig
command), and DNS servers used on the network (implemented in the
/etc/resolv.conf
file.)
To configure your Ethernet device with a static IP address and custom
configuration, some more information will be required. Suppose you want to
assign the IP address 192.168.0.2 to the device eth1, with the typical netmask
of 255.255.255.0. Your default gateway's IP address is 192.168.0.1. You would
enter something like this into /etc/network/interfaces
:
iface eth1 inet static
address 192.168.0.2
netmask 255.255.255.0
gateway 192.168.0.1
In this case, you will need to specify your DNS servers manually in
/etc/resolv.conf
, which should look something like this:
search mydomain.example
nameserver 192.168.0.1
nameserver 4.2.2.2
The search directive will append mydomain.example
to hostname queries in an attempt to resolve names to your network. For example,
if your network's domain is mydomain.example and you try to ping the host
“mybox”, the DNS query will be modified to
“mybox.mydomain.example” for resolution. The
nameserver directives specify DNS servers to be
used to resolve hostnames to IP addresses. If you use your own nameserver, enter it
here. Otherwise, ask your Internet Service Provider for the primary and secondary DNS
servers to use, and enter them into /etc/resolv.conf
as shown
above.
Many more configurations are possible, including dialup PPP interfaces, IPv6
networking, VPN devices, etc. Refer to man 5 interfaces
for more information and supported options. Remember that
/etc/network/interfaces
is used by the
ifup/ifdown scripts as a
higher level configuration scheme than may be used in some other Linux distributions,
and that the traditional, lower level utilities such as
ifconfig, route, and
dhclient are still available to you for ad hoc
configurations.
This section explains how to configure which nameserver to use when resolving IP addresses to hostnames and vice versa. It does not explain how to configure the system as a name server.
To manage DNS entries, you can add, edit, or remove DNS names
from the /etc/resolv.conf
file. A sample file is given below:
search com
nameserver 204.11.126.131
nameserver 64.125.134.133
nameserver 64.125.134.132
nameserver 208.185.179.218
The search key specifies the string which will be appended to an incomplete hostname. Here, we have configured it to com. So, when we run: ping ubuntu it would be interpreted as ping ubuntu.com.
The nameserver key specifies the nameserver IP address. It will be used to resolve a given IP address or hostname. This file can have multiple nameserver entries. The nameservers will be used by the network query in the same order.
If the DNS server names are retrieved dynamically from DHCP or PPPoE (retrieved from your ISP), do not add nameserver entries in this file. It will be overwritten. |
To manage hosts, you can add, edit, or remove hosts from
/etc/hosts
file. The file contains IP
addresses and their corresponding hostnames. When your
system tries to resolve a hostname to an IP address or
determine the hostname for an IP address, it refers to the
/etc/hosts
file before using the name
servers. If the IP address is listed in the
/etc/hosts
file, the name servers are
not used. This behavior can be modified by editing
/etc/nsswitch.conf
at your peril.
If your network contains computers whose IP
addresses are not listed in DNS, it is recommended that you
add them to the /etc/hosts
file.