This is in regard to linux, but if anyone knows of a general *nix method that would be good.
I booted a system yesterday with an ethernet cable plugged in. "NetworkManager" is not installed, so once it started I went to look for the name of the ethernet interface with ifconfig
to start a DHCP client manually, but it did not show anything other than lo
.
The NIC was listed via lspci
, and the appropriate kernel driver was loaded. The system normally uses wifi, and I could remember the interface name for that was wlan0
. When I tried ifconfig wlan0 up
, wlan0
appeared. But the only ethernet interface names I could remember were eth[N]
and em[N]
— neither of which worked.
This document refers to "predictable interface names" but does not do a good job of explaining what they might be in simple terms. It does refer to a piece of source code which implies the name in this case might be deduced from the the PCI bus and slot numbers, which seems like an unnecessarily complicated hassle.
Other searching around led me to believe that this might be determined by systemd
in conjunction with udev
, but there are almost 100 files in /usr/lib/udev/rules.d
and spending an hour trying to determine where (and if) there's a systemd config file for this also seems ridiculous.
It would also be nice to know for certain that they are available, not just how they might be named if they are, so I can rule out hardware problems, etc. Isn't there a simple way to find the names of available network interfaces on linux?
Best Answer
The simplest method I know to list all of your interfaces is
EDIT
If you're on a system where that has been made obsolete, you can use