![如何知道 Linux 上虚拟 NIC 的类型?](https://linux22.com/image/726402/%E5%A6%82%E4%BD%95%E7%9F%A5%E9%81%93%20Linux%20%E4%B8%8A%E8%99%9A%E6%8B%9F%20NIC%20%E7%9A%84%E7%B1%BB%E5%9E%8B%EF%BC%9F.png)
在 Linux 机器上,我看到有很多虚拟网卡。如果我想知道使用“ip link add ... type ...”创建它们时的链接类型是什么,我该怎么做?
谢谢,伍迪
答案1
您可以使用多种方式 -
brctl show
- 可显示桥牌会员资格ifconfig -a | grep HWaddr
- 与 MAC 地址匹配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。