如何查看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下如何操作.ko文件?

    查找系统中的.ko文件使用 find 命令在文件系统中递归搜索所有.ko文件(需root权限):sudo find / -name "*.ko" 2>/dev/null说明: 表示从根目录开始搜索,2>/dev/null 忽略权限错误提示,示例输出: /lib/modules/5……

    2025年6月24日
    13500
  • linux修改网关如何生效

    Linux 中修改网关后,可通过重启网络服务或直接重启系统使新网关配置生效

    2025年8月16日
    9900
  • Linux压缩文件夹为何总失败?

    为什么需要结合 tar 命令?gzip是单文件压缩工具,无法处理文件夹结构,tar(Tape Archive)可将多个文件/文件夹打包为单个.tar文件,通过tar的-z选项,直接调用gzip压缩,生成.tar.gz(或.tgz)文件,压缩文件夹的完整步骤基础命令tar -zcvf 压缩包名称.tar.gz 要……

    2025年8月9日
    12800
  • Linux镜像如何安装?步骤方法详解

    Linux镜像安装是许多用户接触开源系统的第一步,虽然不同发行版(如Ubuntu、CentOS、Debian等)在界面和细节上略有差异,但核心流程基本一致,本文将从准备工作、安装步骤、后续配置三个维度,详细拆解Linux镜像的安装过程,帮助用户顺利完成系统部署,安装前的准备工作准备工作是确保安装过程顺利的关键……

    2025年8月30日
    9500
  • Linux系统启动网卡的具体操作步骤有哪些?

    在Linux系统中,网卡的启动是网络配置的基础操作,涉及查看网卡状态、手动启用、配置IP地址及设置开机自启等步骤,不同Linux发行版(如CentOS、Ubuntu、Arch等)可能因网络管理工具(如传统ifupdown、NetworkManager)的差异存在命令或配置文件路径的不同,但核心逻辑一致,以下是详……

    2025年9月24日
    7800

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信