Ubuntu 16.04 下隨機化你的 WiFi MAC 位址的方法
#這項設計的缺陷在於唯一性,不變的 MAC 位址剛好可以用來追蹤你。連上了星巴克的 WiFi? 好,注意到了。在倫敦的地鐵上? 也記錄下來。
如果你曾經在某一個 WiFi 驗證頁面上輸入過你的真實姓名,你就已經把自己和這個 MAC 位址建立了聯繫。沒有仔細閱讀許可服務條款、你可以認為,機場的免費 WiFi 正透過出售所謂的 ‘顧客分析數據’(你的個人資訊)獲利。出售的對象包括酒店,餐飲業,和任何想要了解你的人。
我不想資訊被記錄,再出售給多家公司,所以我花了幾個小時想出了一個解決方案。
幸運的是,在不斷開網路的情況下,是可以隨機產生一個偽 MAC 位址的。
我想隨機產生我的 MAC 位址,但有三個要求:
- MAC 位址在不同網路中是不相同的。這意味著,我在星巴克和在倫敦地鐵網路中的 MAC 位址是不相同的,這樣在不同的服務提供者中就無法將我的活動繫起來。
- MAC 位址需要經常更換,這樣在網路上就沒人知道我就是去年在這裡經過了 75 次的那個人。
- MAC 位址一天之內應該保持不變。當 MAC 位址更改時,大多數網路都會與你斷開連接,然後必須必須進入驗證頁面再次登陸 - 這很煩人。
#我第一次嘗試用一個叫做 macchanger的工具,但失敗了。因為網路管理器會根據它自己的設定來恢復預設的 MAC 位址。
我了解到,網路管理器 1.4.1 以上版本可以自動產生隨機的 MAC 位址。如果你在使用 Ubuntu 17.04 版本,你可以根據這個設定檔來實現這個目的。但這並不能完全符合我的三個要求(你必須在隨機和穩定這兩個選項之中選擇一個,但沒有一天之內保持不變這一選項)
因為我使用的是 Ubuntu 16.04,網路管理器版本為 1.2,不能直接使用高版本這項新功能。可能網路管理器有一些隨機化方法支持,但我沒能成功。所以我編了一個腳本來實現這個目標。
幸運的是,網路管理員 1.2 允許模擬 MAC 位址。你在已連線的網路中可以看見 ‘編輯連線’ 這個選項。
網路管理器也支援鉤子處理 —— 任何位於 /etc/NetworkManager/dispatcher.d/pre-up.d/ 的腳本在建立網路連線之前都會執行。
我想根據網路 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中文網其他相關文章!

Linux適用於服務器、開發環境和嵌入式系統。 1.作為服務器操作系統,Linux穩定高效,常用於部署高並發應用。 2.作為開發環境,Linux提供高效的命令行工具和包管理系統,提升開發效率。 3.在嵌入式系統中,Linux輕量且可定制,適合資源有限的環境。

簡介:通過基於Linux的道德黑客攻擊數字邊界 在我們越來越相互聯繫的世界中,網絡安全至關重要。 道德黑客入侵和滲透測試對於主動識別和減輕脆弱性至關重要

Linux基礎學習從零開始的方法包括:1.了解文件系統和命令行界面,2.掌握基本命令如ls、cd、mkdir,3.學習文件操作,如創建和編輯文件,4.探索高級用法如管道和grep命令,5.掌握調試技巧和性能優化,6.通過實踐和探索不斷提陞技能。

Linux在服務器、嵌入式系統和桌面環境中的應用廣泛。 1)在服務器領域,Linux因其穩定性和安全性成為託管網站、數據庫和應用的理想選擇。 2)在嵌入式系統中,Linux因其高度定制性和高效性而受歡迎。 3)在桌面環境中,Linux提供了多種桌面環境,滿足不同用戶需求。

Linux的缺點包括用戶體驗、軟件兼容性、硬件支持和學習曲線。 1.用戶體驗不如Windows或macOS友好,依賴命令行界面。 2.軟件兼容性不如其他系統,缺乏許多商業軟件的原生版本。 3.硬件支持不如Windows全面,可能需要手動編譯驅動程序。 4.學習曲線較陡峭,掌握命令行操作需要時間和耐心。

Linuxisnothardtolearn,butthedifficultydependsonyourbackgroundandgoals.ForthosewithOSexperience,especiallycommand-linefamiliarity,Linuxisaneasytransition.Beginnersmayfaceasteeperlearningcurvebutcanmanagewithproperresources.Linux'sopen-sourcenature,bas

Linux的五個基本組件是:1.內核,管理硬件資源;2.系統庫,提供函數和服務;3.Shell,用戶與系統交互的接口;4.文件系統,存儲和組織數據;5.應用程序,利用系統資源實現功能。

開啟智能家居新篇章:基於Ubuntu的開源家庭自動化系統 智能家居技術徹底改變了我們與生活空間的互動方式,為日常生活帶來了便利、安全和能源效率。從遠程控制燈光和電器,到監控安全攝像頭和自動化氣候控制,智能家居技術變得越來越普及。 然而,許多商業智能家居系統存在局限性:高昂的成本、隱私問題以及有限的兼容性。幸運的是,開源軟件解決方案結合Ubuntu的強大功能,提供了一種替代方案——允許用戶創建可定制、經濟高效且安全的智能家居生態系統。 本指南將探討如何使用Ubuntu和開源工具設置家庭自動化系統。


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

Dreamweaver Mac版
視覺化網頁開發工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SublimeText3漢化版
中文版,非常好用