Linux is a varied operating system with myriad ways of accomplishing a single task. Here is the cleanest, quickest, way I use to set a static IP for Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-96-generic x86_64).
sudo nano /etc/network/interfaces
After entering your password you will be presented with a nano session showing the current configuration of your interfaces. If this is a fresh install you’ll see something like this.
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto enp0s3 iface enp0s3 inet dhcp
Note! My interface is enp0s3 but yours may have a different name.
Comment out the current configuration for the interface you want to set to a static IP and edit in the new information.
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback # The primary network interface #auto enp0s3 #iface enp0s3 inet dhcp auto enp0s3 iface enp0s3 inet static address 10.10.10.20 netmask 255.255.255.0 gateway 10.10.10.3 network 10.10.10.0 dns-nameservers 10.10.10.3
In this example I have set it to:
|auto enp0s3||Automatically bring the interface online|
|iface enp0s3 inet static||Told the interface it will use a static IP|
|address 10.10.10.20||Set the static IP I want this VM to use|
|netmask 255.255.255.0||Set the subnet mask|
|gateway 10.10.10.3||Set the IP of the gateway to other networks|
|network 10.10.10.0||Set the network address|
|dns-nameservers 10.10.10.3||Set the DNS server to the router’s IP|
The simplest way to test the configuration is to reboot the machine but you can turn the interface off and back on again if you know the commands for your specific version of Linux.