Article was written using a Ubuntu server which is debian based. Other distros such as RedHat and SUSE may take different steps to configure networking.
If you require a static IP address for a Linux machine, you must configure a specific config file via the command line, there are GUI tools available which allow you to achieve this too.
So let’s start by first identifying the following:
- IP Address for the machine
- Netmask (AKA subnet mask)
- Default Gateway
- Broadcast Address
- Network Address
- Internal DNS Servers
To find your broadcast and network address use a subnet calculator
Once you have worked out the details above, you will then be ready to configure your machine. Please note it’s best to have physical access to the machine when doing the configuration, as doing so remotely can leave you disconnected permanently if you get something wrong.
Setting a static IP Address
We will do the configuration all from the command line (Terminal).
Identify the network interface you want to assign the IP Address to, to do this execute the following command:
You should see something similar to the image below:
As you can see this machine only has one physical interface, eth0 and one loopback. You will need to note down the interface name before continuing.
So let’s configure the interface, execute the following command:
sudo nano /etc/network/interfaces
You need to insert the details as shown in the screenshot below:
Once you have finished editing type Ctrl X and type Yes to save the configuration file. Even though we have edited the interface details it will not be live until we restart the networking services, which you can do via a reboot or by executing the following command:
sudo /etc/init.d/networking restart
You have now configured your linux machine with a static IP Address on interface eth0, but to confirm this has occurred execute the following command:
If you output as below you were successful:
You can also test connectivity by pinging your local gateway address.
ping 10.98.231.1 –c 4
Setting DNS Servers
DNS servers are required for name resolution.
So to start we will create a file called resolv.conf and will use google’s OpenDNS servers.
sudo nano /etc/resolv
Write the following into the config file:
Once you have edited type Ctrl X and type Yes to save the configuration file. You now have DNS resolution so pinging Google.com will work and so will normal web browsing.