This is note about getting the “Predictable Network Interface Names” in Linux.
Usually the ‘name’ should start with ‘enp’ or ‘ens’ (e.g. enp9s0).
- en = Ethernet
- p9 = PCI slot 9
- s0 = Port 0
Another example: ens3
- en = Ethernet
- s = Hotplug slot
- 3 = Port 3
Some diffs:
- enoX: onboard device index number
- ensX: Usually means PCI-E hotplug slot number
- enpXsY: PCI bus number + port number
- ethX: Traditional pattern, not really predictable
- wlanX: Wireless
Summary
System | Primary Command(s) in Terminal | GUI Location (if applicable) | Notes |
---|---|---|---|
Ubuntu | ip link show , ip a , nmcli device status | System Settings → Network | Uses predictable names (e.g., enpXsY) or traditional (ethX). |
Fedora | ip link show , ip a , nmcli device status | Settings → Network | Uses predictable names. net-tools (for ifconfig) may not be default. |
Debian | ip link show , ip a | Desktop dependent (e.g., GNOME Settings → Network) | Uses predictable names. |
Alpine VM | ip link show , ip a | N/A (typically headless) | Lightweight; ifconfig via apk add net-tools. |
TrueNAS SCALE | ip link show , ip a | Web UI: Network → Interfaces | Linux-based. |
TrueNAS CORE | ifconfig -a | Web UI: Network → Interfaces | FreeBSD-based; names like em0, igb0. |
Proxmox VE | ip link show , ip a | Web UI: Node → System → Network | Debian-based; predictable names or ethX. /etc/network/interfaces. |
Ubuntu, Debian, Fedora
Newer (like 20.04, 22.04, 24.04 +)
ip link show
# Or, use the one getting the IP addr:
ip addr
Older (not sure the specific versions)
ifconfig -a
Or check the kernel:
ls /sys/class/net
Alpine VM
# Install required pkg first
apk add iproute2
# Then use the same command
ip link show
TrueNAS
Core:
ifconfig
Scale:
ip link show
# or, check kernel
ls /sys/class/net
Proxmox
UI or after installation:
# Contains the interfaces already explicitly configured.
cat /etc/network/interfaces
Because proxmox is based on debian:
# This works
ls /sys/class/net
# This also works
ip link show