在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)
酷番叔酷番叔
上一篇 2025年9月20日 23:42
下一篇 2025年9月21日 00:07

相关推荐

  • 如何让Linux系统宕机?有哪些具体的操作步骤和方法?

    Linux作为广泛使用的操作系统,其稳定性备受认可,但在特定情况下仍可能出现宕机(系统完全无法响应或崩溃),了解Linux宕机的触发机制,有助于系统管理员优化系统配置、排查故障,或在进行压力测试时评估系统极限,本文将从内核、硬件、资源、文件系统、驱动及安全等多个维度,详细分析导致Linux宕机的常见原因及技术原……

    2025年9月21日
    10500
  • 如何将Linux系统安装到U盘?详细教程与操作步骤指南

    将Linux系统安装到U盘是一种便携式系统部署方式,既能实现“随身携带的操作系统”,又可用于系统修复、测试或隐私保护,整个过程需经历准备工作、镜像下载、启动盘制作、系统安装及配置等环节,以下是详细步骤:准备工作在开始操作前,需确保以下工具和材料准备就绪:硬件设备:容量≥8GB的U盘(建议16GB以上,因Linu……

    2025年10月9日
    11700
  • 如何查看linux的开机启动项

    使用systemctl list-units –type=service命令查看

    2025年8月19日
    12400
  • 如何停掉监听 linux

    在Linux系统中,监听通常指某个进程或服务在网络端口上等待连接请求的状态,常见于Web服务器(如Nginx、Apache)、数据库服务(如MySQL、Redis)或自定义应用程序,停止监听可能是出于安全加固、服务迁移、资源释放或故障排查等需求,以下是详细的方法和步骤,涵盖不同场景下的监听停止操作,查找监听信息……

    2025年10月4日
    12300
  • Linux系统中防火墙的开启与关闭操作步骤是怎样的?

    Linux作为广泛使用的操作系统,其防火墙功能是保障系统安全的重要屏障,防火墙通过控制网络流量进出,防止未经授权的访问和恶意攻击,不同Linux发行版采用的防火墙工具有所不同,常见的有iptables、firewalld、ufw等,本文将详细介绍这些工具的开启与关闭方法,帮助用户根据实际需求管理防火墙状态,ip……

    2025年9月17日
    11000

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信