如何在 Linux 中更改 MAC 地址

2020-03-18 12:05:00

在向你展示如何在 Linux 中更改 MAC 地址之前,讓我們首先討論為什麼要更改它。

可能有幾個原因。也許你不希望在公共網路上公開你的實際 MAC 地址(也稱為實體地址)?還有可能是網路管理員可能已在路由器或防火牆中阻止了特定的 MAC 地址。

一個實用的“好處”是某些公共網路(例如機場 WiFi)允許在有限的時間內免費上網。如果你還想繼續使用,那麼偽造 Mac 地址可能會欺騙網路,讓它認為是一台新裝置。這也是一個有名的原因。

我將展示更改 MAC 地址(也稱為欺騙/偽造 MAC 地址)的步驟。

在 Linux 中更改 MAC 地址

讓我們一步步來:

查詢你的 MAC 地址和網路介面

讓我們找出一些關於 Linux 中網絡卡的細節。使用此命令獲取網路介面詳細資訊:

ip link show

在輸出中,你將看到一些詳細資訊以及 MAC 地址:

1: lo: <LOOPBACK,UP,LOWER_UP> 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:002: eno1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN mode DEFAULT group default qlen 1000    link/ether 94:c6:f8:a7:d7:30 brd ff:ff:ff:ff:ff:ff3: enp0s31f6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000    link/ether 38:42:f8:8b:a7:68 brd ff:ff:ff:ff:ff:ff4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default    link/ether 42:02:07:8f:a7:38 brd ff:ff:ff:ff:ff:ff

如你所見,在這裡,我的網路介面稱為 enp0s31f6,MAC 地址為 38:42:f8:8b:a7:68

你可能需要在安全的地方記錄下來,以便稍後還原到該原始 MAC 地址。

現在你可以繼續更改 MAC 地址。

注意!

如果在當前使用的網路介面上執行此操作,那麼可能會中斷你的網路連線。因此,請在其他網絡卡上嘗試使用此方法,或者準備重新啟動網路。

方法 1:使用 Macchanger 更改 MAC 地址

Macchanger 是檢視、修改和操作網絡卡 MAC 地址的簡單程式。它幾乎在所有 GNU/Linux 作業系統中都可用,你可以使用發行版的包安裝程式進行安裝。

在 Arch Linux 或 Manjaro 上:

sudo pacman -S macchanger

在 Fedora、CentOS 和 RHEL 上:

sudo dnf install macchanger

在 Debian、Ubuntu、Linux Mint、Kali Linux 上:

sudo apt install macchanger

重要!系統會要求你選擇是否應將 macchanger 設定為在每次啟動或關閉網路裝置時自動執行。每當你接到網線或重新啟動 WiFi 時,它都會提供一個新的 MAC 地址。

Not a good idea to run it automatically

我建議不要自動執行它,除非你確實需要每次更改 MAC 地址。因此,選擇“No”(按 Tab 鍵),然後按確認鍵繼續。

如何使用 Macchanger 更改 MAC 地址

你還記得網路介面名稱嗎?你在前面的步驟中獲得了它。

現在,要將隨機 MAC 地址分配給該網絡卡,請使用:

sudo macchanger -r enp0s31f6

更改 MAC 後,使用以下命令進行驗證:

ip addr

現在你將看到已經偽造 MAC。

要將 MAC 地址更改為特定值,請使用以下命令指定自定義 MAC 地址:

macchanger --mac=XX:XX:XX:XX:XX:XX

其中 XX:XX:XX:XX:XX:XX 是你要更改的新 MAC。

最後,要將 MAC 地址恢復為其原始硬體值,請執行以下命令:

macchanger -p enp0s31f6

但是,你不必如此。重新啟動系統後,更改將自動丟失,並且實際的 MAC 地址將再次恢復。

你可以隨時檢視手冊頁以獲取更多詳細資訊。

方法 2:使用 iproute2 更改 Mac 地址(中級知識)

我建議你使用 macchanger,但如果你不想使用它,那麼可以使用另一種方法在 Linux 中更改 MAC 地址。

首先,使用以下命令關閉網絡卡:

sudo ip link set dev enp0s31f6 down

接下來,使用以下命令設定新的 MAC:

sudo ip link set dev enp0s31f6 address XX:XX:XX:XX:XX:XX

最後,使用以下命令重新開啟網路:

sudo ip link set dev enp0s31f6 up

現在,驗證新的 MAC 地址:

ip link show enp0s31f6

就是這些了。你已經成功地在 Linux 中修改了 MAC 地址。敬請期待 FOSS 更多有關 Linux 教學和技巧的文章。