가상 네트워크 인터페이스 뒤에 있는 커널 모듈을 찾고 싶습니다(예: 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'
어떤 경우에는 유틸리티 lshw
가 systool
정보 수집에 도움이 됩니다.
systool -c net -v | less
lshw | less