如何在Linux中永久更改MAC地址
本文介绍如何永久更改/欺骗网络接口MAC地址。为此, Mac Changer用于操纵MAC地址的实用程序,它创建一个在引导时自动启动的systemd单元。
我在本文中用于更改MAC地址的工具Macchanger提供了一项服务,询问我是否每次计算机启动时都更改MAC,但这在Ubuntu 18.04上不起作用。由于Macchanger所做的更改将在系统重新启动时被重置,因此本文包含创建systemd单元的步骤,该单元将在Linux计算机启动时自动运行Macchanger并每次更改MAC地址。我是要使用本指南,显然要在Linux系统上使用systemd。1.安装Macchanger
Macchanger必须位于主要Linux发行版的存储库中。要在Debian / Ubuntu / Linux Mint上安装,请使用以下命令:
sudo apt install macchanger
2.查找要更改其MAC地址的网络接口。
您可以为此使用以下命令:
ifconfig -a
如果您的系统无法正常运行,则可以运行以下命令。
ip link show
网络接口将如下所示:
- 为了
ifocnfig -a
:
$ ifconfig -a
enp10s0: flags=4163 mtu 1500
inet 192.168.1.211 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe60::cc24:29cf:2c1:1c5a prefixlen 64 scopeid 0x20
ether 1d:21:da:ab:1d:71 txqueuelen 1000 (Ethernet)
RX packets 164861 bytes 215658240 (215.6 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 45118 bytes 8577639 (8.5 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 265 bytes 20133 (20.1 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 265 bytes 20133 (20.1 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlp3s0: flags=4098 mtu 1500
ether 1e:14:57:1c:66:11 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
- 为了
ip link show
:
$ ip link show
1: lo: 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: enp10s0: mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 1d:21:da:ab:1d:71 brd ff:ff:ff:ff:ff:ff
3: wlp3s0: mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
link/ether 1e:14:57:1c:66:11 brd ff:ff:ff:ff:ff:ff
这是有线网络接口 enp10s0
无线网络接口 wlp3s0
(之前, eth0
,1等用于有线接口, wlan0
,1等无线)。记下欺骗MAC地址的网络接口。 3。检查Macchanger是否在您的系统上实际工作
在创建一个在每次重新启动时自动更改MAC地址的systemd unity之前,请检查Macchanger是否可以实际更改MAC地址(请查看MAC地址是否由于某些原因而无效)。是的。要临时更改MAC地址(系统重新启动后,更改将被撤消),请按以下方式运行Macchanger:
sudo macchanger -r NETWORK-INTERFACE
NETWORK-INTERFACE
修改本文第2步中列出的MAC的网络接口(例如enp10s0,wlp3s0)。
如果Macchanger工作, -r
该选项将MAC更改为随机MAC地址,并且该命令应打印原始MAC地址和新MAC地址。创建一个systemd单元,以在每次系统引导时自动运行Macchanger(每次系统引导时MAC地址都会更改)
建立 /etc/systemd/system/[email protected]
在文本编辑器中以root身份打开systemd单位文件。
sudo touch /etc/systemd/system/[email protected]
gedit admin:///etc/systemd/system/[email protected]
如果您尚未安装Gedit,请将上述命令中的Gedit替换为系统上安装的另一个文本编辑器。
粘贴以下内容 [email protected]
档案:
[Unit]
Description=changes mac for %I
Wants=network.target
Before=network.target
BindsTo=sys-subsystem-net-devices-%i.device
After=sys-subsystem-net-devices-%i.device
[Service]
Type=oneshot
ExecStart=/usr/bin/macchanger -r %I
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
系统单位是 macchanger -r
更改MAC。 -r
设置一个完全随机的MAC地址。你可以改变 -r
到 -e
更改MAC但保留原始NIC供应商字节 -a
例如,设置相同类型的随机供应商MAC。您可以通过运行以下命令查看所有可用选项:
macchanger --help
您还可以设置自定义的非随机MAC地址。为此 ExecStart=/usr/bin/macchanger -r %I
行到这样的东西:
ExecStart=/usr/bin/macchanger --mac=XX:XX:XX:XX:XX:XX %I
交换 XX:XX:XX:XX:XX:XX
使用新的MAC地址5。启用Macchanger systemd服务
在启动时启用systemd服务的时间。为此,请使用:
sudo systemctl enable [email protected]
交换 enp10s0
使用步骤2中的网络地址。
您可以使用同一命令来启用多个网络接口的MAC地址更改。重新启动系统
现在为网络接口配置了新的MAC地址。有关如何查找旧(原始)MAC地址和新MAC地址的信息,请参见下文。
如何查找原始和新的MAC地址
您可以使用Macchanger通过运行以下命令来查找原始MAC地址和新MAC地址:
macchanger -s NETWORK-INTERFACE
哪里 NETWORK-INTERFACE
在步骤2中使用命令找到了网络接口。
范例:
$ macchanger -s enp10s0
Current MAC: 1d:21:da:ab:1d:71 (unknown)
Permanent MAC: 72:ab:3d:89:88:88 (Intel Corporate)
如何在每次systemd重新启动时禁用MAC更改
要撤消更改,请首先禁用systemd MAC更改程序服务。
sudo systemctl disable [email protected]
交换 enp10s0
步骤2中的网络地址(来自初始设置过程)。对先前已启用该服务的每个网络接口执行此操作。
现在,您可以删除MAC changer systemd服务文件。
sudo rm /etc/systemd/system/[email protected]