What is the difference between the network interface name ethX (e.g. eth1) and enoX (e.g. eno1), given by ifconfig or lshw ?


3 Answers 3


eth1 is the onboard Ethernet (wired) adapter on your Linux machine.

eno1 is your embedded NIC (onboard Network Interface Card). It is a regular physical network interface.

You can use this link as reference.

This is a way of representing the Ethernet names. If machine has already eth1 in its config file for the second adapter it will use eno1 rather than using eth2.

They both are same. Its just a name of config file. You can also change the name eno1 to eth2 by doing a simple Google search.

Here is the link for changing the same: Click

  • 6
    You used eno1 twice; and did not use eth1.
    – jww
    Sep 26, 2018 at 4:44
  • 4
    Why is this the accepted answer? It's a bad copy and paste of other Stackoverflow answers and does not even give a good explanation. What is the difference between "onboard Ethernet (wired) adapter" and "embedded NIC (onboard Network Interface Card"? There is none. The statement "If machine has already eth1 in its config file for the second adapter it will use eno1 rather than using eth2" is just wrong! Why make things up?
    – thomas
    Jun 17, 2021 at 23:15

The difference between eth0 and eno1 is the method/scheme the Linux kernel used to assign a name the Ethernet interface in question.

In the 1990s, Linux assigned the names of the form ethX (where X is a numeral) to Ethernet network interfaces.

However, on a machine with multiple network interfaces, an interface would not receive the same name consistently across reboots due to boot-time race conditions.

Consequently, a new naming scheme was introduced. Most commonly (at least in my experience), these names were of the form enpXsY, where X and Y are numerals. These interface names were consistent across boots (provided no hardware was added, removed, or moved to a different slot between boots).

I suspect (but have not been able to confirm) that interface names of the form enoX or ensY are more likely to appear when the machine boots via UEFI (as opposed to booting via legacy BIOS).

Freedesktop.org says that as of Systemd v197:

The following different naming schemes for network interfaces are now supported by udev natively:

  1. Names incorporating Firmware/BIOS provided index numbers for on-board devices (example: eno1)
  2. Names incorporating Firmware/BIOS provided PCI Express hotplug slot index numbers (example: ens1)
  3. Names incorporating physical/geographical location of the connector of the hardware (example: enp2s0)
  4. Names incorporating the interfaces's MAC address (example: enx78e7d1ea46da)
  5. Classic, unpredictable kernel-native ethX naming (example: eth0)

You may also find additional information at these links:

  • 3
    This should be the accepted answer!
    – thomas
    Jun 17, 2021 at 23:17

Consistent Network Device Naming

Red Hat Enterprise Linux 7 introduces a new network naming scheme as part of systemd (Also in Ubuntu 16x, 17x, 18x)

Onboard interfaces at firmware index numbers eno[1-N]

Then, eno1, eno2, etc, are embedded network interfaces (usually we can see them on HP Proliant servers, among others)

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .