how to configure a static IP address on Ubuntu Server
After a fresh install of Ubuntu Server, your system's network interface will probably be configured for DHCP. However, if you're setting up a server, you'll need to have a static IP address. This article shows you how to reconfigure your network interface to use a static IP address.
Contents |
tips and disclaimers
This procedure...
- ...was tested on Ubuntu Server 12.10. (It was adapted from an out-of-date procedure used on prior Ubuntu versions.)
- ...requires root access.
- ...might be easier if you can copy and paste from this article. For this reason, you should consider remote shelling into your server from the computer that you are reading this guide on.
- ...contains example values that you must adjust for your own circumstances. Don't blindly copy!
Step 1: Record current name servers.
Since your system is currently configured for DHCP, your DNS servers have probably already been configured. However, after you update your system to use a static IP address, that configuration will be lost. Therefore, before you switch to a static IP address, you should note the addresses of your current DNS servers.
To do this, have a look at contents of your /etc/resolv.conf file:
cat /etc/resolv.conf
Jot down the address (or addresses) after the nameserver label. You'll need these in Step 3.
Step 2: Specify the static IP address and network.
To specify a static IP address, edit the file /etc/network/interfaces.
sudo nano /etc/network/interfaces
Look for the definition of the primary interface, which is usually called eth0. Its current configuration might look something this:
# The primary network interface auto eth0 iface eth0 inet dhcp
Change the parameter "dhcp" to "static". Then, immediately underneath that line, insert the following lines, which are required to fully specify your static configuration. (Make sure you adjust parameters, as necessary, for your particular network.)
address 192.168.0.9 netmask 255.255.255.0 network 192.168.0.1 broadcast 192.168.0.255 gateway 192.168.0.1
For information about these and other configuration directives applicable in this file, consult the man page by issuing the command,
man interfaces
Keep /etc/network/interfaces open in your editor for the next step.
Step 3: Configure DNS.
Below the new configuration directives you just added, include the following:
dns-nameservers 192.168.0.1 dns-search sharkysoft.com
Substitute the name server addresses you recorded in Step 1, separated by a space. Also substitute your preferred DNS search suffixes (or just omit the line entirely, if you don't want any).
Step 4: Double-check and save.
When you are finished editing interfaces, it will probably 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 # The primary network interface auto eth0 iface eth0 inet static address 192.168.0.9 netmask 255.255.255.0 network 192.168.0.1 broadcast 192.168.0.255 gateway 192.168.0.1 dns-nameservers 192.168.0.1 dns-search sharkysoft.com
Don't fret if a few things outside of the area where you edited (for eth0) are different. Just make sure the important parts are right.
If you are satisfied with your edits, save the file and exit the editor.
Step 5: Restart networking.
Now it's time to apply your changes by restarting your network. Do this by issuing the following command:
/etc/init.d/networking restart
This will cause the file you edited to be re-read. It will also cause /etc/resolv.conf to be regenerated.
Step 6: Confirm results.
You can confirm that your static IP address went into effect by issuing the following command:
ifconfig
In the command output, you should see, among other things, your static IP address.
Next, test network connectivity by pinging a popular domain:
ping sharkysoft.com
(Use Ctrl+C to quit pinging.)
Finally, inspect the contents of your resolv.conf file:
cat /etc/resolv.conf
The contents of this file should have been regenerated. Verify that your DNS information is there.