如何在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]