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