Linux查看和修改MAC地址的方法大全

MAC(Media Access Control)地址是网络设备的硬件标识符,通常由12位十六进制数字组成(如 00:11:22:33:44:55),用于局域网内设备的唯一识别。在Linux系统中,出于网络调试、隐私保护或虚拟化需求,可能需要查看或临时/永久修改MAC地址。以下是详细方法总结:

图片[1]_Linux查看和修改MAC地址的方法大全_知途无界

一、查看MAC地址

1. 使用 ip link 命令(推荐)

ip link show

输出示例​:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff  # eth0的MAC地址
3: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether aa:bb:cc:dd:ee:ff brd ff:ff:ff:ff:ff:ff  # wlan0的MAC地址
  • 关键字段​:link/ether 后面的值即为网卡的MAC地址(如 eth000:11:22:33:44:55)。
  • 适用场景​:适用于所有现代Linux发行版(推荐替代旧的 ifconfig)。

2. 使用 ifconfig 命令(传统工具,部分系统需安装)

ifconfig -a

输出示例​:

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:11:22:33:44:55  txqueuelen 1000  (Ethernet)  # MAC地址
        RX packets 1000  bytes 1000000 (1000.0 KB)
        ...
  • 注意​:ifconfig 属于 net-tools 包,现代系统可能默认未安装,需通过 sudo apt install net-tools(Debian/Ubuntu)或 sudo yum install net-tools(CentOS/RHEL)安装。

3. 使用 nmcli 命令(NetworkManager工具)

若系统使用NetworkManager管理网络(常见于桌面版Linux),可通过以下命令查看:

nmcli device show <网卡名> | grep GENERAL.HWADDR

示例​:

nmcli device show eth0 | grep GENERAL.HWADDR

输出​:

GENERAL.HWADDR: 00:11:22:33:44:55

二、临时修改MAC地址(重启后失效)

临时修改适用于测试或临时需求,重启网络服务或系统后会恢复原MAC地址。

1. 使用 ip link 命令(推荐)

步骤:

  1. 关闭目标网卡​: sudo ip link set <网卡名> down示例​(修改 eth0): sudo ip link set eth0 down
  2. 修改MAC地址​: sudo ip link set <网卡名> address <新MAC地址>示例​(将 eth0 的MAC改为 00:11:22:33:44:66): sudo ip link set eth0 address 00:11:22:33:44:66
  3. 重新启用网卡​: sudo ip link set <网卡名> up示例​: sudo ip link set eth0 up
  4. 验证修改​: ip link show <网卡名>

注意事项:

  • MAC地址格式​:支持 00:11:22:33:44:55(冒号分隔)、00-11-22-33-44-55(连字符分隔)或 001122334455(无分隔符),但建议使用标准冒号格式。
  • 合法性​:MAC地址的第1字节第2位需为 0(表示单播地址,非组播),且不能为全 F 或广播地址(如 ff:ff:ff:ff:ff:ff)。

2. 使用 ifconfig 命令(传统方法)

步骤:

  1. 关闭网卡​: sudo ifconfig <网卡名> down
  2. 修改MAC地址​: sudo ifconfig <网卡名> hw ether <新MAC地址>示例​: sudo ifconfig eth0 hw ether 00:11:22:33:44:66
  3. 启用网卡​: sudo ifconfig <网卡名> up

三、永久修改MAC地址(重启后仍生效)

永久修改需通过系统网络配置文件实现,具体方法因Linux发行版和网络管理工具而异。

1. 使用 netplan(Ubuntu 18.04+ / Debian)

步骤:

  1. 编辑Netplan配置文件​:
    配置文件通常位于 /etc/netplan/ 目录下(如 01-netcfg.yaml50-cloud-init.yaml)。 sudo nano /etc/netplan/01-netcfg.yaml
  2. 添加或修改MAC地址配置​:
    在对应网卡的配置中添加 macaddress 字段,示例如下: network: version: 2 ethernets: eth0: dhcp4: true macaddress: 00:11:22:33:44:66 # 指定MAC地址注意​:若使用静态IP,需补充 addressesgateway4 等字段。
  3. 应用配置​: sudo netplan apply

2. 使用 NetworkManager(桌面版常见)

方法一:通过配置文件(推荐)

  1. 编辑连接配置文件​:
    配置文件位于 /etc/NetworkManager/system-connections/,文件名通常为 <网卡名>.nmconnection(如 eth0.nmconnection)。 sudo nano /etc/NetworkManager/system-connections/eth0.nmconnection
  2. 添加MAC地址字段​:
    [ethernet] 部分添加 cloned-mac-address=<新MAC地址>,示例如下: [connection] id=eth0 type=ethernet interface-name=eth0

[ethernet]

cloned-mac-address=00:11:22:33:44:66 # 指定MAC地址

重启NetworkManager​:

sudo systemctl restart NetworkManager

方法二:通过图形界面(桌面用户)

  1. 打开“设置” → “网络” → 选择对应有线/无线连接。
  2. 进入“高级”或“硬件”选项,找到“克隆MAC地址”字段,输入新地址后保存。

3. 使用传统网络脚本(CentOS/RHEL 7及以下)

步骤:

  1. 编辑网卡配置文件​:
    配置文件位于 /etc/sysconfig/network-scripts/,文件名为 ifcfg-<网卡名>(如 ifcfg-eth0)。 sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0
  2. 添加MAC地址字段​:
    在文件中添加或修改 HWADDRMACADDR 字段: DEVICE=eth0 BOOTPROTO=dhcp ONBOOT=yes HWADDR=00:11:22:33:44:66 # 指定MAC地址(推荐用HWADDR) # 或使用MACADDR(部分系统支持) # MACADDR=00:11:22:33:44:66
  3. 重启网络服务​: sudo systemctl restart network

4. 使用 systemd-networkd(部分轻量级发行版)

步骤:

  1. 编辑网络配置文件​:
    配置文件位于 /etc/systemd/network/(如 10-eth0.network)。 sudo nano /etc/systemd/network/10-eth0.network
  2. 添加MAC地址配置​: [Match] Name=eth0 [Link] MACAddress=00:11:22:33:44:66 # 指定MAC地址
  3. 重启服务​: sudo systemctl restart systemd-networkd

四、注意事项

  1. 权限要求​:修改MAC地址需 root 权限(使用 sudo)。
  2. 合法性​:避免使用保留MAC地址(如厂商保留段、广播地址),否则可能导致网络冲突。
  3. 虚拟化环境​:在虚拟机(如VMware、KVM)中,可直接在虚拟网络设置中修改MAC地址。
  4. 网络服务依赖​:修改后若网络异常,检查网卡是否正常启用(ip link show 确认状态为 UP)。
  5. 临时与永久区分​:临时修改仅当前生效,重启后恢复;永久修改需通过配置文件固化。

五、总结

需求推荐方法适用场景
查看MAC地址ip link show(首选) / ifconfig -a所有Linux系统
临时修改ip link set <网卡> address <MAC>测试、临时调试
永久修改根据发行版配置文件(Netplan/NetworkManager/sysconfig)生产环境固定MAC地址

通过上述方法,您可以灵活管理Linux系统中的MAC地址,满足不同场景的需求。

© 版权声明
THE END
喜欢就点个赞,支持一下吧!
点赞42 分享
评论 抢沙发
头像
欢迎您留下评论!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容