linux下如何修改mac
linux下如何修改mac详细介绍
在 Linux 系统中修改 MAC 地址可以通过命令临时修改或通过配置文件永久修改,以下是详细步骤:
一、临时修改 MAC 地址(重启后失效)
方法 1:使用
ip 命令(推荐,适用于新系统)
- 查看当前网络接口名称
bashshow - 禁用网络接口
bashdev 接口名 down - 修改 MAC 地址
bashdev 接口名 address 新 MAC 地址 - 启用网络接口
bashdev 接口名 up
方法 2:使用
ifconfig 命令(适用于旧系统,需安装
net-tools 包)
- 检查是否安装
net-tools
bash>/dev/null net-tools - 禁用接口并修改 MAC
bash接口名 down接口名 hw ether 新 MAC 地址
接口名 up
二、永久修改 MAC 地址(重启后生效)
方案 1:通过网络配置文件(不同系统路径不同)
Debian/Ubuntu(ifupdown 配置)
- 编辑接口配置文件:bash
/etc/network/interfaces - 添加以下内容(以
enp0s3为例):confauto enp0s3iface enp0s3 inet dhcp
hwaddress ether 00:11:22:33:44:55 # 新 MAC 地址
- 重启网络服务:bash
systemctl restart networking
RedHat/CentOS/Fedora(network-scripts 配置)
- 编辑接口配置文件:bash
/etc/sysconfig/network-scripts/ifcfg-enp0s3 - 添加或修改行(确保
ONBOOT=yes):confHWADDR=00:11:22:33:44:55 # 新 MAC 地址 - 重启网络服务:bash
systemctl restart network
systemd-networkd 配置(通用新系统)
- 创建或编辑配置文件:bash
/etc/systemd/network/接口名.network - 添加以下内容:conf
[Match]Name=enp0s3 # 接口名
[Network]
MACAddress=00:11:22:33:44:55 # 新 MAC 地址
- 重启网络服务:bash
systemctl restart systemd-networkd
方案 2:通过启动脚本(通用方法)
- 创建一个脚本(例如
set_mac.sh):bash/etc/rc.local - 添加临时修改命令(需确保脚本有执行权限):bash
dev enp0s3 down
dev enp0s3 address 00:11:22:33:44:55
dev enp0s3 up
- 赋予执行权限:bash
+x /etc/rc.local
三、使用工具简化操作(推荐临时修改)
安装 macchanger(功能更强大,支持随机 MAC 等):
bash
macchangerdnf macchanger
常用命令:
- 随机生成一个 MAC 地址:bash
macchanger 接口名 - 指定固定 MAC 地址:bash
macchanger 00:11:22:33:44:55 接口名 - 恢复原始 MAC 地址:bash
macchanger 接口名
注意事项
- 权限要求:所有修改操作需管理员权限(
sudo或root)。 - 接口名称:通过
ip link或ls /sys/class/net/确认正确的接口名(如enp0s3、wlan0)。 - 合法性:修改 MAC 地址可能违反网络策略或法律,确保在允许的环境中操作。
- 永久生效:部分系统(如 Ubuntu 22.04+)使用 Netplan 配置,需编辑
/etc/netplan/*.yaml文件并运行sudo netplan apply。
完成后可通过 ip link show <接口名> 或 macchanger -s <接口名> 验证 MAC 地址是否修改成功。