在Linux中通过接口名称识别物理网络设备

在Linux中通过接口名称识别物理网络设备

我有多个 USB 转以太网设备,插在同一台电脑上。

有没有办法识别哪一个通过 usb 端口/等映射到哪个 eth* 网络接口?

我尝试在 lsusb 和 /proc 中查找,但没有发现任何有用的东西。

答案1

接口名称和设备之间的映射可以在/sys/class/net/

例子:

$ ls -la /sys/class/net
total 0
drwxr-xr-x  2 root root 0 Oct 29 12:49 .
drwxr-xr-x 56 root root 0 Oct 29 12:49 ..
lrwxrwxrwx  1 root root 0 Oct 29 12:49 eth0 -> ../../devices/pci0000:00/0000:00:19.0/net/eth0
lrwxrwxrwx  1 root root 0 Oct 29 12:49 lo -> ../../devices/virtual/net/lo

正如符号链接所显示的,我的eth0位于 PCI 总线上,设备为 0x19。

答案2

如果您的系统使用 udev 进行设备管理,则可以使用以下命令获取设备 ID:

grep -i eth /var/log/udev

只要您的操作系统将 udev 活动日志存储在那里;就可以在必要时进行调整。

答案3

您可以拔下它然后重新插入,然后检查 dmesg 中的最新消息。

相关内容