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

相关问答FAQs

问题1:为什么同一个网卡在ifconfig和ip 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 中,常用 df查看磁盘使用情况,du查看文件和目录大小,

    2025年8月17日
    24300
  • Linux如何快速进入命令行?

    Linux命令行是系统操作与开发的核心工具,掌握多种进入方式(如终端、TTY快捷键、SSH远程)对高效管理至关重要,本指南覆盖不同场景与发行版。

    2025年7月31日
    22500
  • 电脑安装Linux系统具体步骤有哪些?

    安装Linux系统是一个涉及准备、配置和执行的过程,适合有一定电脑操作基础的用户,以下从准备工作到安装完成后的配置,分步骤详细说明如何给电脑安装Linux,安装前的准备工作确认电脑配置与兼容性CPU架构:主流Linux发行版支持x86_64(Intel/AMD)架构,ARM架构设备(如树莓派、部分笔记本)需选择……

    2025年8月21日
    28500
  • 如何退出linux虚拟机

    Linux虚拟机中,可使用Ctrl + Alt + Delete组合键尝试关闭,或

    2025年8月16日
    23800
  • 如何实时查看Nginx运行状态

    在Linux系统中,查看服务是否启动是运维和开发的常见需求,以下是几种专业、可靠且高效的命令行方法,适用于不同发行版(如Ubuntu、CentOS、Debian等),所有操作均需在终端中执行:使用 systemctl 命令(推荐,适用于Systemd系统)适用场景:主流现代Linux发行版(Ubuntu 16……

    2025年8月6日
    26700

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信