一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Linux 如何查看系统中所有的物理与虚拟网卡列表

时间:2026-09-02 18:21:47 编辑:袖梨 来源:一聚教程网

直接看 /sys/class/net/ 目录就能列出系统中所有网卡,包括物理网卡和虚拟网卡。

查看全部网卡名称

运行命令:

ls /sys/class/net/

输出类似:

br-df65b94a220f docker0 enp0s31f6 lo veth1706661 wlp1s0

这个列表包含所有网络接口:回环(lo)、物理以太网卡(enp0s31f6)、无线网卡(wlp1s0)、Docker桥接网卡(docker0)、OVS或Docker创建的虚拟网卡(br-*、veth*)等。

区分物理网卡和虚拟网卡

Linux 中判断依据是设备是否真实存在于 PCI 总线或 USB 总线。更实用的方法是检查路径是否存在物理设备链接:

  1. 虚拟网卡通常位于 /sys/devices/virtual/net/ —— 执行 ls /sys/devices/virtual/net/,结果中的网卡名(如 docker0br-*veth*lo)全是虚拟的
  2. 物理网卡则不在该目录中,且其 /sys/class/net/网卡名/device 是一个指向 PCI 设备的符号链接(如 ../../0000:00:1f.6)。可用命令验证:ls -l /sys/class/net/enp0s31f6/device 2>/dev/null,有输出即为物理网卡
  3. 快速筛选出物理网卡:ls /sys/class/net/ | grep -v "$(ls /sys/devices/virtual/net/ 2>/dev/null | tr 'n' '|' | sed 's/|$//')"

用 ip 命令辅助确认状态与类型

ip -br link show 可简洁列出所有接口名、状态(UP/DOWN)和 MAC 地址:

ip -br link show

输出示例:

lo DOWN 00:00:00:00:00:00

enp0s31f6UP e8:6a:64:xx:xx:xx

wlp1s0 UP d4:6d:6d:xx:xx:xx

docker0UP 02:42:ac:xx:xx:xx

veth1706661UP 9e:1c:2b:xx:xx:xx

虽然 ip 不直接标注“物理/虚拟”,但结合名称习惯可快速识别:

• 常见物理命名:enp0s31f6、ens33、eth0、wlp1s0

• 明确虚拟命名:docker0、virbr0、vethxxxx、br-xxxx、lo

补充:查看 PCI 设备确认真实网卡

若需进一步确认哪些是插在主板上的真实网卡,可用:

lspci | grep -i ethernet

或更宽泛地:

lspci | grep -E "(Ethernet|Network)"

输出会显示 PCI 总线上的以太网控制器型号和厂商,每条对应一块物理网卡(不含 USB 或虚拟设备)。

热门栏目