如何知道 Linux 上虚拟 NIC 的类型?

如何知道 Linux 上虚拟 NIC 的类型?

在 Linux 机器上,我看到有很多虚拟网卡。如果我想知道使用“ip link add ... type ...”创建它们时的链接类型是什么,我该怎么做?

谢谢,伍迪

答案1

您可以使用多种方式 -

  1. brctl show- 可显示桥牌会员资格

  2. ifconfig -a | grep HWaddr- 与 MAC 地址匹配

  3. ls -l /sys/class/net/- 虚拟的将显示所有虚拟的并且局域网位于 PCI 总线上。

答案2

ip -details link show将添加几乎(但不是)所有可以想象到的接口属性,包括(通常在第 3 行开头)其类型,例如 a bridge、 aveth等。除非没有此类附加属性,否则实际的以太网或无线设备不会使用此命令显示其硬件性质。可以通过 中 phy 名称的存在来检测无线/sys/class/net/<ifname>/phy80211/name

这是一个肮脏的脚本(不应被认为是可靠的,因为它解析不可靠的格式!)来显示大多数类型(但例如pimreg与 PIM 多播守护进程一起出现的脚本会具有其特殊属性,link/pimreg之前不会显示):

$ ip -details link show |awk '/^[0-9]+:/ { line=NR; printf "\n%s ",gensub("(@.*|:)$","",1,$2) } NR == line+2 { printf "%s",$1 } END { printf "\n" }'

lo 
eth0 
wlan0 
dummy0 dummy
lxcbr0 bridge
virbr0 bridge
virbr0-nic tun
gre0 gre
gretap0 gretap
erspan0 erspan
ifb0 ifb
ifb1 ifb
vethIRMVCJ veth
vethQOHSJ9 veth
testbr0 bridge
wg0 wireguard
macvlan0 macvlan

答案3

可能还有其他方法。我使用反向问题:

ip link show type bridge

你可以替代与其他类型的 NIC。

相关内容