交流評論、關注點贊

  • Facebook Icon臉書專頁
  • telegram Icon翻牆交流電報群
  • telegram Icon電報頻道
  • RSS訂閱禁聞RSS/FEED訂閱

「如何翻牆」系列:掃盲 Tor Browser 7.5——關於 meek 插件的配置、優化、原理

2019年12月19日 8:45 PDF版 分享轉發

文章目錄
★引子
★Tor 是啥?
★前些年,為啥 Tor 無法在天朝內【獨立聯網】?
★為啥 meek 插件可以幫 Tor【復活】?
★基本使用教程
★常見問題解答(FAQ)
★如何優化「內置的 Firefox」?
★簡介 meek 網橋的技術原理

★引子

3年前(2014年10月),Tor 官網發布了全新的 4.0 版本——該版本引入了 meek 這個牛逼的流量混淆插件,可以讓 Tor 在牆內獨立聯網。
當年俺已經寫過一篇教程(在「這裏」),跟大伙兒分享 meek 使用心得(包括:安裝、配置、優化、技術原理)。
如今三年半過去了,Tor Browser 已經發展到 7.5 版本,(與 4.0 相比)配置界面有很多變化。上周,某熱心讀者在博客評論區提議,要俺更新一下 meek 的教程,於是有了今天這篇。

★Tor 是啥?

Tor 是洋文「The Onion Router」的縮寫,中文又稱「洋蔥網路/洋蔥路由」。
它是一款非常老牌的工具(老網民親切地稱之為:戴「套」翻墻)。說它是翻牆工具,其實貶低它了——它不僅僅可以翻牆,還是一款很牛B 的【隱匿性工具】——在你上網時,幫你隱匿自己的【真實公網 IP】。
關於 Tor 的更多介紹,請看《「如何翻牆」系列:關於 Tor 的常見問題解答》。(不熟悉 Tor 的同學,最好先看完那篇,然後再看本文)

★前些年,為啥 Tor 無法在天朝內【獨立聯網】?

大約在2010年的兩會期間, 開始全面屏蔽 Tor 在全球的節點(包括網橋)——也就是把這些節點都列入「IP 黑名單」。從那之後,天朝之內的 Tor 就很難獨立聯網了。
順便說一下:
從2010到2014年,雖然 Tor 在牆內無法【獨立】聯網,但是可以利用雙重代理的方式,藉助其它翻牆工具聯網,教程參見《如何隱藏你的蹤跡,避免跨省追捕[5]:用多重代理隱匿公網IP》。

★為啥 meek 插件可以幫 Tor【復活】?

◇原理概述

在本文開篇處俺提到:Tor Browser 從 4.0 版本開始,內置了 meek 流量混淆插件。有了這個插件,可以把 Tor 流量偽裝成訪問平台的流量。當你的數據流量到達雲計算平台之後,會經過一系列中轉(具體的技術原理,本文末尾有簡介),最終轉向你真正訪問的網站。
這麼做的好處在於:
1. 由於傳輸流量經過偽裝,GFW 比較難區分「偽裝的 Tor 流量」和「真正訪問雲計算的普通流量」。
2. 由於 meek 依賴的這幾個雲計算平台都是大公司(亞馬遜、微軟)提供的,GFW 不太敢隨便封殺它們的公網 IP 地址。
注:meek 的這種手法,技術行話稱之為【依附的自由】。

◇優點

1.
這幾個大公司的雲平台,有很多國內的商業公司也在用,GFW 不敢輕易封鎖這幾個雲計算平台的「伺服器 IP」。

2.
俺初步使用下來,感覺線路還是比較穩定。

3.
由於 Tor 本身就是多重代理(默認三重),所以當你用 Tor + meek 翻牆,你的「公網IP」的隱匿性會明顯高於其它「單重代理」的工具(比如:自由門無界

◇缺點

1.
速度還不夠快。俺自測的結果,大約是幾十個 KB/s(位元組率)。這個速度看視頻肯定沒戲,看網頁還可以。
希望今後可以有明顯的改善——比如 Tor 社區部署更多的 meek 網橋;或者對代碼和架構進行優化。
注:有熱心讀者反饋說速度可以達到 100KB/s,俺估計不同的省份或者不同的 ISP,效果可能不同。

搬瓦工翻牆 Just My Socks

★基本使用教程

先掃盲一下最基本的使用:如何配置 Tor Browser,讓它走 meek 類型的網橋。

◇獲取安裝包

通過官網下載
首先,你要到 Tor 的官網去下載。下載頁面在」這裏「。
這個頁面上提供了 Windows、Linux、Mac OS 三大平台的下載鏈接;並且也提供了不同語言(包括中文)的安裝包——點擊下載頁面的「Other Languages」就可以選語言。

Ad:美好不容錯過,和家人朋友一起享受愉快時光,現在就訂票

通過 BT Sync/Resilio Sync 獲取
俺提供了一個 BTsync 網盤,裡面包含各種常見翻牆工具,Tor Browser 也在其中。該網盤的同步密鑰是:

BTLZ4A4UD3PEWKPLLWEOKH3W7OQJKFPLG

順便說一下:
如果你想使用 BTsync,建議先看如下這幾篇教程:
掃盲 BTSync(Resilio Sync)——不僅是同步利器,而且是【分散式】網盤
聊聊 GFW 如何封殺 Resilio Sync(BTSync)?以及如何【免翻牆】繼續使用?

◇安裝

安裝過程的第一步會讓你選擇安裝界面的語言。不熟悉洋文的同學,可以先切換為【chinese】。
整個安裝過程很傻瓜化,沒啥好說的。你就照著安裝嚮導一步步往下走,既可。

◇網路配置

第一次運行 Tor Browser 會出現如下網路設置的對話框。只需按照俺給出的截圖進行配置,就可以讓 Tor 通過 meek 插件聯網。

不見圖 請翻牆
 

不見圖 請翻牆
 

不見圖 請翻牆
 

不見圖 請翻牆
 

不見圖 請翻牆

◇版本升級

如果你啟動了 Tor Browser 之後,看到如下提示,說明 Tor Browser 內置的 Firefox 需要升級版本。

不見圖 請翻牆

先點擊如下菜單項,就會彈出升級的對話框,並自動下載最新版本的 Tor Browser。

不見圖 請翻牆
 

不見圖 請翻牆

◇安全設置

還有一個「安全設置」的功能,也簡單說一下。先點擊如下菜單項。

不見圖 請翻牆

然後會彈出一個對話框。通過移動對話框左側的滑塊,可以切換不同的安全等級(共3級)。具體截圖如下:

不見圖 請翻牆
 

不見圖 請翻牆
 

不見圖 請翻牆

★常見問題解答(FAQ)

◇Tor Browser 提供的 SOCKS 代理,埠號是多少?

Tor Browser 內置了 Tor。這個內置的 Tor 會在本機地址(127.0.0.1)開啟一個 SOCKS 的監聽埠。
Tor Browser Bundle 軟體包從?2.3.25?版本開始,其內部 Tor 提供的 SOCKS 監聽埠號改為?9150,而 Tor 的其它軟體包(比如 Tor Expert Bundle)繼續使用?9050?作為 SOCKS 代理的埠號。
由於埠號的改動,導致很多翻牆的同學,把埠號設錯了,功虧一簣 🙁

◇如何讓【本機】的第三方軟體通過 Tor Browser 聯網?

這個問題要分兩種情況來描述——關鍵看第三方軟體是否支持 SOCKS 代理。

第三方軟體支持 SOCKS 代理
前面說了:Tor Browser 內置的 Tor 會在本機地址(127.0.0.1)開啟一個 SOCKS 埠,埠號是?9150
因此,如果某個網路軟體跟 Tor Browser 安裝在同一個操作系統中,那麼該軟體就可以利用 Tor Browser 內置的 Tor,進行翻牆。
舉例1:
假如你不喜歡 Tor Browser 內置的 Firefox,喜歡用自己的 Chrome。那麼你可以設置 Chrome,讓 Chrome 走 Tor 提供的 SOCKS 代理。
舉例2:
假設你想讓自己的 Skype 走 Tor 的線路,同樣也可以修改 Skype 的代理設置,讓 Skype 走 Tor 的線路聯網。

第三方軟體只支持 HTTP 代理,【不】支持 SOCKS 代理
這種情況就稍微麻煩一些——你需要利用 Privoxy 這款牛X的工具,來實現【HTTP 代理轉 SOCKS 代理】。關於 Privoxy 的掃盲教程,俺在3年前(2014)寫過一篇(如下),本文這裏就不再多費口水了。
如何用 Privoxy 輔助翻牆?

◇如何【跨機器】共享 Tor Browser 的翻牆通道?

要想【跨機器】共享 Tor Browser 的翻牆通道,同樣要考慮第三方軟體是否支持 SOCKS 代理。關於這點,前一個小節已經介紹過了,此處不再羅嗦。
下面介紹兩個招數——「招數1」是專門針對 Tor 的;「招數2」是通用的(也可以用於其它翻牆工具)。

招數1:修改 Tor 的配置文件
在 Tor Browser 的安裝目錄下搜索?torrc?文件。找到後用記事本(notepad)打開,在該文件末尾新增一行,內容如下。

SOCKSPort  0.0.0.0:9150

修改完記得保存,然後記得重啟 Tor Browser。之後,Tor 的監聽埠就會綁定到?0.0.0.0?這個地址——意思就是說,任何地址(任何機器)都可以連接到 Tor 的監聽埠。
(嘮叨一下:如果要跨機器共享 Tor 的 SOCKS 埠,別忘了修改防火牆的配置,允許?9150?埠的 TCP 連入)

招數2:埠轉發
除了上述方法,你還可以參考俺之前的博文《多台電腦如何共享翻牆通道》。此文中介紹了兩種常見的「埠轉發」方式。
埠轉發的好處是:跟具體的翻牆軟體無關——既可以用於 Tor,也可以用於其它的翻牆代理。

◇如何剝離「內置的 Firefox」?

經過俺的初步研究:如果你想用 meek 插件,就【沒辦法】剝離內置的 Firefox。因為 Tor 的這個 meek 插件需要 Firefox 才能正常工作。
雖然無法剝離,但還是有希望進行一些優化滴。請看下一節。

◇Tor Browser 可以做成免安裝的綠色版嗎?

可以!
比較簡單的做法是:
1. 先安裝一遍
2. 配置好 meek
3. 把安裝目錄打個壓縮包
然後就可以把這個壓縮包拿到其它電腦上,解壓並運行。

★如何優化「內置的 Firefox」?

本小節針對如下兩種人:
1. 想用自己的瀏覽器,不喜歡 Tor Browser 內置的 Firefox
2. 只拿 Tor 來充當翻牆代理,完全不需要用到瀏覽器

◇為啥需要優化?

當你按照前面的基本教程,把 Tor Browser 啟動起來並利用 meek 這個流量混淆插件翻牆成功。這時候 Tor Browser 會在內存中運行如下幾個進程(請看截圖)。

不見圖 請翻牆

截圖中顯示的是進程的父子關係(術語叫「進程樹」)。Windows 內置的「任務管理器」只能顯示「進程列表」,無法顯示「進程樹」。俺這裏用的是【Process Explorer】(該工具由微軟官網提供,鏈接在「這裏」)
只要你眼睛沒瞎,自然會發現:在 Tor Browser 的進程樹中,有兩個 Firefox 進程。這是咋回事捏?俺來解釋一下:
【最上面】的那個 Firefox 對應的就是你看到的 Firefox 瀏覽器界面。而【下面】那個 Firefox 是用來跟 meek 插件搭配的(俺猜測是用來進行網路流量轉發)。這也就是為啥俺剛才說【Firefox 沒法剝離】。因為 Firefox 參与了 meek 插件的工作。
現在,假設你不想用內置的 Firefox,想用別的瀏覽器,那麼最上面的那個 Firefox 進程對你而言就是多餘的(而且浪費了你的系統內存)。但是沒有它,你又沒法啟動 Tor,咋辦捏?

◇如何優化?

俺想了一個解決辦法:不依賴【內置的】 Firefox,直接啟動 Tor(以及 meek 插件)。操作步驟如下:

1. 先正常啟動一次
你先根據俺前面介紹的教程,把 Tor Browser 正常啟動一次,並配置好 meek 插件。

2. 製作一個啟動腳本(bat 批處理文件)
首先,俺準備了一個 BAT 腳本(由於這個腳本很簡單,只有一行,就不放到網盤上了)。這個腳本的內容如下:

.\TorBrowser\Tor\tor.exe –defaults-torrc .\TorBrowser\Data\Tor\torrc-defaults -f .\TorBrowser\Data\Tor\torrc DataDirectory .\TorBrowser\Data\Tor GeoIPFile .\TorBrowser\Data\Tor\geoip GeoIPv6File .\TorBrowser\Data\Tor\geoip6

把上述內容複製下來,用記事本(notepad)保存成某個批處理文件(記得擴展名要用?.bat?,比如說就叫?run.bat)。
友情提醒一下:上述內容總共只有一行,中間【不要】出現換行/回車。保存的時候,文件編碼用 ANSI,【不要用】UTF8

3. 把上述腳本放置到 Tor Browser 的主目錄下
假設你把 Tor Browser 安裝到 XXX 目錄,那麼俺所說的「主目錄」就是:XXX 目錄下的 Browser 子目錄
(放置批處理文件的目錄【一定不要搞錯】,否則運行不了)

4. 運行上述腳本
這步很簡單——只需在資源管理器裏面雙擊這個 bat 文件,既可。運行之後會彈出一個黑色的命令行窗口。
這時候,如果你手頭有 Process Explorer,再去查看系統中運行的進程,就會看到如下(截圖):

不見圖 請翻牆

從截圖中可以看出,原先的兩個 Firefox 如今只剩下一個啦(節約了不少內存)。

◇其它平台

由於俺的讀者裏面,以 Windows 用戶居多,所以剛才舉了 Windows 的例子(bat 腳本)。如果你用的是其它操作系統(Linux 或 Mac OS X),可以參照俺的例子,依樣畫葫蘆。

★簡介 meek 網橋的技術原理

(如果你是技術菜鳥,本小節可以略過不看,以免浪費時間)

◇啥是「流量混淆」?

首先,Tor 網路內部(從「你本機」一直到「出口節點」)的傳輸是強加密的,別人無法偷窺你的真實網路流量。除非 Tor 軟體本身出現嚴重安全漏洞 或者 你碰到的「出口節點」是蜜罐。
雖然別人無法偷窺你的真實上網內容,但是如果有人(比如:電信運營商)監控你的流量,可以判斷出你在使用 Tor——(請注意:「判斷流量類型」【不等於】「解密內容」)。
而「流量混淆」的作用就是:把 Tor 流量偽裝成其它的上網流量,讓監控者看不出你在用 Tor。
出於軟體架構方面的考慮,「流量混淆」的功能不是做到 Tor 的核心軟體中,而是通過插件的方式來提供。因為「混淆流量」的方式是多種多樣的,用插件來擴展,就無需頻繁改動核心模塊的代碼。

◇普通的「流量混淆插件」,有啥缺點?

在 meek 之前,Tor 開源社區已經出過好幾款流量混淆插件。俺就拿 obfsproxy 來舉例——下面是 obfsproxy 的示意圖。

不見圖 請翻牆
  圖中的「Tor client」和「obfsproxy client」在你本機,他們要正常工具,就需要先連接到「obfsproxy server」。
雖然 GFW 無法區分被 obfsproxy 混淆過的流量,但是因為全球的 obfsproxy server 數量是有限的,GFW 可以把所有的「obfsproxy server」都加入「IP 黑名單」。如此一來,就足以讓 obfsproxy 失效。

◇「meek 插件」有啥優點?

meek 插件跟 obfsproxy 插件類似,也是 client/server 架構。meek client 也是跟 Tor client 一起運行在你本機。下面這張是 meek 的示意圖(摘自 Tor 官網的文檔):

不見圖 請翻牆

從圖中可以看出,meek 跟 obfsproxy 的主要差異在於:meek server 並不是直接暴露出來的。換句話說,你本機【不需要】直接連接 meek server,而是直接連接雲計算平台的伺服器(圖中的「Frontend Server」)。
如此一來,即便 GFW 知道 meek server 的 IP,並且封殺這些 IP,也【沒有意義】。而雲計算平台的 IP,GFW 又不敢封殺。這就是 meek 插件可以突破 GFW 的關鍵所在。

搬瓦工翻牆 Just My Socks

推薦安卓翻牆APP:SpeedUp VPN

Android版SpeedUp VPN,基於ShadowsocksRb,與SSR和Shadowsocks協議兼容,內置免費SSR伺服器。 如果您對內置SSR VPN伺服器不滿意,則可以自行添加或導入任何SSR和Shadowsocks伺服器使用。

如果你是 IT 技術人員,想更多地了解 meek 的機制,請看 Tor 官網的相關文檔(鏈接在「這裏」,是洋文)

俺博客上,和本文相關的帖子(需翻牆)
如何翻牆》(傳說中的翻牆入門教程,不定期更新)
關於 Tor 的常見問題解答
戴「套」翻墻的方法
多台電腦如何【共享】翻牆通道——兼談【埠轉發】的幾種方法
如何讓【不支持】代理的網路軟體,通過代理進行聯網(不同平台的 N 種方法)
如何用 Privoxy 輔助翻牆?
掃盲 BTSync(Resilio Sync)——不僅是同步利器,而且是【分散式】網盤
聊聊 GFW 如何封殺 Resilio Sync(BTSync)?以及如何【免翻牆】繼續使用?
掃盲 VPN Gate——分散式的 VPN 伺服器
新版本無界——賽風3失效后的另一個選擇
雙管齊下的賽風3
自由門——Tor 被封之後的另一個選擇
掃盲 VPN 翻牆——以 Hotspot Shield 為例
簡單掃盲 I2P 的使用
如何隱藏你的蹤跡,避免跨省追捕》(系列)

版權聲明
本博客所有的原創文章,作者皆保留版權。轉載必須包含本聲明,保持本文完整,並以超鏈接形式註明作者編程隨想和本文原始地址:
https://program-think.blogspot.com/2018/04/gfw-tor-browser-7.5-meek.html

喜歡、支持,請轉發分享↓Follow Us 責任編輯:石嵐