📅 歷史內容提醒: 本文最初發表於 2018 年 2 月。雖然可插拔傳輸的概念仍然有效,但具體的配置步驟和工具可能已經改變。現代版本的 Tor Browser 已內建支援 meek 和 obfs4 傳輸。有關當前 macOS 配置,請參閱 Tor Project 官方文件

本文解決一些使用者面臨的常見問題:在執行 brew install tortor 後無法連接到 Tor 目錄伺服器。這個失敗會阻止進一步檢索中繼節點以在 Tor 網路中建立路徑。

Terminal showing Tor connection failure when unable to reach directory server after installation

為了促進成功連接到 Tor 目錄伺服器,Tor Project 開發了幾種稱為可插拔傳輸(Pluggable Transports)的方法。這些包括 obfs4 和 meek 等。特別是 meek,它將流量重新封裝以類似 HTTPS,使其更難被識別。其他方法有趣地將流量重新封裝以模仿 Skype。

Diagram illustrating Tor pluggable transports including obfs4 and meek for circumventing censorship

本文將重點介紹 Meek 可插拔傳輸,引導您完成訪問 Tor 目錄伺服器的過程。在使用 brew install tor 安裝 Tor 後,下一步

是從 Tor Project 的 Git 儲存庫克隆 Meek 工具:

git clone https://git.torproject.org/pluggable-transports/meek.git

進入 /meek/meek-client 並執行 make(確保已安裝 Go 並使用提供的連結解決任何套件錯誤)。如果成功,您將看到一個 meek-client 可執行檔。

Terminal output showing successful make command execution creating meek-client executable

將此 meek-client 可執行檔移動到 /usr/local/etc/tor

File browser showing meek-client executable moved to /usr/local/etc/tor directory

下一步是編輯位於 /usr/local/etc/tor/torrc 的 Tor 配置檔案。這不需要 sudo 權限。在檔案頂部添加以下行,指定使用橋接、橋接地址(以 Azure 為例)和 Meek 外掛:

UseBridges 1
Bridge meek 0.0.2.0:3 url=https://meek.azureedge.net/ front=ajax.aspnetcdn.com
ClientTransportPlugin meek exec ./meek-client --log meek-client.log

儲存對 torrc 的更改。最後一步是在終端機中執行 tor

可能的錯誤

即使設定正確,您也可能遇到阻止 Tor 執行的錯誤:

Terminal displaying Tor error message that can be resolved by deleting log files

在這種情況下,嘗試刪除 /usr/local/etc/tor 中的日誌檔案。這通常可以解決問題。

參考資料:

  1. 可插拔傳輸列表
  2. Meek 和 Domain Fronting 簡報