Linux系统里如何查看网卡的硬件ID或设备标识?

在Linux系统中,网卡的“ID”通常指代多种标识信息,包括物理地址(MAC地址)、网络接口名称(如eth0、ens33)、PCI设备ID(硬件标识)以及驱动模块名称等,这些ID在系统管理、网络配置、故障排查中至关重要,本文将详细介绍如何通过不同命令和方法查看这些网卡ID,并说明各场景下的适用场景和注意事项。

linux如何查看网卡id

查看网卡的MAC地址(物理地址)

MAC地址是网卡的唯一物理标识,由48位二进制数表示,通常以十六进制格式呈现(如00:1a:2b:3c:4d:5e),查看MAC地址的常用方法如下:

使用ip命令(推荐,现代Linux系统默认支持)

ip命令是iproute2工具包的核心命令,功能强大且推荐使用,通过ip linkip addr可查看所有网卡的MAC地址:

ip link show

输出示例:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000  
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00  
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000  
    link/ether 00:1a:2b:3c:4d:5e brd ff:ff:ff:ff:ff:ff  
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000  
    link/ether 00:1a:2b:3c:4d:6f brd ff:ff:ff:ff:ff:ff  

其中link/ether后的字段即为MAC地址,若需查看特定网卡的MAC,可指定接口名,如ip link show eth0

使用ifconfig命令(传统工具,需安装net-tools

ifconfig是早期的网络配置工具,部分系统默认未安装,需通过sudo apt install net-tools(Ubuntu/Debian)或sudo yum install net-tools(CentOS/RHEL)安装,使用方法:

ifconfig

输出示例:

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500  
        inet 192.168.1.100  netmask 255.255.255.0  broadcast 192.168.1.255  
        inet6 fe80::21a:2bff:fe3c:4d5e  prefixlen 64  scopeid 0x20<link>  
        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  

其中ether字段即为MAC地址。

通过/sys文件系统查看

Linux将网卡信息存储在/sys/class/net/目录下,每个子目录对应一个网络接口,直接读取接口目录下的address文件可获取MAC地址:

cat /sys/class/net/eth0/address

输出示例:

00:1a:2b:3c:4d:5e

此方法适合脚本编程,可精准获取单个接口的MAC地址。

查看网络接口名称

网络接口名称是系统分配的逻辑标识,传统Linux使用eth0eth1等命名方式,而现代系统(如Ubuntu 18.04+、CentOS 7+)采用可预测命名规则(如ens33enp0s3),命名规则基于硬件信息(PCI位置、总线类型等)。

使用ipifconfig命令

通过ip addrifconfig可直接查看所有接口名称:

linux如何查看网卡id

ip addr show | grep "^[0-9]*:" | awk '{print $2}' | tr -d ':'

输出示例:

lo
eth0
wlan0

其中lo为回环接口,其他为物理/虚拟网卡接口名。

查看/sys/class/net/目录

/sys/class/net/目录下的每个子目录即为接口名称:

ls /sys/class/net/

输出示例:

lo  eth0  wlan0

查看网卡的PCI设备ID

PCI设备ID是网卡的硬件标识,由厂商ID(Vendor ID)和设备ID(Device ID)组成,用于识别网卡的具体型号和厂商(如Intel Corporation的网卡厂商ID为8086),查看PCI设备ID需使用lspci命令。

安装lspci工具

若系统未安装lspci,需先安装:

  • Ubuntu/Debian: sudo apt install pciutils
  • CentOS/RHEL: sudo yum install pciutils

查看所有网卡的PCI信息

lspci | grep -i "ethernet"

输出示例:

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

若需更详细的ID信息(含厂商和设备ID),使用-nn参数:

lspci -nn | grep -i "ethernet"

输出示例:

04:00.0 Ethernet controller [0200]: Intel Corporation I210 Gigabit Network Connection [8086:1572] (rev 03)  

其中[8086:1572]即为PCI ID,8086是厂商ID(Intel),1572是设备ID(I210)。

通过接口关联PCI设备

若需通过接口名(如eth0)查看其PCI设备ID,可查看/sys/class/net/<interface>/device/目录下的符号链接:

ls -l /sys/class/net/eth0/device/

输出示例:

linux如何查看网卡id

total 0  
lrwxrwxrwx 1 root root 0 May 10 10:00 0000:04:00.0 -> ../../0000:04:00.0  
drwxr-xr-x 3 root root 0 May 10 10:0  power  
lrwxrwxrwx 1 root root 0 May 10 10:0 subsystem -> ../../../../bus/pci/devices  
-r--r--r-- 1 root root 4096 May 10 10:00 uevent  

其中0000:04:00.0是PCI设备地址,结合lspci -v -s 0000:04:00.0可查看详细信息。

查看网卡驱动模块名称

网卡驱动模块是内核中控制网卡工作的程序,查看驱动信息有助于排查驱动兼容性问题,常用工具为ethtoolmodinfo

安装ethtool

sudo apt install ethtool  # Ubuntu/Debian
sudo yum install ethtool  # CentOS/RHEL

查看接口驱动信息

ethtool -i eth0

输出示例:

driver: e1000e  
version: 3.2.6-k  
firmware-version: 0.1-1  
expansion-rom-version:  
bus-info: 0000:04:00.0  
supports-statistics: yes  
supports-test: no  
supports-eeprom-access: no  
supports-register-dump: yes  
supports-priv-flags: no  

其中driver字段即为驱动模块名称(如e1000e为Intel千兆网卡驱动)。

查看驱动模块详细信息

通过modinfo可查看驱动模块的详细参数、版本等信息:

modinfo e1000e

输出示例:

filename:       /lib/modules/5.4.0-42-generic/kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko  
version:        3.2.6-k  
description:   Intel(R) PRO/1000 Gigabit Network Driver  
author:        Intel Corporation, <linux.nics@intel.com>  
license:        GPL  
srcversion:     5A3F5C6F6F3F3F3F3F3F3F3F  
alias:          pci:v00008086d00001572sv*sd*bc*sc*i*  
alias:          pci:v00008086d00001575sv*sd*bc*sc*i*  
...  

常用网卡ID查看命令总结

为方便快速查找,以下为常用命令及用途对照表:

命令 用途 输出示例(简写) 适用场景
ip link show 查看所有接口的MAC地址和状态 link/ether 00:1a:2b:3c:4d:5e 现代Linux系统,推荐使用
ifconfig 查看接口MAC地址、IP等信息 ether 00:1a:2b:3c:4d:5e 传统系统,需安装net-tools
cat /sys/class/net/eth0/address 直接读取指定接口MAC 00:1a:2b:3c:4d:5e 脚本编程,精准获取单个接口MAC
ip addr show | grep "^[0-9]*:" 查看所有接口名称 eth0wlan0 快速获取接口列表
lspci -nn | grep -i "ethernet" 查看网卡PCI设备ID [8086:1572] 硬件识别,驱动匹配
ethtool -i eth0 查看接口驱动模块 driver: e1000e 驱动故障排查

注意事项

  1. 权限问题:部分命令(如lspciethtool)可能需要sudo权限才能获取完整信息。
  2. 发行版差异:不同Linux发行版默认工具不同(如Ubuntu默认ip,旧版CentOS可能默认ifconfig),需根据系统选择。
  3. 内核版本影响:接口命名规则(如eth0 vs ens33)受内核版本和udev规则影响,可通过sudo ls /etc/udev/rules.d/ | grep -i net查看命名规则配置。
  4. 虚拟化环境:在虚拟机(VMware、KVM)中,网卡可能为虚拟设备(如ens33veth0),其MAC地址和PCI ID可能与物理网卡不同。

相关问答FAQs

Q1:Linux中网卡的MAC地址和接口名称有什么区别?如何分别查看?
A:MAC地址是网卡的全球唯一物理标识(如00:1a:2b:3c:4d:5e),用于数据链路层通信;接口名称是系统分配的逻辑标识(如eth0、ens33),用于用户空间操作,查看MAC地址可用ip link showcat /sys/class/net/<interface>/address;查看接口名称可用ip addr show | grep "^[0-9]*:"ls /sys/class/net/

Q2:为什么我的Linux系统中找不到网卡ID,可能的原因和解决方法?
A:可能原因及解决方法如下:

  1. 工具未安装:如lspciethtool未安装,可通过sudo apt install pciutils ethtool(Ubuntu/Debian)或sudo yum install pciutils ethtool(CentOS/RHEL)安装。
  2. 权限不足:普通用户无法查看某些硬件信息,需使用sudo执行命令。
  3. 网卡未加载:驱动未加载或硬件未识别,可通过dmesg | grep -i "eth"查看内核日志,确认网卡是否被正确识别。
  4. 虚拟化配置问题:在虚拟机中,若网卡未正确挂载,可在虚拟机管理器中检查网卡类型(如VMXNET3、E1000)并重新配置。

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

(0)
酷番叔酷番叔
上一篇 2025年9月23日 02:48
下一篇 2025年9月23日 03:04

相关推荐

  • Linux系统中如何通过命令查看PHP的详细版本信息?

    在Linux系统中,查询PHP版本是开发运维中的常见需求,无论是调试环境、依赖检查还是版本升级,都需要准确获取当前PHP的版本信息,本文将详细介绍多种在Linux中查询PHP版本的方法,涵盖命令行、网页环境、配置文件等场景,并针对不同Linux发行版提供具体操作示例,帮助用户快速定位所需信息,通过命令行直接查询……

    2025年10月2日
    3800
  • Linux如何保存分区表?操作步骤与命令有哪些?

    在Linux系统中,分区表是磁盘管理的基础,记录了磁盘分区的布局、类型、起始和结束位置等信息,由于误操作、磁盘故障或系统异常可能导致分区表损坏,进而引发数据丢失风险,因此定期保存分区表至关重要,本文将详细介绍Linux中保存分区表的方法,涵盖不同分区表类型(MBR和GPT)及常用工具的使用,分区表类型与备份必要……

    2025年9月24日
    4800
  • 如何快速提升网站流量?

    Linux 以其稳定性著称,但极端操作仍可导致系统崩溃,本文仅用于技术研究,帮助用户理解系统脆弱点并避免生产环境事故,请勿在关键设备中尝试以下操作,内核级操作:直接触发系统崩溃强制写入只读内存echo c > /proc/sysrq-trigger # 触发内核崩溃(需启用SysRq)sudo dd if……

    2025年6月30日
    6600
  • 怎样在Linux系统中查看CPU型号?

    使用 lscpu 命令(推荐)步骤:lscpu | grep "Model name"输出示例:Model name: Intel(R) Core(TM) i7-10700K CPU @ 3.80GHz解读:直接显示CPU型号、品牌及主频,lscpu 汇总了CPU架构、核心数、线程数等完整信……

    2025年7月4日
    6300
  • 在Linux系统中,如何正确执行可执行文件的具体操作步骤有哪些?

    Linux执行文件是系统操作的核心功能之一,涉及文件权限、路径解析、解释器调用等多个层面,要理解Linux如何执行文件,需从执行前提、具体方式、底层机制及环境配置等多角度分析,本文将详细展开说明,执行文件的前提条件Linux系统中并非所有文件都能直接执行,需满足两个核心前提:文件权限和文件类型,文件权限:可执行……

    2025年9月26日
    4600

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信