How to set up a static IP on Debian 11 Linux?
This is a step-by-step guide on how to set up a static IP on Linux servers running Debian 11.
Important Note
I am aware that Debian 11 is not a very recent distribution. Unfortunately, on some of my mini-laboratory equipment, such as the Pine A64, an alternative to Raspberry Pi, which is less recent, this is the only version of Linux I have managed to run stably. I make this observation because, in more modern distributions, this configuration can be done more easily and differently from what is shown in this tutorial.
To set up a static IP on Debian 11 or previous Linux distributions, we need to follow these steps:
-
Log in to our remote Server. For this example, we will connect to the Matrix server with IP
192.168.1.45through port22(default port):localhost:~$ ssh shadow@192.168.1.45 -
Before modifying any configuration, we proceed to backup the file to be changed:
shadow@matrix:~$ sudo cp /etc/network/interfaces ~/interfaces.20230406.bk # I like to use the date in the backup file name to know how old the backup is. -
We need to identify the network adapter we want to modify. For this, we can use the
ipapplication.shadow@matrix:~$ ip -c link showThe
linkoption will help us identify the available network devices on the equipment. The-coption enables the terminal to return the results in color.From the list returned, we must identify the interface we want to modify to assign the IP. If we want more information about the interface, we can change the
linkoption to theaddroption. This will return the details of the IP protocol of the interface.shadow@matrix:~$ ip -c addr show eth0 -
We proceed to modify the network file that manages the interfaces. We will use
vimas our preferred editor:shadow@matrix:~$ vim /etc/network/interfaces -
The default file will show several lines of configuration of each of the network interfaces on the equipment. We will only update the data related to the interface we want to modify, in this case,
eth0:... # Let's find the line where our interface is located allow-hotplug eth0 iface eth0 int dhcpWe replace the previous two lines with the following configuration::
auto eth0 iface eth0 inet static address 192.168.1.25 # IP address we want to assign netmask 255.255.255.0 # 24-bit mask gateway 192.168.1.1. # IP address of the main router dns-nameservers 192.168.1.1 1.1.1.1 8.8.8.8We save our changes. In
vim, it would be:escthen:x. -
We proceed to restart the network services to reflect the changes.
shadow@matrix:~$ sudo systemctl restart networking.service -
We proceed to validate that the IP has been assigned using the following command shown above:
shadow@matrix:~$ ip -c addr show eth0If the result reflects the new IP, we have successfully completed our update.
Fun Facts
My Server does not have the reboot and shutdown applications.
Something that caught me a little off guard on this server was realizing that it did not have the reboot and shutdown applications to restart or power off my machine.
Well, it's interesting and important to know that we can achieve the same goal using systemctl. To restart the machine, we use the following command:
shadow@matrix:~$ systemctl reboot
If we only want to power off the server, we use the following:
shadow@matrix:~$ systemctl poweroff
I hope this tutorial is useful to you.
Happy Hacking!