在Linux系统中如何查看网卡的MAC地址?常用命令方法有哪些?

在Linux系统中,MAC地址(Media Access Control Address)是网卡的物理地址,由6组16进制数组成(如00:1A:2B:3C:4D:5E),用于在局域网中唯一标识网络设备,查看MAC地址是网络管理、故障排查和安全配置的常见需求,本文将详细介绍多种查看Linux网卡MAC地址的方法,涵盖命令行工具、系统文件、图形界面及专业硬件检测工具,并总结不同方法的适用场景与注意事项。

如何查看linux的网卡mac地址查询

使用ifconfig命令查看MAC地址

ifconfig是传统的网络配置工具,属于net-tools包,通过它可以快速查看网卡的MAC地址。

操作步骤:

  1. 安装net-tools(若系统未预装):

    • 基于Debian/Ubuntu的系统:sudo apt install net-tools
    • 基于RHEL/CentOS的系统:sudo yum install net-tools
  2. 查看所有网卡的MAC地址
    执行命令:ifconfig
    输出结果中,每个网卡信息段的ether字段即为MAC地址,

    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 1000  bytes 150000 (150.0 KB)  
          TX packets 800  bytes 120000 (120.0 KB)  
  3. 查看指定网卡的MAC地址
    若只想查看特定网卡(如eth0),使用:ifconfig eth0,直接定位ether字段。

注意事项:

  • 部分新Linux发行版(如Ubuntu 20.04+)默认未安装net-tools,需先安装;
  • ifconfig命令已被iproute2包中的ip命令取代,但ifconfig仍因直观性被广泛使用。

使用ip命令查看MAC地址

ip命令是iproute2包的核心工具,现代Linux系统推荐使用,功能更全面且稳定。

操作步骤:

  1. 查看所有网卡的MAC地址
    执行命令:ip link show
    输出结果中,每块网卡信息段的link/ether字段即为MAC地址,

    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000  
        link/ether 00:1A:2B:3C:4D:5E brd ff:ff:ff:ff:ff:ff  
        inet 192.168.1.100/24 scope global eth0  
           valid_lft forever preferred_lft forever  
  2. 查看指定网卡的MAC地址
    使用ip link show [网卡名],如:ip link show eth0,直接提取link/ether字段。

优势:

  • 无需额外安装(现代系统默认集成);
  • 支持更丰富的网络参数查看(如MTU、队列状态等)。

通过ethtool查看MAC地址

ethtool是用于查询和配置网卡参数的工具,可查看网卡的“永久MAC地址”(Physical Address)。

操作步骤:

  1. 安装ethtool(若未安装):

    如何查看linux的网卡mac地址查询

    • Debian/Ubuntu:sudo apt install ethtool
    • RHEL/CentOS:sudo yum install ethtool
  2. 查看指定网卡的永久MAC地址
    执行命令:ethtool -P [网卡名]ethtool -P eth0
    输出结果:Permanent address: 00:1A:2B:3C:4D:5E

  3. 查看网卡的完整信息(含MAC地址)
    使用ethtool [网卡名],在输出中找到Permanent addressCurrent MAC address字段。

适用场景:

  • 需要确认网卡的“固化MAC地址”(如物理标签上的地址);
  • 部分离线网卡或特殊硬件需通过ethtool获取准确信息。

读取系统文件查看MAC地址

Linux内核会将网卡信息存储在/sys/class/net/目录下,通过直接读取文件可获取MAC地址,适合脚本编程。

操作步骤:

  1. 进入网卡目录
    例如查看eth0的MAC地址,执行:cd /sys/class/net/eth0/

  2. 读取address文件
    执行命令:cat address
    输出即为MAC地址(小写无冒号,如001a2b3c4d5e),可通过tr格式化:cat address | tr -d ':' | tr 'a-z' 'A-Z'

特点:

  • 无需额外工具,所有Linux系统均支持;
  • 输出为纯文本,便于脚本处理(如批量获取多网卡MAC地址)。

使用nmcli查看MAC地址(NetworkManager环境)

若系统使用NetworkManager管理网络(如桌面版Linux),可通过nmcli命令查看MAC地址。

操作步骤:

  1. 查看所有网卡的MAC地址
    执行命令:nmcli device status
    输出结果中MAC地址列即为对应网卡的MAC地址,

    DEVICE  TYPE      STATE         CONNECTION  
    eth0    ethernet  connected     eth0  
    MAC地址: 00:1A:2B:3C:4D:5E  
  2. 查看指定网卡的详细信息
    使用nmcli device show [网卡名]nmcli device show eth0,在输出中查找GENERAL.HWADDR字段。

适用场景:

  • 使用NetworkManager的桌面系统(如Ubuntu、Fedora Workstation);
  • 需结合网络连接配置信息(如IP、DNS)一起查看时。

使用lshw查看硬件级MAC地址

lshw是一款硬件信息检测工具,可查看网卡的物理详细信息,包括MAC地址、厂商、型号等。

如何查看linux的网卡mac地址查询

操作步骤:

  1. 安装lshw

    • Debian/Ubuntu:sudo apt install lshw
    • RHEL/CentOS:sudo yum install lshw
  2. 查看网卡硬件信息
    执行命令:lshw -C network
    输出结果中,网卡(如*-network)下的serial:字段即为MAC地址,

    *-network:0  
         description: Ethernet interface  
         product: RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller  
         vendor: Realtek Semiconductor Co., Ltd.  
         physical id: 0.0.0  
         bus info: pci@0000:02:00.0  
         logical name: eth0  
         version: 06  
         serial: 00:1A:2B:3C:4D:5E  

优势:

  • 可获取网卡的硬件厂商、型号等详细信息;
  • 适用于排查硬件兼容性问题。

图形界面查看MAC地址

对于不习惯命令行的用户,可通过Linux桌面环境的网络设置界面查看MAC地址。

操作步骤(以GNOME为例):

  1. 点击右上角网络图标 → “有线设置”或“Wi-Fi设置”;
  2. 选择对应网络连接(如“以太网”);
  3. 点击“齿轮图标”进入详情页,在“硬件地址”或“MAC地址”字段查看。

其他桌面环境:

  • KDE Plasma:“系统设置”→“连接”→选中网卡→“详细信息”中的“MAC地址”;
  • XFCE:“设置”→“网络”→选中网卡→“编辑”→“MAC地址”。

不同方法对比与总结

为方便选择,以下表格总结各方法的适用场景与特点:

方法 命令/操作示例 适用系统/环境 权限要求 优点 缺点
ifconfig ifconfig eth0 安装net-tools的系统 root/普通 简单直观,传统工具 新系统默认不安装
ip ip link show eth0 现代Linux发行版 root/普通 新版推荐,信息全面 输出稍复杂
ethtool ethtool -P eth0 支持ethtool的网卡 root 可查永久MAC,支持详细网卡 部分离线网卡不支持
/sys/class/net/ cat /sys/class/net/eth0/address 所有Linux系统 普通 适合脚本,无依赖 仅显示当前MAC,无额外信息
nmcli nmcli device show eth0 NetworkManager环境 普通 结合网络配置信息 依赖NetworkManager服务
lshw lshw -C network 需安装lshw的系统 root 硬件信息全面 输出信息量大,需过滤
图形界面 网络设置→硬件地址 桌面版Linux 普通 无需命令,适合新手 依赖图形环境

注意事项

  1. 指定网卡名:若系统有多网卡(如eth0ens33wlan0),需明确指定网卡名,避免混淆,可通过ip linkls /sys/class/net/查看所有网卡名称。
  2. MAC地址随机化:Linux内核3.2以上支持MAC地址随机化(保护隐私),此时通过ip link看到的MAC地址可能是临时地址,永久地址需通过ethtool -P查看。
  3. 虚拟网卡:虚拟机(如VMware、KVM)或容器(Docker)会生成虚拟网卡(如docker0vethXXX),其MAC地址为虚拟生成,与物理网卡无关。
  4. 权限问题:部分命令(如ifconfigethtoollshw)需root权限执行,可通过sudo提升权限。

相关问答FAQs

Q1:为什么我查到的MAC地址和物理网卡标签上的不一致?
A:可能原因包括:① MAC地址随机化:Linux内核启用了隐私保护功能,临时使用随机MAC地址,可通过sysctl -w net.ipv6.conf.all.use_tempaddr=0关闭(需root);② 虚拟化环境:虚拟机或容器的虚拟网卡MAC地址为动态生成,与物理网卡无关;③ 多网卡绑定:若配置了网卡绑定(如bonding),绑定的虚拟网卡MAC地址可能与物理网卡不同;④ 网卡厂商设置:部分企业级网卡支持虚拟化功能(如SR-IOV),会分配不同的MAC地址。

Q2:如何永久修改Linux网卡的MAC地址?
A:修改MAC地址需root权限,常见方法有两种:

  1. 修改网络配置文件(适用于传统网络管理):
    • Debian/Ubuntu:编辑/etc/network/interfaces,在网卡配置中添加hwaddress ether [新MAC地址],如hwaddress ether 00:11:22:33:44:55,重启网络或系统生效。
    • RHEL/CentOS:编辑/etc/sysconfig/network-scripts/ifcfg-eth0,添加MACADDR=[新MAC地址],重启网络服务(systemctl restart network)。
  2. 使用udev规则(推荐):
    创建udev规则文件:sudo nano /etc/udev/rules.d/10-mac-address.rulesSUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="[原MAC地址]", ATTR{address}="[新MAC地址]",保存后执行sudo udevadm control --reload-rules && sudo udevadm trigger,重启系统生效。

注意:修改MAC地址可能导致网络连接异常,建议仅在必要时操作(如网络管理需求),并确保新MAC地址不与其他设备冲突。

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

(0)
酷番叔酷番叔
上一篇 1小时前
下一篇 1小时前

相关推荐

  • linux 如何4k对齐

    Linux 中,可通过使用 parted 或 fdisk 等工具创建分区时设置起始扇区为 8 的倍数来实现 4

    2025年8月10日
    1700
  • apt升级失败怎么办

    理解Linux存储空间管理Linux系统的存储空间管理涉及磁盘分区、文件系统、挂载点等核心概念,合理规划与监控空间是系统稳定运行的关键,以下是详细操作指南:查看磁盘空间使用情况基础命令 dfdf -h # 以人类可读格式(GB/MB)显示所有挂载点空间关键列:Filesystem:磁盘分区或存储设备Size:总……

    2025年6月20日
    4400
  • Linux创建挂载点失败怎么办

    在Linux系统中连接共享文件是常见的操作,尤其在企业环境或多设备协作中,本文将详细讲解两种主流协议(SMB/CIFS和NFS)的连接方法,涵盖命令行与图形界面操作,并附上安全建议和常见问题解决,共享文件协议简介SMB/CIFS:用于连接Windows共享文件夹或NAS设备(如群晖),NFS:多用于Linux……

    2025年7月20日
    4000
  • Linux系统下如何安装Win7?详细步骤与注意事项有哪些?

    在Linux系统下安装Windows 7,可通过双系统安装(与Linux共存于物理硬盘)或虚拟机安装(在Linux环境中运行虚拟化Win7系统)两种主流方式实现,以下是详细步骤、注意事项及问题解决方案,涵盖准备工作、操作流程及常见故障处理,安装前准备工作无论选择双系统还是虚拟机安装,均需完成以下准备工作,确保安……

    2025年8月30日
    1600
  • Linux安装MySQL后初始密码如何查看?

    通过日志文件查找初始密码(推荐)MySQL 5.7及以上版本在安装时会自动生成临时密码,并记录在日志文件中,操作步骤:打开日志文件Ubuntu/Debian系统: sudo cat /var/log/mysqld.log # 通用路径或sudo cat /var/log/mysql/error.log # 部分……

    2025年6月24日
    3300

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信