在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系统忘记root密码后如何重置密码?

    Linux系统作为服务器和开发环境的核心工具,root密码的安全性至关重要,若不慎遗忘root密码,需通过特定方法重置,本文将详细说明不同场景下重置Linux root密码的步骤、注意事项及适用场景,帮助用户安全恢复系统访问权限,通过GRUB引导进入单用户模式(适用于本地物理机/虚拟机)GRUB(Grand U……

    2025年9月21日
    7000
  • Linux如何启动SSH远程服务?

    SSH(Secure Shell)是远程管理 Linux 系统的核心工具,通过加密通道实现安全登录和文件传输,以下是专业、安全且适用于主流 Linux 发行版的 SSH 启动方法,涵盖安装、配置、防火墙设置及安全加固,检查与安装 SSH 服务确认 SSH 状态终端执行:systemctl status ssh……

    2025年7月9日
    12600
  • 清除分区表真的会永久删除所有数据吗?

    ▸ 仅适用于:报废磁盘初始化、系统重装或专业数据销毁场景▸ 必须确认:已备份关键数据,且准确识别目标磁盘设备名(如 /dev/sda)▸ 严禁操作:正在运行系统的启动磁盘(除非在救援模式)操作前关键准备识别目标磁盘sudo fdisk -l # 列出所有磁盘sudo lsblk # 查看块设备树状结构▸ 确认磁……

    2025年7月31日
    7900
  • 你的终端拖慢工作效率了?

    Linux终端是开发者和管理员的核心工具,但默认界面可能单调且低效,通过个性化定制,不仅能提升视觉体验,还能优化工作效率,本文将详细讲解如何从多个维度改造Linux终端界面,涵盖工具更换、主题配置、提示符优化等实用技巧,所有步骤均经过测试(基于Ubuntu 22.04和Bash/Zsh),确保安全可靠,终端模拟……

    2025年6月14日
    10200
  • Linux分区如何合理?分区原则、方法与技巧有哪些?

    Linux分区是系统安装和运维中的关键环节,合理的分区不仅能提升系统性能,还能增强数据安全性和管理效率,分区时需结合使用场景(如服务器、桌面环境、虚拟机等)、硬件配置(磁盘大小、内存容量)及安全需求综合规划,以下是具体建议,核心分区类型及规划原则Linux系统分区需遵循“功能分离、独立管理”原则,将不同用途的数……

    2025年9月22日
    8000

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信