Configure static IP address on Ubuntu 16.04 LTS Server

Ubuntu 16.04 has been out for just over a month now, and I’m in the process of upgrading some boxen. In some cases I’ve been completely reinstalling them for that clean fresh feel, and find myself once again having to configure static IP addresses.

Doing this can be problematic (made worse by the fact that even the official Ubuntu LTS documentation doesn’t give correct advice), particularly when it comes to DNS resolution, and in my case, a very-old-school habit of blindly wanting to edit the /etc/resolv.conf file which you really should not be doing any more these days.

Step 1. Edit the /network/interfaces file

sudo nano /etc/network/interfaces

sudo nano /etc/network/interfacesThe interfaces file is where you need to change from the default “dhcp” setting to add some information about the “static” IP address that you want to configure.

In this case, look for the line in the file that says “# The primary network interface” and directly beneath this you’ll see something like (the default DHCP configuration):

auto ens160
iface ens160 inet dhcp

If you’ve been using previous versions of Ubuntu you might have noticed that the interface name above “ens160” looks a bit odd. It used to be called “eth0” or “eth1”, but as from Ubuntu 15.10 the interface name is now allocated based on a few other factors – read more about that here if you’re interested.

Simply comment, remove or edit the line that says ends with “dhcp” and add the following information (here’s an example only):

iface <interface> inet static

Next you’ll want to add the nameservers by adding the line “dns-nameservers” followed by a list of IP addresses.  A lot of people use Google’s public DNS, or if you have details from your service provide use them instead.


PRO-TIP: Double-check the file again, and ensure all details are correct, before proceeding.  If you are configuring a remote system you could easily cut yourself off if you get it wrong.

Save the file, and you’re done.

Step 2. Restart the networking service (or reboot)

Once you are confident the change has been made, and if you don’t want to reboot you can just restart the networking service.

sudo /etc/init.d/networking restart

After doing this, and provided you don’t get any errors, your primary network interface should now be configured with the static IP address details you have provided.

Failing that, a reboot will also do the trick quite nicely, and with the current version of 16.04 I suspect there’s a bug that is causing “ifconfig -a” not to update unless you perform a reset.

sudo reboot

Good luck, and may your boxen be correctly addressed.

13 thoughts on “Configure static IP address on Ubuntu 16.04 LTS Server

  1. yo lo uso asi

    iface em1 inet static

    • Hello!

      Excuse me in 16.4 I under/etc/network/interfaces configured in the static IP, I again using ifconfig IP display is another IP.In interfaces configured to complete is invalid, what reason is this

  2. Thanks for the g8 article . Surprisingly I don’t have
    iface ens160 inet dhcp
    inside this path etc/network/interfaces. I have 16.04 ubuntu.

    • Thank you 🙂

      The “ens160” reference for the Ethernet interface can vary from system to system, so just substitute with whatever you have.

  3. It’s the oddest thing. If I edit the network adapters config file using a the CLI or SSH it does not work and I lose all network connectivity, the interface actually disappears. If I install a GUI and Sudo edit the file (open terminal in the GUI, type ‘sudo nautilus’ then browse to the file’s location and edit) it works. I scrapped 4 VMs before finding this “recipe.” Weird or what?

  4. I tried to restart networking by doing but the old DHCP address persisted. Rebooting gave me the new static address however.
    Is “service” deprecated? If so, invoking it silently does nothing – no diagnostic.

    • Yes “service” isn’t the right thing to use anymore, you could also try this:

      sudo systemctl restart NetworkManager.service

  5. I followed these steps but still gets host unreachable anytime I ping using the configured IP address to see my ubuntu server can be reached. Please help

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s