如何找到网络接口后面的内核模块?

Mat*_*ner 21 kernel networking interface

如何找出用于任何给定网络接口的内核模块?

Flo*_*sch 22

在命令行运行

sudo lshw -C network 
Run Code Online (Sandbox Code Playgroud)

对于每个网络接口,您都会得到一个以*-network. 每个部分都有logical name:一行包含接口名称和configuration:一行包含驱动程序和一些其他信息。


Jer*_*err 16

您可以查询 sysfs 来告诉您这些信息。要判断网络接口正在使用哪个驱动程序:

ls -l /sys/class/net/<devname>/device/driver
Run Code Online (Sandbox Code Playgroud)

... 哪里<devname>有类似的东西eth0。此driver目录将是 sysfs 中驱动程序节点的符号链接。

要获取提供该驱动程序的模块的名称:

ls -l /sys/class/net/<devname>/device/driver/module
Run Code Online (Sandbox Code Playgroud)

...这个module目录将是 sysfs 中模块节点的符号链接。


pev*_*vik 6

恕我直言,脚本最好使用 sysfs 信息(如 Jeremy Kerr 所示),但要了解更多信息:

ethtool -i IFACE_NAME
Run Code Online (Sandbox Code Playgroud)

例如:

$ ethtool -i eth0
driver: 8139cp
version: 1.3
firmware-version: 
bus-info: 0000:00:07.0
supports-statistics: yes
supports-test: no
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no
Run Code Online (Sandbox Code Playgroud)