Linux如何查看系统中所有网卡的信息?

在Linux系统中,网卡(网络接口卡)是设备与外部网络通信的核心组件,无论是排查网络问题、配置网络服务,还是监控系统状态,准确查看所有网卡信息都是基础操作,Linux提供了多种命令和工具来查看网卡信息,涵盖从基础接口名称、IP地址到硬件属性、驱动状态等不同维度,本文将详细介绍这些方法,并通过实例解析输出结果,帮助用户全面掌握Linux网卡查看技巧。

linux如何查看所有的网卡

基础查看命令:快速获取网卡列表与基本信息

ip命令:现代Linux系统的首选工具

ip命令是iproute2包的一部分,功能强大且全面,逐渐取代了传统的ifconfig命令,通过ip命令可以查看网卡的接口名称、状态、MAC地址、IP地址等信息。

  • 查看所有网卡接口
    执行以下命令:

    ip addr show

    或简写为:

    ip a
  • 输出解析
    命令输出会列出所有网卡接口,每个接口包含以下关键信息:

    • 接口名:如eth0、ens33、lo(回环接口)等,命名规则与系统内核版本和硬件检测相关(传统命名如eth0、wlan0,基于硬件的命名如ens33)。
    • 状态标志:UP(接口已启用)、DOWN(接口未启用)、BROADCAST(支持广播)、MULTICAST(支持多播)等。
    • MAC地址:link/ether后跟的6组16进制数,如00:0c:29:1a:2b:3c,是网卡的物理地址。
    • IP地址:inet后跟IPv4地址及子网掩码(如168.1.100/24),inet6后跟IPv6地址。
    • 统计信息:RX(接收)和TX(发送)的数据包数、字节数、错误数等。

    示例输出:

    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
        inet6 ::1/128 scope host
           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/ether 00:0c:29:1a:2b:3c 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
        inet6 fe80::20c:29ff:fe1a:2b3c/64 scope link
           valid_lft forever preferred_lft forever
    3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
        link/ether 02:42:8a:7e:3d:5f brd ff:ff:ff:ff:ff:ff
        inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
           valid_lft forever preferred_lft forever

    eth0是物理网卡,docker0是Docker虚拟网卡,lo是回环接口。

ifconfig命令:传统工具(需安装)

ifconfig是net-tools包中的工具,在早期Linux系统中广泛使用,但新发行版(如Ubuntu 20.04+、CentOS 8+)默认未安装,需通过sudo apt install net-tools(Ubuntu)或sudo yum install net-tools(CentOS)安装。

  • 查看所有网卡

    ifconfig -a

    参数-a会显示所有网卡(包括未激活的),不加参数仅显示已激活的网卡。

  • 输出解析
    输出结构与ip命令类似,包含接口名、状态(RUNNING表示已激活)、HWaddr(MAC地址)、inet addr(IPv4地址)、Bcast(广播地址)、Mask(子网掩码)等。

    示例输出:

    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:0c:29:1a:2b:3c  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.5 KiB)
          TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

硬件信息查看:识别网卡物理属性与驱动状态

lspci命令:查看PCI网卡硬件信息

lspci(pciutils包)用于列出PCI设备,可通过过滤网卡硬件信息(如网卡芯片、厂商ID等)。

  • 安装与使用
    若未安装,执行sudo apt install pciutils(Ubuntu)或sudo yum install pciutils(CentOS)。

    linux如何查看所有的网卡

  • 查看PCI网卡

    lspci -nn | grep -i ethernet

    参数-nn显示数字ID(便于查询),grep -i ethernet过滤以太网卡。

  • 输出解析
    输出包含网卡在PCI总线上的位置、厂商ID、设备ID及名称,

    04:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)

    可通过lspci -k查看驱动信息:

    lspci -k -s 04:00.0

    输出:

    04:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)
        Subsystem: Dell I210 Gigabit Network Connection
        Kernel driver in use: igb
        Kernel modules: igb

lsusb命令:查看USB网卡硬件信息

对于USB接口的网卡(如无线网卡、USB转以太网适配器),使用lsusb(usbutils包)查看硬件信息。

  • 安装与使用
    未安装时执行sudo apt install usbutils或sudo yum install usbutils。

  • 查看USB网卡

    lsusb | grep -i network

    输出示例:

    Bus 001 Device 005: ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter

ethtool命令:查看网卡详细状态与配置

ethtool(ethtool包)可获取网卡的速率、双工模式、驱动版本、流控等详细信息,需root权限运行。

  • 查看网卡驱动与版本

    sudo ethtool -i eth0

    输出:

    driver: igb
    version: 5.4.0-91-generic
    firmware-version: 0.17-1
    expansion-rom-version: 
    bus-info: 04:00.0
    supports-statistics: yes
    supports-test: yes
    supports-eeprom-access: yes
    supports-register-dump: yes
    supports-priv-flags: yes
  • 查看网卡速率与双工模式

    linux如何查看所有的网卡

    sudo ethtool eth0

    输出:

    Settings for eth0:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Supported pause frame use: No
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full

网络管理工具:结合系统服务查看网卡信息

nmcli命令:NetworkManager的CLI工具

在安装了NetworkManager的系统(如Ubuntu桌面版、CentOS 7+)中,nmcli可查看网卡连接状态、IP配置、DNS等信息。

  • 查看所有网卡状态

    nmcli device status

    输出:

    DEVICE  TYPE      STATE      CONNECTION
    eth0    ethernet  connected  eth0
    docker0 bridge    unmanaged  --
    lo      loopback  unmanaged  --
  • 查看网卡详细信息

    nmcli device show eth0

    输出包含MAC地址、IP地址、网关、DNS等完整配置。

netstat与ss命令:查看网络连接与接口统计

netstat(net-tools包)和ss(iproute2包)可用于查看网卡的连接状态和数据统计。

  • 查看所有接口统计信息
    netstat -i

    或使用ss(推荐,性能更好):

    ss -i

    输出包含接口名、MTU、接收/发送数据包数、错误数等。

常用网卡查看命令对比

命令 主要用途 常用参数 输出关键信息 适用场景
ip addr 查看网卡IP、MAC、状态 show、brief、details 接口名、状态、MAC、IPv4/IPv6地址 日常查看、故障排查
ifconfig 传统网卡查看(需安装) -a(显示所有)、up/down 接口名、IPv4、MAC、统计信息 兼容旧系统
lspci 查看PCI网卡硬件信息 -nn(显示数字ID)、-k(驱动) 厂商、设备名、驱动、PCI地址 硬件识别、驱动排查
lsusb 查看USB网卡硬件信息 -v(详细信息) 厂商、设备ID、USB接口 USB网卡硬件识别
ethtool 查看网卡速率、双工、驱动 -i(驱动)、-s(设置) 驱动版本、速率、流控、固件版本 网卡性能优化、硬件状态检查
nmcli NetworkManager管理下的网卡 device status、connection show 连接状态、IP配置、DNS 图形化网络管理系统的命令行操作

相关问答FAQs

问题1:为什么使用ip addr命令查看不到某些网卡?

解答:可能的原因有以下几种:

  1. 网卡未启用:物理网卡可能因驱动未加载或硬件故障处于DOWN状态,可通过ip link set <网卡名> up手动启用(需确认驱动正常)。
  2. 驱动未加载:使用lsmod | grep <驱动名>检查驱动是否加载,若未加载需执行sudo modprobe <驱动名>(如modprobe e1000e)。
  3. 硬件故障:通过dmesg | grep -i ethernet查看内核日志,若提示“device not found”或“timeout”,可能是硬件接触不良或损坏。
  4. 虚拟网卡未创建:虚拟网卡(如Docker的veth、KVM的tap)需在对应服务启动后才会创建,可检查服务状态(如systemctl status docker)。

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

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

  1. 命名规则:物理网卡传统命名以eth开头(如eth0),新系统可能基于硬件信息命名(如ens33);虚拟网卡命名通常带有特定前缀,如docker0(Docker网桥)、veth(Docker容器间虚拟接口)、virbr0(Libvirt虚拟网络)、tap(KVM虚拟机网卡)。
  2. 硬件信息:物理网卡可通过lspci或lsusb查到对应硬件条目,虚拟网卡无PCI/USB设备信息。
  3. 驱动类型:物理网卡驱动为硬件驱动(如e1000e、igb),虚拟网卡驱动通常为tap、veth、bridge等虚拟化驱动。
  4. 接口状态:虚拟网卡可能显示为NO-CARRIER(无物理连接),如docker0在无容器运行时通常为DOWN状态。

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

赞 (0)
酷番叔酷番叔
上一篇 2025年9月27日 23:04
下一篇 2025年9月27日 23:18

相关推荐

  • Linux系统如何进入usr目录?

    Linux系统中的目录结构是其核心组成部分,采用树形层级设计,而/usr目录是其中最重要的系统目录之一,它存储了大量用户程序、库文件、文档、手册页等关键数据,无论是系统管理员还是普通开发者,掌握如何正确进入/usr目录并理解其内容,都是日常操作的基础,本文将详细讲解Linux系统中进入/usr目录的方法、相关技……

    2025年10月7日
    20500
  • 如何删除Linux子目录下的文件?

    在Linux系统中,删除子目录文件是日常运维和开发中常见的操作,但不同场景需要选择不同的命令和方法,以确保操作安全且高效,以下是详细的操作指南,涵盖常用命令、参数说明及注意事项,基础删除命令:rm 与 rmdirrm 命令:通用删除工具rm 是最常用的删除命令,支持删除文件、目录(需配合参数),核心参数如下……

    2025年10月6日
    22600
  • linux如何查任务计划

    Linux中可使用crontab -l命令查看当前用户的任务计划,用`ls /etc/cron.

    2025年8月10日
    24200
  • 服务器Linux环境下如何合理分区?分区方案、大小及类型怎么选?

    在服务器Linux系统中,合理的分区规划是保障系统稳定、安全及性能优化的关键基础,分区不仅影响数据存储结构,还直接关系到系统响应速度、故障恢复能力及后续运维效率,以下从分区原则、场景方案、操作步骤及注意事项等方面详细说明服务器Linux的分区方法,分区核心原则服务器Linux分区需遵循“数据分离、性能优先、安全……

    2025年9月23日
    20500
  • linux如何卸载clion

    Linux系统中,卸载CLion可通过包管理器(如apt、yum等)或直接删除

    2025年8月19日
    21000

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信