首頁 系統教程 Linux Ubuntu 16.04 下隨機化你的 WiFi MAC 位址的方法

Ubuntu 16.04 下隨機化你的 WiFi MAC 位址的方法

Mar 09, 2024 am 10:43 AM
linux linux教程 紅帽 linux系統 linux指令 linux認證 紅帽linux linux視頻

Ubuntu 16.04 下随机化你的 WiFi MAC 地址的方法

#這項設計的缺陷在於唯一性,不變的 MAC 位址剛好可以用來追蹤你。連上了星巴克的 WiFi? 好,注意到了。在倫敦的地鐵上? 也記錄下來。

如果你曾經在某一個 WiFi 驗證頁面上輸入過你的真實姓名,你就已經把自己和這個 MAC 位址建立了聯繫。沒有仔細閱讀許可服務條款、你可以認為,機場的免費 WiFi 正透過出售所謂的 ‘顧客分析數據’(你的個人資訊)獲利。出售的對象包括酒店,餐飲業,和任何想要了解你的人。

我不想資訊被記錄,再出售給多家公司,所以我花了幾個小時想出了一個解決方案。

MAC 位址不一定總是不變的

幸運的是,在不斷開網路的情況下,是可以隨機產生一個偽 MAC 位址的。

我想隨機產生我的 MAC 位址,但有三個要求:

  1. MAC 位址在不同網路中是不相同的。這意味著,我在星巴克和在倫敦地鐵網路中的 MAC 位址是不相同的,這樣在不同的服務提供者中就無法將我的活動繫起來。
  2. MAC 位址需要經常更換,這樣在網路上就沒人知道我就是去年在這裡經過了 75 次的那個人。
  3. MAC 位址一天之內應該保持不變。當 MAC 位址更改時,大多數網路都會與你斷開連接,然後必須必須進入驗證頁面再次登陸 - 這很煩人。
操作網路管理器

#我第一次嘗試用一個叫做 macchanger的工具,但失敗了。因為網路管理器NetworkManager會根據它自己的設定來恢復預設的 MAC 位址。

我了解到,網路管理器 1.4.1 以上版本可以自動產生隨機的 MAC 位址。如果你在使用 Ubuntu 17.04 版本,你可以根據這個設定檔來實現這個目的。但這並不能完全符合我的三個要求(你必須在隨機random穩定stable這兩個選項之中選擇一個,但沒有一天之內保持不變這一選項)

因為我使用的是 Ubuntu 16.04,網路管理器版本為 1.2,不能直接使用高版本這項新功能。可能網路管理器有一些隨機化方法支持,但我沒能成功。所以我編了一個腳本來實現這個目標。

幸運的是,網路管理員 1.2 允許模擬 MAC 位址。你在已連線的網路中可以看見 ‘編輯連線’ 這個選項。

網路管理器也支援鉤子處理 —— 任何位於 /etc/NetworkManager/dispatcher.d/pre-up.d/ 的腳本在建立網路連線之前都會執行。

分配隨機產生的偽 MAC 位址

我想根據網路 ID 和日期來產生新的隨機 MAC 位址。我們可以使用網路管理器的命令列工具 nmcli 來顯示所有可用網路:

ifconfig
> nmcli connection
NAME UUID TYPE DEVICE
Gladstone Guest 618545ca-d81a-11e7-a2a4-271245e11a45 802-11-wireless wlp1s0
DoESDinky 6e47c080-d81a-11e7-9921-87bc56777256 802-11-wireless --
PublicWiFi 79282c10-d81a-11e7-87cb-6341829c2a54 802-11-wireless --
virgintrainswifi 7d0c57de-d81a-11e7-9bae-5be89b161d22 802-11-wireless --
登入後複製

因為每個網路都有一個唯一識別碼(UUID),為了實現我的計劃,我將 UUID 和日期拼接在一起,然後使用 MD5 產生 hash 值:

ifconfig
# eg 618545ca-d81a-11e7-a2a4-271245e11a45-2017-12-03
> echo -n "${UUID}-$(date +%F)" | md5sum
53594de990e92f9b914a723208f22b3f -
登入後複製

產生的結果可以取代 MAC 位址的最後八個位元組。

值得注意的是,最開始的位元組 02 代表這個位址是自行指定的。實際上,真實 MAC 位址的前三個位元組是由製造商決定的,例如 b4:b6:76 就代表 Intel。

有可能某些路由器會拒絕自己指定的 MAC 位址,但我還沒遇過這種情況。

每次連接到一個網絡,這個腳本都會用nmcli  來指定一個隨機產生的偽 MAC 位址。

最後,我查看了 ifconfig 的輸出結果,我發現 MAC 位址 HWaddr 已經變成了隨機產生的位址(模擬 Intel 的),而不是我真實的 MAC 位址。

> ifconfig
wlp1s0 Link encap:Ethernet HWaddr b4:b6:76:45:64:4d
inet addr:192.168.0.86 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::648c:aff2:9a9d:764/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:12107812 errors:0 dropped:2 overruns:0 frame:0
TX packets:18332141 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:11627977017 (11.6 GB) TX bytes:20700627733 (20.7 GB)
登入後複製
腳本

完整的腳本也可以在 Github 上查看。

更新:使用自己指定的 MAC 位址可以避免和真正的 intel 位址衝突。感謝 @_fink


以上是Ubuntu 16.04 下隨機化你的 WiFi MAC 位址的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1666
14
CakePHP 教程
1425
52
Laravel 教程
1323
25
PHP教程
1272
29
C# 教程
1251
24
Linux體系結構:揭示5個基本組件 Linux體系結構:揭示5個基本組件 Apr 20, 2025 am 12:04 AM

Linux系統的五個基本組件是:1.內核,2.系統庫,3.系統實用程序,4.圖形用戶界面,5.應用程序。內核管理硬件資源,系統庫提供預編譯函數,系統實用程序用於系統管理,GUI提供可視化交互,應用程序利用這些組件實現功能。

git怎麼查看倉庫地址 git怎麼查看倉庫地址 Apr 17, 2025 pm 01:54 PM

要查看 Git 倉庫地址,請執行以下步驟:1. 打開命令行並導航到倉庫目錄;2. 運行 "git remote -v" 命令;3. 查看輸出中的倉庫名稱及其相應的地址。

notepad怎麼運行java代碼 notepad怎麼運行java代碼 Apr 16, 2025 pm 07:39 PM

雖然 Notepad 無法直接運行 Java 代碼,但可以通過借助其他工具實現:使用命令行編譯器 (javac) 編譯代碼,生成字節碼文件 (filename.class)。使用 Java 解釋器 (java) 解釋字節碼,執行代碼並輸出結果。

sublime寫好代碼後如何運行 sublime寫好代碼後如何運行 Apr 16, 2025 am 08:51 AM

在 Sublime 中運行代碼的方法有六種:通過熱鍵、菜單、構建系統、命令行、設置默認構建系統和自定義構建命令,並可通過右鍵單擊項目/文件運行單個文件/項目,構建系統可用性取決於 Sublime Text 的安裝情況。

Linux的主要目的是什麼? Linux的主要目的是什麼? Apr 16, 2025 am 12:19 AM

Linux的主要用途包括:1.服務器操作系統,2.嵌入式系統,3.桌面操作系統,4.開發和測試環境。 Linux在這些領域表現出色,提供了穩定性、安全性和高效的開發工具。

laravel安裝代碼 laravel安裝代碼 Apr 18, 2025 pm 12:30 PM

要安裝 Laravel,需依序進行以下步驟:安裝 Composer(適用於 macOS/Linux 和 Windows)安裝 Laravel 安裝器創建新項目啟動服務訪問應用程序(網址:http://127.0.0.1:8000)設置數據庫連接(如果需要)

git軟件安裝 git軟件安裝 Apr 17, 2025 am 11:57 AM

安裝 Git 軟件包括以下步驟:下載安裝包運行安裝包驗證安裝配置 Git安裝 Git Bash(僅限 Windows)

sublime快捷鍵怎麼使用 sublime快捷鍵怎麼使用 Apr 16, 2025 am 08:57 AM

Sublime Text 提供了提高开发效率的快捷键,包括常用的(保存、复制、剪切等)、编辑(缩进、格式化等)、导航(项目面板、文件浏览等)以及查找和替换快捷键。熟练使用这些快捷键可显著提升 Sublime 的使用效率。

See all articles