linux设置mac命令
linux设置mac命令详细介绍
在 Linux 系统中,设置网络接口的 MAC 地址(物理地址)可以通过命令行工具实现。以下是具体步骤和常用命令:
一、临时修改 MAC 地址(重启后失效)
需要管理员权限(使用 sudo 或切换到 root 用户)。
1.
查看当前网络接口信息
bash
addr show
找到目标接口(如 eth0、enp0s3、wlan0 等)。
2.
禁用网络接口
bash
dev 接口名 down接口名 down
3.
设置新的 MAC 地址
MAC 地址格式为 XX:XX:XX:XX:XX:XX(十六进制,字母大小写均可)。
bash
dev 接口名 address 新MAC地址接口名 hw ether 新MAC地址
4.
启用网络接口
bash
dev 接口名 up接口名 up
5.
验证修改结果
bash
addr show 接口名
二、永久修改 MAC 地址(重启后生效)
根据 Linux 发行版的不同,永久配置方法略有差异。
方法 1:通过网络配置文件(适用于传统 init 系统,如 CentOS 6/7、Ubuntu 16.04 之前)
- 编辑接口配置文件
- CentOS/RHEL(示例接口
eth0):
bash/etc/sysconfig/network-scripts/ifcfg-eth0添加或修改以下行(根据实际情况调整):
ini"
- Ubuntu/Debian(旧版
ifupdown配置):
bash/etc/network/interfaces在接口配置中添加(示例
eth0):
iniauto eth0iface eth0 inet dhcp
hwaddress ether 00:11:22:33:44:55 # 直接指定 MAC 地址
pre-up ip link set dev eth0 down
post-up ip link set dev eth0 address 00:11:22:33:44:55
post-up ip link set dev eth0 up
- CentOS/RHEL(示例接口
方法 2:通过 systemd-networkd 或 netplan(适用于现代发行版,如 Ubuntu 18.04+、CentOS 8+)
- Ubuntu 18.04+(netplan 配置):
编辑配置文件(通常位于/etc/netplan/*.yaml):
yamlnetworkd
001122
001122
应用配置:
bashnetplan apply - CentOS 8+/Rocky Linux(systemd-networkd):
创建接口配置文件:
bash/etc/systemd/network/eth0.network添加:
ini重启网络服务:
bashsystemctl restart systemd-networkd
三、注意事项
- 权限问题:所有修改操作需管理员权限(
sudo或root),否则会报错。 - MAC 地址格式:必须为合法的 6 组十六进制数(如
00:11:22:33:44:55),不支持短横线(如00-11-22-33-44-55可能无效)。 - 网卡限制:部分网卡或驱动可能禁止修改 MAC 地址(报错
Operation not possible due to RF-kill或无反应),需确认硬件支持。 - 临时 vs 永久:临时修改适用于测试,永久修改需根据发行版选择对应配置文件,并重启网络服务或系统生效。
四、常用命令总结
| 操作 | 新命令(推荐,ip) |
旧命令(ifconfig) |
|---|---|---|
| 禁用接口 | sudo ip link set dev eth0 down |
sudo ifconfig eth0 down |
| 设置 MAC 地址 | sudo ip link set dev eth0 address XX:XX:XX:XX:XX:XX |
sudo ifconfig eth0 hw ether XX:XX:XX:XX:XX:XX |
| 启用接口 | sudo ip link set dev eth0 up |
sudo ifconfig eth0 up |
| 查看接口信息 | ip addr show eth0 |
ifconfig eth0 |
通过以上步骤,即可在 Linux 系统中临时或永久修改网络接口的 MAC 地址。