在Linux操作系统中,如何查看当前系统有几块物理网卡设备?

Linux系统中,查看网卡数量是网络管理的基础操作,无论是排查网络问题、配置网络服务还是监控系统状态,都需要准确掌握网卡的识别信息,Linux提供了多种命令和工具来查看网卡信息,下面将详细介绍几种常用方法,帮助用户全面了解如何识别系统中的网卡数量及类型。

linux如何查看有几块网卡

使用ip命令(推荐方法)

ip命令是iproute2工具包的核心命令,现代Linux发行版(如Ubuntu、CentOS、Debian等)默认已安装,功能强大且信息全面,通过ip命令可以查看网卡的名称、状态、MAC地址、IP地址等详细信息。

基本语法:

ip a

ip link show

输出解读:

执行ip a后,终端会显示所有网络接口的详细信息,每块网卡对应一个开头的段落。

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/00:1a:2b:3c:4d:5e brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/00:1a:2b:3c:4d:5f brd ff:ff:ff:ff:ff:ff
4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/52:54:00:ab:cd:ef brd ff:ff:ff:ff:ff:ff
  • 网卡数量统计:上述输出中,开头的数字序号(如1:2:3:4:)对应不同的网络接口,其中lo是环回接口(虚拟网卡,用于本地通信),eth0eth1物理网卡virbr0是虚拟网桥(通常由KVM、Docker等虚拟化工具创建),统计时需排除lo,实际物理网卡+虚拟网卡数量为4-1=3块。
  • 关键信息eth0eth1等是网卡名称(通常物理网卡以ethens开头,虚拟网卡以virbrdockerlo开头);state UP/DOWN表示网卡是否启用;link/后跟的是MAC地址。

使用ifconfig命令(传统方法)

ifconfignet-tools工具包中的命令,在早期Linux系统中广泛使用,但部分现代发行版(如Ubuntu 20.04+)默认未安装,需手动安装。

linux如何查看有几块网卡

安装方法(以Ubuntu为例):

sudo apt update && sudo apt install net-tools

基本语法:

ifconfig -a

输出解读:

执行ifconfig -a后,会显示所有网络接口的配置信息,包括已启用(UP)和未启用(DOWN)的网卡。

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.100  netmask 255.255.255.0  broadcast 192.168.1.255
        ether 00:1a:2b:3c:4d:5e  txqueuelen 1000  (Ethernet)
        RX packets 12345  bytes 1234567 (1.1 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 6789  bytes 987654 (964.2 KiB)
        TX errors 0  dropped 0  overruns 0  carrier 0  collisions 0
eth1: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 00:1a:2b:3c:4d:5f  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0  overruns 0  carrier 0  collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1000  (Local Loopback)
virbr0: flags=4099<BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:ab:cd:ef  txqueuelen 1000  (Ethernet)
  • 网卡数量统计:同样需排除loeth0eth1virbr0共3块网卡。flags中的UP表示网卡已启用,BROADCAST表示支持广播,RUNNING表示网卡正在工作。

查看/sys/class/net/目录

Linux内核通过/sys/class/net/目录暴露所有网络接口的信息,直接列出该目录下的子目录即可获取所有网卡名称,无需安装额外工具。

基本语法:

ls /sys/class/net/

输出示例:

eth0  eth1  lo  virbr0
  • 网卡数量统计:目录名称即为网卡名称,排除lo后,eth0eth1virbr0共3块网卡,此方法最简单,仅返回网卡名称,适合快速统计数量。

使用lspci命令查看物理网卡硬件信息

若需区分物理网卡和虚拟网卡(如虚拟化环境中的虚拟网卡),可通过lspci命令列出PCI设备,并过滤网卡相关硬件。

安装方法(以Ubuntu为例):

sudo apt install pciutils

基本语法:

lspci | grep -i 'ethernet|network'

输出示例:

00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (2) I219-LM
01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
  • 物理网卡识别:每行对应一块物理网卡的硬件信息,Ethernet controllerNetwork controller标识网卡类型,此方法仅能统计物理网卡数量,无法识别虚拟网卡(如virbr0docker0等)。

使用nmcli命令(NetworkManager工具)

nmcli是NetworkManager的命令行工具,适用于桌面版或服务器版Linux,可结合网络管理查看网卡状态。

linux如何查看有几块网卡

基本语法:

nmcli device status

输出示例:

DEVICE  TYPE      STATE        CONNECTION
eth0    ethernet  connected    eth0
eth1    ethernet  disconnected --  
lo      loopback  unmanaged    --  
virbr0  bridge    disconnected --  
  • 网卡数量统计DEVICE列即为网卡名称,排除lounmanaged表示非管理状态),eth0eth1virbr0共3块网卡。STATE列显示网卡连接状态(connected/disconnected)。

不同命令对比总结

命令 所属工具包 功能特点 适用场景
ip a iproute2(默认) 信息全面,包含状态、MAC、IP等 日常查看、网络配置
ifconfig -a net-tools(需安装) 传统命令,兼容旧系统 遗留系统维护
ls /sys/class/net/ 内核文件系统 仅返回网卡名称,简单快速 快速统计数量
lspci | grep pciutils(需安装) 仅显示物理网卡硬件信息 区分物理/虚拟网卡
nmcli device status NetworkManager 结合网络管理状态,适合桌面/服务器环境 网络服务管理

相关问答FAQs

问题1:执行ifconfig命令时报错“command not found”,如何解决?

解答ifconfig属于net-tools工具包,部分现代Linux发行版(如Ubuntu 20.04+、CentOS 8+)默认未安装,可通过以下命令安装:

  • Ubuntu/Debian
    sudo apt update && sudo apt install net-tools
  • CentOS/RHEL/Rocky Linux
    sudo yum install net-tools

    安装后执行ifconfig -a即可查看所有网卡信息。

问题2:如何区分物理网卡和虚拟网卡?

解答:可通过以下方法区分:

  1. 接口名称:物理网卡通常以eth(传统命名)、ens(Predictable Network Interface Names,新系统默认)开头,如eth0ens33;虚拟网卡常见名称有lo(环回)、virbr0(虚拟网桥,KVM/Docker)、docker0(Docker默认网桥)、wlan0(无线虚拟网卡)等。
  2. lspci命令:物理网卡可通过lspci | grep -i 'ethernet'查看到硬件信息,虚拟网卡无对应PCI设备记录。
  3. ethtool命令:安装ethtool后,执行sudo ethtool -i <网卡名>查看驱动,物理网卡驱动通常为e1000igbr8169等,虚拟网卡驱动多为virtio_net(KVM)、hv_netvsc(Hyper-V)等。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/38720.html

(0)
酷番叔酷番叔
上一篇 2025年10月9日 03:22
下一篇 2025年10月9日 03:39

相关推荐

  • linux管理员如何运行命令

    nux管理员可通过终端输入命令并回车运行,也可将命令写入脚本执行,还能利用远程

    2025年8月16日
    13000
  • Linux系统中如何删除进程?命令使用、强制终止与注意事项有哪些?

    在Linux系统中,进程是程序执行的基本单位,系统运行时会同时存在大量进程,当进程出现异常(如无响应、资源占用过高)或需要手动终止时,就需要掌握删除进程的方法,删除进程的核心是通过发送信号(Signal)通知进程结束执行,不同信号对应不同的终止方式,正确使用这些方法可以安全、高效地管理进程,查看进程信息:删除前……

    2025年9月20日
    15600
  • 熬夜真的会导致猝死吗?

    在Linux系统中,子进程的管理是进程控制的核心任务之一,正确关闭子进程不仅能释放系统资源,还能避免僵尸进程(Zombie Process)积累导致的内存泄漏和系统性能下降,本文将详细解释关闭子进程的四种方法、常见问题及最佳实践,为什么需要主动关闭子进程?资源释放:子进程退出后,内核会保留其退出状态(PID、退……

    2025年7月31日
    16300
  • Linux安装程序哪种方法最合适?

    包管理器安装(推荐首选)Linux各发行版通过包管理器统一管理软件,支持自动解决依赖关系、安全更新和卸载,Debian/Ubuntu系(APT)sudo apt update # 更新软件源列表sudo apt install 软件包名 # 安装软件(如 sudo apt install vlc)sudo ap……

    2025年7月9日
    15300
  • 强制关闭终端会怎样?

    基础退出方法exit 命令在命令行输入 exit 后回车,会立即终止当前Shell会话并关闭终端窗口,适用场景:无后台任务运行时的标准退出方式,快捷键 Ctrl + D按下组合键 Ctrl + D(相当于发送EOF信号),效果等同于 exit 命令,注意:若终端中有未完成的输入(如多行命令未闭合),需多次按 C……

    2025年7月18日
    14900

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信