Linux系统如何查询MAC地址?

在Linux系统中,MAC地址(Media Access Control Address,媒体访问控制地址)是网络接口卡(NIC)的硬件标识符,由48位二进制数组成,通常以十六进制格式表示(如00:1A:2B:3C:4D:5E),查询MAC地址是网络管理、故障排查和安全配置中的常见需求,Linux提供了多种命令行工具和系统文件查询方式,以下将详细介绍各种方法及其使用场景。

linux如何查询mac地址查询

使用ifconfig命令查询MAC地址

ifconfig(interface configuration)是传统的网络配置工具,属于net-tools软件包,尽管在现代Linux发行版中逐渐被iproute2工具集取代,但仍广泛使用。

基本用法

  1. 查询所有网络接口的MAC地址
    执行以下命令,显示系统中所有已启用网络接口的详细信息,包括MAC地址:

    ifconfig

    输出结果中,每个接口的“HWaddr”或“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)

    ether 00:1A:2B:3C:4D:5E”即为网卡eth0的MAC地址。

  2. 查询指定网络接口的MAC地址
    若只想查询某个特定接口(如eth0)的MAC地址,可指定接口名:

    ifconfig eth0

注意事项

  • 部分现代Linux发行版(如Ubuntu 20.04+、CentOS 8+)默认未安装net-tools,需通过包管理器安装:
    sudo apt install net-tools    # Debian/Ubuntu
    sudo yum install net-tools    # CentOS/RHEL
  • 若接口未启动(如未插网线或未启用),ifconfig可能不会显示该接口,需先用ifup eth0启动。

使用ip命令查询MAC地址

ip命令是iproute2工具集的核心命令,功能更强大且推荐用于现代Linux系统,可替代传统的ifconfigroute等命令。

基本用法

  1. 查询所有网络接口的MAC地址
    执行以下命令,显示所有网络接口的链路层信息:

    ip link show

    输出中,每个接口的“link/ether”字段即为MAC地址,

    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
        link/ether 00:1A:2B:3C:4D:5E brd ff:ff:ff:ff:ff:ff
  2. 查询指定网络接口的MAC地址
    通过grep过滤指定接口(如eth0),可快速定位MAC地址:

    ip link show eth0 | grep link/ether

    输出结果:

    link/ether 00:1A:2B:3C:4D:5E brd ff:ff:ff:ff:ff:ff

优势

  • ip命令默认安装在大多数Linux发行版中,无需额外安装。
  • 支持更丰富的网络管理功能,如地址管理、路由策略、隧道配置等。

使用arp命令查询ARP缓存中的MAC地址

地址解析协议(ARP)用于将IP地址映射到MAC地址,arp命令可查看系统ARP缓存中已记录的IP-MAC对应关系,适用于局域网内已通信设备的MAC地址查询。

linux如何查询mac地址查询

基本用法

  1. 查看所有ARP缓存条目

    arp -a

    输出示例:

    ? (192.168.1.1) at 00:11:22:33:44:55 [ether] on eth0
    ? (192.168.1.101) at 0A:1B:2C:3D:4E:5F [ether] on eth0

    at”后面的字段即为对应IP地址的MAC地址。

  2. 查询特定IP的MAC地址
    若已知局域网内某设备的IP地址(如192.168.1.1),可通过以下命令查询其MAC地址:

    arp 192.168.1.1

局限性

  • ARP缓存仅记录与本机有过通信的设备,若设备未通信或缓存过期,则无法查询。
  • 在安全性较高的网络中,可能存在ARP欺骗,需结合其他工具验证。

通过系统文件查询MAC地址

Linux内核将网络接口信息存储在/sys/class/net/目录下,通过读取对应接口的address文件,可直接获取MAC地址,适合脚本化处理或自动化运维。

操作步骤

  1. 进入目标接口目录
    例如查询eth0的MAC地址:

    cd /sys/class/net/eth0/
  2. 读取address文件

    cat address

    输出结果:

    00:1A:2B:3C:4D:5E

批量查询所有接口MAC地址

结合for循环和ls命令,可批量输出所有接口的MAC地址:

for interface in /sys/class/net/*; do
  echo "Interface: $(basename $interface), MAC: $(cat $interface/address)"
done

使用nmcli命令查询MAC地址(NetworkManager环境)

nmcli是NetworkManager的命令行工具,适用于使用NetworkManager管理网络的系统(如Ubuntu、Fedora等),可查询接口的MAC地址及网络配置。

基本用法

  1. 查询指定接口的MAC地址

    linux如何查询mac地址查询

    nmcli device show eth0

    输出结果中,“GENERAL.HWADDR”字段即为MAC地址:

    GENERAL.DEVICE:                         eth0
    GENERAL.TYPE:                           ethernet
    GENERAL.HWADDR:                         00:1A:2B:3C:4D:5E
    GENERAL.MTU:                            1500
  2. 查询所有接口的MAC地址

    nmcli device status | grep -E "DEVICE|MAC"

使用ethtool查询MAC地址及硬件信息

ethtool用于查询和配置网卡参数,可获取MAC地址、速率、双工模式等详细信息,适合硬件级别的网络诊断。

基本用法

  1. 查询指定接口的MAC地址

    ethtool -P eth0

    输出“Permanent address”即为网卡的永久MAC地址(不可修改):

    Permanent address: 00:1A:2B:3C:4D:5E
  2. 查询接口详细信息(含MAC地址)

    ethtool eth0

    输出结果中“Port: Twisted Pair”下方会显示“Address: 00:1A:2B:3C:4D:5E”。

常用查询方法对比

命令/工具 所属工具包 适用场景 示例命令 输出字段/位置
ifconfig net-tools 传统网络接口查询 ifconfig eth0 HWaddr/ether
ip iproute2 现代Linux推荐,功能全面 ip link show eth0 link/ether
arp net-tools 查询局域网已通信设备的MAC arp -a at [MAC]
系统文件 内核 脚本化批量查询 cat /sys/class/net/eth0/address 直接输出MAC
nmcli NetworkManager NetworkManager管理环境 nmcli device show eth0 GENERAL.HWADDR
ethtool ethtool 硬件级信息查询(如永久MAC) ethtool -P eth0 Permanent address

相关问答FAQs

Q1: 为什么使用ifconfig命令查询MAC地址时提示“command not found”?
A: 这是因为当前系统未安装net-tools软件包(部分现代Linux发行版默认不包含),可通过以下命令安装:

  • Debian/Ubuntu系统:sudo apt install net-tools
  • CentOS/RHEL系统:sudo yum install net-tools
    安装后即可正常使用ifconfig命令。

Q2: 如何通过MAC地址绑定IP地址以实现网络访问控制?
A: 可通过静态ARP绑定或防火墙规则实现,以静态ARP绑定为例(以eth0接口、IP 192.168.1.100、MAC 00:1A:2B:3C:4D:5E为例):

  1. 临时绑定(重启失效):sudo arp -s 192.168.1.100 00:1A:2B:3C:4D:5E
  2. 永久绑定(需写入配置文件):在/etc/ethers文件中添加条目00:1A:2B:3C:4D:5E 192.168.1.100,然后执行sudo arp -f加载配置。
    也可使用iptablesnftables基于MAC地址设置访问规则,
    sudo iptables -A INPUT -m mac --mac-source 00:1A:2B:3C:4D:5E -j ACCEPT(允许该MAC地址的设备访问)。

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

(0)
酷番叔酷番叔
上一篇 2小时前
下一篇 2小时前

相关推荐

  • Linux如何压缩文件?常用命令及操作步骤详解?

    在Linux系统中,文件压缩是日常运维和开发中常见的操作,主要用于节省存储空间、加快文件传输速度,以及便于文件归档管理,Linux提供了多种压缩工具和命令,支持不同的压缩算法和格式,用户可以根据需求选择合适的方式,本文将详细介绍Linux中常用的文件压缩方法,包括gzip、bzip2、zip、tar及xz等工具……

    2025年8月26日
    1800
  • Linux创建文件系统如何避免数据丢失?

    准备工作识别目标设备使用 lsblk 或 fdisk -l 命令查看所有存储设备:sudo lsblk # 显示设备树状结构(推荐)sudo fdisk -l # 列出所有磁盘及分区确认目标设备名称(如 /dev/sdb、/dev/nvme0n1p2),备份数据若目标设备有数据,必须提前备份:sudo rsyn……

    2025年7月29日
    2100
  • linux如何卸载clion

    Linux系统中,卸载CLion可通过包管理器(如apt、yum等)或直接删除

    2025年8月19日
    1300
  • linux没有浏览器如何

    nux没有浏览器可安装如Firefox、Chrome等主流浏览器,或使用

    2025年8月16日
    1700
  • 备份日志丢失?这样避免!

    Linux 基础操作指南Linux 作为开源操作系统的代表,广泛应用于服务器、开发环境及物联网设备,掌握其基础操作是高效使用的关键,以下内容基于主流发行版(如 Ubuntu、CentOS)编写,遵循安全规范与最佳实践,终端与基础命令终端是 Linux 的核心操作界面,快捷键 Ctrl+Alt+T 可快速打开,常……

    2025年7月17日
    3000

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信