如何查看Linux系统的MAC地址?

在Linux系统中,MAC地址(Media Access Control Address)是网卡的物理地址,用于在局域网中唯一标识网络接口设备,查看Linux系统的MAC地址有多种方法,可通过命令行工具或系统文件直接获取,以下是详细操作步骤及不同方法的对比分析。

如何查看linux的mac

使用ifconfig命令查看MAC地址

ifconfig是传统的网络配置工具,可显示或配置网络接口信息,若系统中未安装,需先根据发行版安装(如Debian/Ubuntu使用sudo apt install net-tools,CentOS/RHEL使用sudo yum install net-tools)。

操作步骤

  1. 打开终端,输入以下命令列出所有网络接口:

    ifconfig

    输出中会显示eth0(有线网卡)、wlan0(无线网卡)等接口信息。

  2. 定位目标接口,在HWaddr(部分系统显示为ether)字段后即为MAC地址,

    eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
          ether 00:1a:2b:3c:4d:5e  txqueuelen 1000  (Ethernet)

    其中00:1a:2b:3c:4d:5e即为该网卡的MAC地址。

使用ip命令查看MAC地址

ip是现代Linux系统推荐的网络配置工具,功能比ifconfig更全面,默认已安装在大多数发行版中。

操作步骤

  1. 输入以下命令显示所有网络接口的详细信息:

    ip addr show

    或简化为:

    如何查看linux的mac

    ip a
  2. 在输出中找到目标接口,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

    若需仅查看MAC地址,可结合grep过滤:

    ip a | grep -E "link/ether|ether" | awk '{print $2}'

读取/sys文件系统查看MAC地址

Linux内核通过/sys/class/net/目录暴露网络接口信息,直接读取对应接口的address文件可获取MAC地址,适合脚本编程或无命令行工具的环境。

操作步骤

  1. 列出所有网络接口:

    ls /sys/class/net/
  2. 读取目标接口的address文件,例如eth0

    cat /sys/class/net/eth0/address

    输出为小写无冒号格式(如001a2b3c4d5e),可通过sed添加冒号:

    cat /sys/class/net/eth0/address | sed 's/(..)/1:/g; s/:$//'

使用nmcli工具查看MAC地址

nmcli是NetworkManager的命令行工具,适用于使用NetworkManager管理网络的系统(如Ubuntu、Fedora默认启用)。

操作步骤

  1. 查看所有网络设备的详细信息:

    如何查看linux的mac

    nmcli device show
  2. 在输出中找到目标设备(如eth0),GENERAL.MAC-ADDRESS字段即为MAC地址,

    GENERAL.DEVICE:                         eth0
    GENERAL.TYPE:                           ethernet
    GENERAL.MAC-ADDRESS:                    00:1a:2b:3c:4d:5e

使用ethtool工具查看MAC地址

ethtool可查看和配置网卡参数,需先安装(sudo apt install ethtoolsudo yum install ethtool)。

操作步骤

  1. 查看网卡的永久MAC地址(避免虚拟接口临时MAC的干扰):
    ethtool -P eth0

    输出示例:

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

不同方法对比

方法 核心命令 优点 缺点 适用场景
ifconfig ifconfig 直观,兼容旧系统 逐渐被淘汰,需额外安装 传统Linux系统
ip ip addr show 现代系统默认,功能全面 输出信息较多,需过滤 通用Linux系统
/sys文件系统 cat /sys/class/net/... 无需工具,适合脚本 输出格式需处理 自动化脚本、无命令行环境
nmcli nmcli device show 结合NetworkManager管理 依赖NetworkManager服务 NetworkManager管理的系统
ethtool ethtool -P 可查看永久MAC地址 需安装工具 需区分临时/永久MAC场景

注意事项

  1. 虚拟接口:Docker、虚拟机等创建的虚拟接口(如docker0veth123)也会有MAC地址,可通过ip addr查看。
  2. 多网卡场景:若需快速查看所有网卡MAC地址,可使用:
    ip a | grep "link/ether" | awk '{print $2, $7}'
  3. MAC地址格式:标准MAC地址为6组2位十六进制数,组间用冒号或连字符分隔,大小写不敏感。

相关问答FAQs

问题1:为什么同一个网卡在ifconfigip addr中显示的MAC地址格式不同?
解答:ifconfig默认显示为大写带冒号格式(如00:1A:2B:3C:4D:5E),而ip addr默认显示为小写带冒号格式(如00:1a:2b:3c:4d:5e),本质是同一地址,仅格式差异,可通过tr '[:lower:]' '[:upper:]'转换为大写,或sed 's/://g'去除冒号。

问题2:如何查看所有网卡的MAC地址(包括虚拟网卡)?
解答:使用ip addr show命令可显示所有接口(物理和虚拟)的MAC地址,或通过遍历/sys/class/net/目录获取:

ls /sys/class/net/ | while read interface; do
  echo "$interface: $(cat /sys/class/net/$interface/address)"
done

此命令会列出所有接口及其对应的MAC地址,格式为接口名: MAC地址

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

(0)
酷番叔酷番叔
上一篇 2025年9月16日 08:57
下一篇 2025年9月16日 09:09

相关推荐

  • 如何深入理解Linux内核内存页表的构建、机制与查询方法?

    要深入了解Linux内核如何管理内存页表,需要从虚拟内存机制、页表结构、内核数据结构以及调试工具等多个维度展开分析,Linux采用分页机制实现虚拟内存到物理内存的映射,页表是这一机制的核心数据结构,以下从原理到实践详细阐述如何获取和分析Linux内核的页表信息,页表基础与Linux实现机制虚拟地址空间被划分为固……

    2025年8月30日
    6700
  • 如何快速找到Java可执行文件路径在哪

    在Windows系统中使用where java命令,在Linux/macOS系统中使用which java或command -v java命令,可快速定位Java可执行文件(如java.exe或java)的安装路径。

    2025年7月19日
    7800
  • kail linux如何u盘启动

    U盘插入电脑,在Kali Linux系统中用启动盘制作工具(

    2025年8月15日
    5700
  • Linux中如何踢掉已登录用户?具体操作方法是什么?

    在Linux系统中,“踢人”通常指强制终止某个用户的登录会话,无论是本地终端会话还是远程SSH会话,这一操作常用于处理异常登录、强制下线违规用户或解决会话卡死等问题,要实现这一操作,需先识别目标用户的会话信息,再根据会话类型选择合适的终止方法,以下是详细步骤和注意事项,查看当前登录用户信息在踢人前,需先确认目标……

    2025年9月29日
    5600
  • 虚拟机linux如何全屏

    虚拟机中,通常可通过安装 VMware Tools 等工具后,使用快捷键(如

    2025年8月17日
    6400

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信