在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如何删除jobs?

    在Linux操作系统中,jobs指的是通过终端启动的后台任务或挂起的任务,这些任务通常由bash等shell管理,用户可以通过&将任务置于后台运行,或通过Ctrl+Z将前台任务挂起(暂停)并转为后台任务,随着任务执行完毕或不再需要,及时删除无用jobs可以避免系统资源浪费,提升终端操作效率,本文将详细介……

    2025年10月8日
    2400
  • 为何CDLinux安装到U盘后会出现无法启动的情况?

    将CDLinux安装到U盘作为启动盘是常用的系统维护方式,但实际使用中常遇到U盘无法启动的问题,表现为开机无引导菜单、卡在启动界面或报错“No bootable device”等,这类问题通常由制作工具、U盘格式、引导配置、BIOS设置或硬件兼容性等原因导致,通过逐步排查可快速定位并解决,常见原因及解决方法制作……

    2025年9月20日
    2000
  • linux 如何返回上级目录

    Linux 中,使用 `cd ..

    2025年8月18日
    3300
  • Linux如何快速进入命令行?

    Linux命令行是系统操作与开发的核心工具,掌握多种进入方式(如终端、TTY快捷键、SSH远程)对高效管理至关重要,本指南覆盖不同场景与发行版。

    2025年7月31日
    4100
  • Linux源代码,该如何查看才高效?

    Linux作为开源操作系统的代表,其源代码是理解系统工作原理、进行二次开发或问题排查的重要资源,查看Linux源代码需要掌握获取源码的方法、理解源码结构,并借助合适的工具进行高效浏览和分析,获取Linux源代码是第一步,主要有三种方式:通过Git克隆官方仓库、下载发行版提供的源码包、或使用在线源码查看平台,Gi……

    2025年8月28日
    2800

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信