本指南將協助您設定一個從原始碼編譯的 WebTunnel 橋接器,以協助受審查的使用者連接到 Tor 網路。
0. 設定您的網域名稱和網路伺服器
在依下列指示操作前,須先設定好網域與網頁伺服器。
請參閱 WebTunnel guide 的第一部分以了解如何設定您的 Web 伺服器。
1. 安裝 Golang
若要建置 WebTunnel 伺服器執行檔,您需要安裝 Golang。
您可以在 Debian 上執行以下指令安裝 Go:
$ sudo apt install golang
2.克隆並編譯
克隆 WebTunnel Git 儲存庫:
$ git clone https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/webtunnel
並編譯WebTunnel伺服器二進位檔案:
$ cd webtunnel/main/server
$ go build
最後,將執行檔複製到其他位置:
$ sudo cp server /usr/local/bin/webtunnel
3. 安裝 Tor
在類似 Debian 的系統上,從 Tor Debian repository 安裝 Tor。
$ sudo apt install apt-transport-https lsb-release
並執行以下指令以啟用 Tor Debian 軟體倉庫:
$ CODENAME=$(lsb_release -cs)
$ cat <<EOF > /etc/apt/sources.list.d/tor.list
deb [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org $CODENAME main
deb-src [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org $CODENAME main
EOF
匯入 Tor Project 金鑰圈:
$ wget -qO- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --dearmor | sudo tee /usr/share/keyrings/tor-archive-keyring.gpg >/dev/null
最後,更新您的套件清單並安裝 Tor:
$ sudo apt update && sudo apt install tor deb.torproject.org-keyring -y
4. 編輯您的 torrc
編輯您的 Tor 配置文件,通常位於 /etc/tor/torrc 並將其內容替換為:
- 將
url=https://yourdomain/path 替換為您的 WebTunnel url,包括您的網域和秘密路徑;
<address@email.com> with your contact email address;
Nickname WebTunnetTest 是您橋的暱稱。
BridgeRelay 1
ORPort 127.0.0.1:auto
AssumeReachable 1
ServerTransportPlugin webtunnel exec /usr/local/bin/webtunnel
ServerTransportListenAddr webtunnel 127.0.0.1:15000
ServerTransportOptions webtunnel url=https://yourdomain/path
ExtORPort auto
ContactInfo <address@email.com>
Nickname WebTunnelTest
SocksPort 0
5. 重新啟動 Tor
啟用並啟動 Tor:
$ sudo systemctl enable --now tor.service
若服務已在運行,請重新啟動以使設定生效:
$ sudo systemctl restart tor.service
6.編輯並重新載入AppArmor to權限
若要允許 tor 執行您的 WebTunnel 二進位文件,請編輯位於 /etc/apparmor.d/system_tor 的 AppArmor system_tor 設定文件,並新增一個允許 tor 執行 WebTunnel 的條目:
# During startup, tor (as root) tries to open various things such as
# directories via check_private_dir(). Let it.
/usr/local/bin/webtunnel ix,
重新載入 AppArmor 設定檔:
$ sudo apparmor_parser -r /etc/apparmor.d/system_tor
修改設定檔並重新載入後,請測試 tor 行程現在是否可在沒有任何 AppArmor 拒絕的情況下執行 /usr/local/bin/webtunnel。
檢查系統日誌(例如 dmesg 或 /var/log/syslog)以確保錯誤不會再次出現。
7. 監看歷程記錄
要確認您的網橋運行沒有問題,您應該會看到類似這樣的內容(通常在 /var/log/syslog 中或運行 sudojournalctl -e -u tor@default):
[notice] Your Tor server's identity key fingerprint is '<NICKNAME> <FINGERPRINT>'
[notice] Your Tor bridge's hashed identity key fingerprint is '<NICKNAME> <HASHED FINGERPRINT>'
[notice] Tor has successfully opened a circuit. Looks like client functionality is working.
[notice] Bootstrapped 100%: Done
您可以在 Relay Search 上監控 WebTunnel 橋接器的使用情況。
只要在表單中輸入橋接的 <HASHED FINGERPRINT> 並按「搜尋」。
設置橋後,橋大約需要三個小時才能顯示在中繼搜索中。
8. 最後的註釋
您的 WebTunnel 橋接預設會透過 Bridges website(亦稱 HTTPS 發佈器)自動分發。
除非操作員將 torrc 檔案中的 BridgeDistribution 設定明確配置為不同的選項,否則將套用此預設值。
如果設定為 HTTPS 以外的任何選項,則該橋將不會分發給使用者。
若您在設定橋接時遇到困難,請查看我們的說明章節。
如果您的網橋現在正在運行,您可以透過將網橋線路複製並貼上到 Tor 瀏覽器中來測試它。
若要建立您的 WebTunnel 橋接連線字串,您需要複製橋接的 FINGERPRINT,但請勿與雜湊指紋混淆,雜湊指紋是您可以在 Tor 中繼點搜尋網站上找到的指紋。
如果您複製散列指紋而不是網橋指紋,您將無法連線。
您可以在 /var/lib/tor/fingerprint 檔案中找到您的網橋指紋。
請記得只複製指紋,不要包含橋接的暱稱。
最後,您可將 URL 內容替換成您的網域與密鑰路徑。
您可在 torrc 的 ServerTransportOptions 那一行找到此設定。
現在只要將下方內容替換成您的 WebTunnel 橋接行即可。10.0.0.2:443 只是隨機選用、實際上未使用的 IP 位址;可插拔傳輸規格要求該處必須有 IP,因此才放一個。
webtunnel 10.0.0.2:443 FINGERPRINT url=https://yourdomain/path