搭建並維護一個 Snowflake 網橋

前言

Tor 作為一個公益項目, 每年通過捐贈獲得的收益少的可憐 — 其中一半還是政府捐助的. 去年又碰到了網橋數量嚴重不夠的問題. 我因為經常免費使用 Tor 的服務, 早有想要公益運行一個網橋或者中繼的念頭, 奈何 GFW 對 Tor 的流量高度敏感, 基本是運行半個小時就把 IP 永久封禁, 可謂是心有餘而力不足.

最近 Tor 推出了 Snowflake 協議, 顧名思義, 就是通過無數網友像雪花一樣的努力, 讓極權政府防不勝防, 最終讓萬惡的防火牆被滿天大雪埋葬. 原理是將 TOR 流量加密隱藏在正常的 WebRTC 協議流量中瞞天過海.

Diagram

Tor Project 的本意是讓自由世界的網民幫扶有網絡封鎖國家的網民, 但是還有一種更加有效的玩法, 就是讓本國可以連線到自由網絡世界的網友運行 Snowflake 網橋來轉發流量. 原理大概如下:


沒錯, 只是 Snowflake 節點移到了牆內. 原先網速 / 穩定性的瓶頸在與牆內 Client 和 牆外 Snowflake Proxies 之間的連線質量, 改進之後 Snowflake Proxies 的瓶頸被轉移到了 Snowflake Proxies 和牆外的連線質量 (第五步). 這樣一來, 防火牆就無法通過重點干擾 / 封殺 WebRTC 流量來封殺 Snowflake 協議了, 而要轉為對付那些有足夠方法混淆流量, 而且形式五花八門的過牆老滑頭們了, 難度直接提升幾個等級 🙂

運行 Snowflake

前面說了那麼多, 下面就到 Run the Bridge 的部分了.
關於維護這個網橋, 你應當熟悉 Snowflake 的文檔:

Snowflake 官方頁面
https://snowflake.torproject.org/

以下所有操作都建立在你可以穩定快速連結到 Tor 網絡的基礎上. 如果是使用瀏覽器跑 Snowflake, 按道理說給瀏覽器設置代理就可以了, 但是我沒有嘗試過, 不知道光瀏覽器代理有沒有效果, 還是建議儘量使用白名單的全局代理 (比方說繞過大陸) . 既然你能夠訪問我的博客, 你的配置應該是可靠的, 所以應該不需要配置太多東西.

作為瀏覽器插件跑 Snowflake (Addon)

插件安裝完成後在瀏覽器插件選單裡啟用就可以啦.

不使用插件在瀏覽器裡運行 Snowflake (Web Browser)

如果你出於什麼原因, 不想要在瀏覽器裡安裝 snowflake 插件, 或者不在使用 Firefox 或者 Chrome, (比如說 Safari) 但是仍然想要為社區做出貢獻, 可以打開此連結.

Tor Project 還提供了一個可愛的嵌入式徽章以供宣傳, 就像下面這樣

如果想要在自己的網站上也嵌入這個小徽章, 請使用以下代碼:

<iframe src="https://snowflake.torproject.org/embed.html" width="320" height="240" frameborder="0" scrolling="no"></iframe>

運行 Snowflake 的二進制文件 (Standalone)

如果有條件的話, 還是建議能在獨立的機器上穩定的運行 Snowflake 程序. 從可以調動的資源和穩定性的角度來說 Standalone 都比 Addon 或 Browser 要好太多.

Tor Project 官方提供了 snowflake 的 Docker 鏡像, thetorproject/snowflake-proxy, 但是只提供 x86_64 機器的鏡像.

docker run \
  --name snowflake \
  --net host \
  --restart unless-stopped \
  -d thetorproject/snowflake-proxy:latest

如果機器不是 x86_64 , 也沒有關係, 可以使用提供的 Dockerfile Build 一個鏡像:

wget https://gitlab.torproject.org/tpo/anti-censorship/docker-snowflake-proxy/-/raw/main/Dockerfile
docker build -t snowflake-proxy .

Thumbnail: Snow Flake by Ali Arda
If using the image violates your rights, or there’s anything related to copyright laws, please contact me at [email protected], I will deal with them immediately.

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *