sysfs/procfs의 정보를 통해 가상 네트워크 인터페이스 뒤에 있는 커널 모듈을 찾습니다.

sysfs/procfs의 정보를 통해 가상 네트워크 인터페이스 뒤에 있는 커널 모듈을 찾습니다.

가상 네트워크 인터페이스 뒤에 있는 커널 모듈을 찾고 싶습니다(예: veth,dummy ,아니요물리적 네트워크 카드). 그것은 간단합니다 ethtool:

$ ethtool -i ltp_ns_veth2 |grep driver
driver: veth

하지만 나는 그것에 의존하고 싶지 않습니다. 물리적 네트워크 카드용 모듈을 찾을 수 있다는 것을 알고 있습니다.

$ basename $(readlink -f /sys/class/net/eth0/device/driver/module)
e1000

device하지만 폴더에 대한 링크 가 없기 때문에 가상 장치에서는 작동하지 않습니다 .

/sys외부 도구가 필요하지 않기 때문에 파싱을 통해 정보를 얻을 수 있으면 좋을 것 같습니다 .

답변1

dmesg | grep eth이는 인터페이스 이름에 eth가 포함된다는 것을 알고 있는 경우에 작동합니다.

[root@psybox ~]# dmesg | grep -i eth
[    2.009028] vmxnet3 0000:03:00.0 eth0: NIC Link is Up 10000 Mbps

두 번째는 운전자를 보여줍니다.vmxnet3.

답변2

내가 가장 좋아하는 방법은 실용적인 것입니다 ethtool. 커널 모듈 이름을 정확하게 표시합니다.

ethtool -i $IFACE | grep driver

iproute2장치 유형을 표시할 수 있습니다. 드라이버 이름은 아니지만 일반적으로 동일합니다.

 ip -detail -json link list dev $IFACE | jq '.[] | .linkinfo.info_kind'

어떤 경우에는 유틸리티 lshwsystool정보 수집에 도움이 됩니다.

systool -c net -v | less
lshw | less

관련 정보