# 9. Tor Browser 不完全指南

# 1 Tor Browser 的簡介

# 1.1 什麼是 Tor

Tor 是 The Onion Route 的縮寫,中文名稱是洋蔥路由,它是一個自由開源的專用於【網絡匿名】的軟體。Tor 的原理是在全球性的志願節點組成的【覆蓋網絡】(Overlay Network)中多次轉發和加密原始流量,實現分別向 ISP、目標網站伺服器及各 Tor 節點自身隱藏網站訪問者的真實 IP 地址或網絡活動的效果。

Tor 的洋蔥服務(onion service)包括為網站提供的洋蔥地址/.onion 域名,可用於隱藏網站伺服器的真實 IP。

用家可以訪問 https://check.torproject.org/ 來檢查自己是否已經連接到 Tor。如已連接到 Tor,會出現綠色洋蔥以及「Congratulations. This browser is configured to use Tor.」;反之則出現「Sorry. You are not using Tor.」。

# 1.2 什麼是 Tor Browser

Tor Browser (opens new window)The Tor Project (opens new window) 開發的旗艦產品,實質是整合了 Tor 的 Firefox 瀏覽器,可以被視為 Tor 的入口。

Tor Broswer 除了每次應用程式開啟後連接到 Tor 時需要用家多等待幾秒外,在用戶體驗上和其他瀏覽器並無太大差別,日常性使用 Tor Browser 並沒有那麼困難。

除了在 Tor Browser 使用 Tor,用家也可以將 Tor Browser 用作跳板,讓自己常用的瀏覽器連接到 Tor。做法是將瀏覽器的本地 SOCKS 監聽端口設定成 Tor Browser 的 9150 (Firefox 瀏覽器可以在設置中設定,Chrome 等默認使用系統代理的 Chromium 內核的瀏覽器需要借助 SwitchyOmega 等插件輔助設定)。

參見:
Tor 官網 (opens new window)
securityinabox | Tor Browser for Windows - 網絡匿名及審查規避 (opens new window)
編程隨想:「如何翻牆」系列:關於 Tor 的常見問題解答 (opens new window)

# 2 基於 Tor 的雙重代理

# 2.1 使用雙重代理的意義

使用基於 Tor 的雙重代理的意義有二:

  • 突破針對 Tor 的網絡封鎖
    • GFW 能夠有效阻斷 Tor 直連和 obfs4 混淆協議,其手法可能包括:
      • 識別 Tor/obfs4 網橋的流量特徵後並加以封鎖
      • 封鎖已知 Tor/obfs4 網橋節點的 IP 地址
  • 強化網絡匿名防護
    • 在【Tor 直連】的場景中:
      • ISP 知道用家使用了 Tor
    • 在使用 Proxy+Tor【雙重代理】的場景中:
      • ISP 知道用家訪問了代理伺服器,有可能知道用家使用了代理,
      • ISP 不知道用家使用了 Tor
      • 代理服務商知道用家使用了 Tor

建議當前網絡環境可以直連 Tor 的用家也使用【雙重代理】來實現更高強度的【網絡匿名】。

# 2.2 雙重代理的設置方法

初次打開 Tor Browser 時應用會彈出設置界面,要求用家先對 Tor 進行網絡設置。連接到 Tor 後,用家還可以前往 Preference > Tor > Tor Settings 修改 Bridges 和 Advanced 項下的網橋和前置代理設置。

在初始網絡設置界面中,勾選「使用代理訪問互聯網」。

輸入自己的前置代理信息:

  • 代理類型
    • 在 SOCKS 5 和 HTTP/HTTPS 之間二選一
  • 地址
    • 本地地址是 127.0.0.1
  • 端口
    • 查看自己的代理客戶端內查看本地 SOCKS/HTTP 監聽端口
  • 用家名和密碼(沒有可不填)

# 3 為 Tor 設置網橋

# 3.1 使用網橋的意義

Tor Browser 的網橋原本是用於對抗【網絡封鎖】的,不過 Tor 和 obfs4 網橋自身都成為了 GFW 的封鎖對象,meek-azure 網橋雖然可用但因速度過慢而意義有限。至少在中國,Tor 只有在使用 Shadowsocks 等可以突破 GFW 封鎖的代理工具作為【前置代理】的情況下方可用。

obfs4 網橋無法翻牆,但仍可用於強化【網絡匿名】。由於網橋列表是不完全公開的 (opens new window),僅從 IP 無法判定它就是網橋。網橋可能無法徹底隱藏用家使用 Tor 的事實,但仍可以提高第三方的追溯難度。

在使用 Proxy + obfs4 網橋+ Tor 的場景中:

  • ISP
    • 知道用家的真實 IP
    • 知道用家訪問了代理伺服器的 IP
    • 看到的是代理的流量(隱蔽性取決於代理的混淆方式)
    • 不知道用家實際訪問的網站及網頁內容
  • 代理服務商
    • 知道用家的真實 IP
    • 知道用家訪問了網橋的 IP
    • 看到的是經過 obfs4 混淆後的流量
    • 可能知道用家使用了網橋,進而知道用家使用了 Tor
    • 不知道用家實際訪問的網站及網頁內容
  • 網橋
    • 不知道用家的真實 IP 與實際訪問的網站及網頁內容
  • 中間節點
    • 不知道用家的真實 IP 與實際訪問的網站及網頁內容
  • 出口節點
    • 不知道用家的真實 IP
    • 知道用家實際訪問的網站
      • 網站使用 HTTPS 協議,出口節點不知道網頁內容
      • 網站使用 HTTP 協議,出口節點知道網頁內容

數據流向:

Tor Browser <=> 前置代理客戶端 <=> (ISP-GFW) <=> 代理伺服器 <=> 網橋 <=> Tor 中間節點 <=> Tor 出口節點 <=> 目標網站伺服器

(網橋和 Tor 客戶端都內置於 Tor Browser:應用程式 <=> Tor 客戶端 <=> 網橋客戶端)

# 3.2 網橋的設置方法

在初始網絡設置界面中,勾選「我所在的國家對 Tor 進行了封鎖」,之後選擇「內置網橋」,目前有「obfs4」、和「meek-azure」網橋可選,這裏建議使用「obfs4」網橋。

選擇「obfs4」後,用家可以選擇使用「內置網橋」、在線獲取網橋或者手動輸入網橋信息。用家可自行前往 https://bridges.torproject.org/ 獲取更多的網橋,比較篩選出適合自己的網橋。

*Alpha 版的 Tor Browser 提供了測試用的 Snowflake 網橋,有興趣的用家可以下載嘗試。

參見:有關密碼學的科普內容 | Proxy over Tor (opens new window)

# 4 使用三重代理

由於強大的匿名特性,Tor 被用於 spam 甚至不法用途,不少網站將 Tor 節點的 IP 列入了黑名單,對來自 Tor 的訪問進行限制或禁止(如要求通過 reCAPTCHA/hCaptcha 圖形識別驗證、限制註冊帳號、要求綁定手機號、凍結帳號等)。

【三重代理】是指在 Tor 的出口節點之後再套上一層【後置代理】,因此目標網站方只知道用家使用了代理,對用家使用 Tor 並不知情,因而可以改善對 Tor 不友好網站的訪問體驗。

參見:
编程随想|如何用 Tor 访问对 Tor 不友好的网站——扫盲“三重代理”及其它招数 (opens new window) (2020-08-31)
2047|沉默的广场:【三重代理】用Tor+迷雾通访问对tor不友好的网站 (opens new window) (2020-09-05)
2047|沉默的廣場:用tor訪問對tor不友好的網站(二)——使用V2Ray上游代理功能 (opens new window) (2021-03-10)