How to assign persistent network interface names on Debian

Problem:

You have configured the network in your Debian install via the /etc/network/interfaces file and everything seems to work, except the name of your configured network interface keeps changing after every reboot and that is resulting in the network being down. How do you assign persistent network interface name to fix this issue?

Solution:

Let’s assume that you are configuring an interface named eth0. We need to get the MAC address of this interface. To do so, open terminal emulator and run the following command,

ip link show

The above command will list all interfaces names and their MAC addresses. Note down the MAC address of the interface that you wish to rename. Let’s assume that the MAC address is b4:96:91:14:ae:5a.

Now we need to modify the /etc/network/interfaces file slightly. Your /etc/network/interfaces file currently should 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).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback
#
# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp
#
# This is an autoconfigured IPv6 interface
iface eth0 inet6 auto

In the above file, we need to change eth0 to something else, something more predictable that doesn’t conflict with the kernel’s naming schema. For this example, I’m going to rename eth0 to internal0. You can use any other name if you wish. The /etc/network/interfaces file will look something like the following after this change,

# 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
allow-hotplug internal0
iface internal0 inet dhcp
#
# This is an autoconfigured IPv6 interface
iface internal0 inet6 auto

Save the changes made. Next, create an empty file called /etc/systemd/network/10-persistent-net.link,

sudo touch /etc/systemd/network/10-persistent-net.link

Open it in your favorite text-editor and paste the following content to it,

[Match]
MACAddress=b4:96:91:14:ae:5a

[Link]
Name=internal0

Of course, you’ll need to change b4:96:91:14:ae:5a and internal0 above with the MAC address of the interface you are configuring and the new persistent name you wish to give to it.

Save the file and reboot the machine. Reboot is essential here for these changes to take effect.

I hope this will be of help to a soul or two out there.

Debian

Image courtesy Sohail & Hayderctee

 Date: January 19, 2023
 Tags:  how-to linux
 Comments: 

I don't have comments on this blog as they not only are difficult to manage, but are also prone to privacy and security risks.
Instead of leaving a comment, you could email me directly.

 Support: 

Liked what you just read? Please consider buying me a cup of coffee!

Previous:
⏪ An alternative method to upgrade to Ubuntu 22.04 LTS (Jammy Jellyfish)

Next:
How to spice up Grub2 boot menu screen with colors & image ⏩