How to setup Tor proxy on Linux.
Tor,The Onion Router,又稱洋蔥網路,是一種匿名上網的開源技術,連上網路的時候會經過多次跳轉,可以有效隱藏使用者的IP,保護上網隱私。
此外,連上Tor網路,使用者便能存取以.onion網址結尾的網站(俗稱暗網,儘管這個定義並不準確)。
Ivon這裡會分享Linux系統的設定Tor連線的方法,以Ubuntu為例,內容包含:
- 如何使用Tor瀏覽器存取.onion網址的網站
- 跑Tor代理伺服器,讓其他電腦上的程式自由指定是否用這個連線上網。
- 如何只讓部份程式走Tor連線,其他程式不受影響。
- 如何讓Linux全域使用Tor連線
本文假定讀者的電腦能夠正常存取Tor網路,不包含繞過中國防火長城(GFW)的教學。如果沒有辦法連線到Tor網路,你要先找前置代理繞過。
1. 安裝Tor瀏覽器#
最簡單連上Tor網路的方法,就是安裝專為存取Tor網路所設計的「Tor瀏覽器」。如果你只是要臨時看.onion網站,不要干擾電腦上其他程式的連線,安裝「Tor瀏覽器」就好。
Tor瀏覽器基於Firefox開發,內建Tor代理伺服器。可以用來看.onion網頁,也能上正常網站。
如果你已經安裝了Tor代理伺服器服務,就不太需要裝這個瀏覽器了,其他瀏覽器也能搭配Tor使用。不過Tor瀏覽器提供比Firefox更為強大的隱私保護功能,例如隱藏使用者指紋,還有禁止執行JavaScript和一鍵切換Tor迴路的按鈕,也不會蒐集任何使用者資料。要提高隱私瀏覽效果,那麼Tor瀏覽器依然是個好選擇。
- 各大Linux發行版都有收Tor瀏覽器套件,例如Ubuntu可以從套件庫安裝torbrowser-launcher,開啟後會自動下載最新版Tor瀏覽器:
sudo apt install torbrowser-launcherTor瀏覽器也可以透過Flatpak安裝。不過Flatpak版的瀏覽器可能安全性會較低,會破壞瀏覽器沙盒機制,參考Flatpak browsers not secure?
Tor瀏覽器開啟後應該會自動連上Tor網路。這樣就能打開.onion網址了。例如這是Duckduckgo搜尋網址:https://duckduckgogg42xjoc72x3sjasowoarfbgcmvfimaftt6twagswzczad.onion/

2. 安裝Tor代理伺服器服務#
「Tor」跟「Tor瀏覽器」是不一樣的東西,這裡我們要安裝的是Tor代理伺服器(proxy)。要讓電腦連上Tor網路,必須跑一個Tor代理伺服器服務,再手動指定程式使用使用該代理伺服器上網。
如果你只是要臨時看.onion網站,則只要安裝「Tor瀏覽器」就好(見上)。但是要讓整臺電腦都連上Tor網路的話,那麼就要安裝全域Tor代理伺服器。
Tor服務本身也可以用來架站,啟用「HiddenService」功能之後,會隨機分配一個.onion的位址,讓別人能透過該位址連上你Linux伺服器的網站。
- 以Ubuntu來說,Tor可以用套件管理器安裝
sudo apt install tor- 設定開機自動啟動服務
sudo systemctl enable --now tor- 查看是否已經連上Tor網路
sudo systemctl status tor- 如果需要換個迴路連線,就重新啟動Tor服務:
sudo systemctl restart tor- Tor每次啟動會隨機挑選國家,如果要指定出口節點或是設定Tor Relay,請編輯
/etc/tor/torrc設定檔。
替代選擇:如果你覺得命令行啟動Tor伺服器不直覺,那就用圖形工具Carburetor跑代理伺服器。這個代理伺服器是獨立的應用程式,跟上面安裝的Tor不一樣。
Carburetor可以用Flatpak安裝:
flatpak install flathub io.frama.tractor.carburetor開啟後點選連線,跑一個Tor的代理伺服器服務。
3. 讓部份程式使用Tor代理連線#
只讓部份程式使用Tor連線,其他程式不受影響。
Tor預設的SOCKS代理伺服器應該是127.0.0.1:9050
瀏覽器#
Firefox到設定 → 一般 → 網路設定,手動指定代理伺服器位址。
Chromium系瀏覽器會沿用系統的代理伺服器。需要安裝Proxy SwitchyOmega擴充功能,才能手動指定代理伺服器。
要確定瀏覽器有無成功連上Tor網路,可以用Tor官方網站https://check.torproject.org確認。
命令行程式#
一些命令行程式支援手動指定代理伺服器,例如git、wget、curl、apt都可以透過指令參數指定代理伺服器。不過最方便的還是透過proxychains,它可以讓命令行程式暫時使用Tor連線。
- 從Ubuntu套件庫安裝proxychains:
sudo apt install proxychains- 編輯設定檔
sudo vim /etc/proxychains.conf- 填入要使用的代理伺服器
[ProxyList]
socks5 127.0.0.1 9050- 這樣接在proxychains後面指令的程式便會使用Tor代理了。比如我用curl指令連上Tor Project官網確認目前的IP,應該會印出外國IP:
# 試比較兩者輸出結果的差異
curl https://check.torproject.org/api/ip
proxychains curl https://check.torproject.org/api/ip4. Linux設定全域Tor代理連線#
讓所有程式使用Tor上網。
Tor預設的SOCKS代理伺服器應該是127.0.0.1:9050
圖形界面設定法#
用桌面環境的系統設定就可以完成。
GNOME:系統設定 → 網路 → 代理伺服器,填入SOCKS伺服器位址。
KDE Plasma:系統設定 → 網路設定 → 代理,填入SOCKS伺服器位址。
爾後所有程式連線應該會自動使用Tor連線,例如Chromium系瀏覽器會沿用系統的代理伺服器設定。這點可以用Tor官方網站https://check.torproject.org確認。
但有些程式可能不會理會系統的代理伺服器設定,例如Firefox,依然需要手動指定代理伺服器。
命令行設定法#
Linux可以透過編輯/etc/environment,加入export http_proxy=環境變數的方式來設定全域Tor代理連線,不過不見得對所有程式有效。
這裡我們使用Perl寫成的nipe工具,方便設定全域Tor代理連線。
- 安裝nipe:
sudo apt install cpanminus
git clone https://github.com/htrgouvea/nipe
cd nipe
sudo cpanm --installdeps .- 安裝nipe服務
sudo perl nipe.pl install- 啟動nipe服務,之後所有程式上網都會經過Tor網路
sudo perl nipe.pl start- 連線到Tor Project官網,確認是否連上Tor網路:
curl https://check.torproject.org/api/ip- 關閉服務:
sudo perl nipe.pl stop

