我如何知道Linux内核可以识别哪些networking接口设备?

我一直在使用Debian Linux在虚拟机(VirtualBox)下工作,并注意到在使用当前虚拟机configuration的情况下,在安装过程中在/ etc / network / interfaces中configuration的EtherNet设备是eth2(我通常预计eth0 ,eth1等)。 我也注意到在/ dev目录中似乎没有任何ethX设备文件。 这一切都让我想知道,在自动检测到支持networking的设备的configuration中,可以知道内核分配给这些设备的名称。 我认为/ proc文件系统中有一些东西,但到目前为止,我一直无法看到任何特定的东西。

您可以通过运行来查看所有联网设备:

ifconfig -a 

debugging以太网驱动程序的另一个技巧是看dmesg:

 dmesg|less 

你会看到每个驱动程序加载和创build以太网设备。

你提到你的以太网设备改为eth2。 你是否复制或移动虚拟机? 通常,当您制作一个虚拟机的副本时,它将重新创buildMAC地址,以免与前一副本发生冲突。 如果发生这种情况, udev会为“新卡”分配另一个eth *设备,并保存之前“丢失”卡的设备。 这些规则存储在:

 /etc/udev/rules.d/ 

通常在名为## – persistant-net.rules的文件中。 您可以安全地删除存储在该文件中的分配并重新启动以重新分配以太网设备。