what is the difference between eth1 and eno1?

Solution 1:

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

Solution 2:

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:
https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/
https://wiki.debian.org/NetworkInterfaceNames
https://en.wikipedia.org/wiki/Consistent_Network_Device_Naming