How to setup Tor proxy on Linux.
Tor,The Onion Router,又稱洋蔥網路,是一種匿名上網的開源技術,連上網路的時候會經過多次跳轉,可以有效隱藏使用者的IP,保護上網隱私。
此外,連上Tor網路,使用者便能存取以.onion位址結尾的網站(俗稱暗網)。
Ivon這裡會分享Linux系統的設定Tor連線的方法,以Ubuntu為例,內容包含:
- 跑Tor代理伺服器,讓其他電腦上的程式自由指定是否用這個連線上網。
- 如何只讓部份程式走Tor連線,其他程式不受影響。
- 如何讓Linux全域使用Tor連線
本文假定讀者的電腦能夠正常存取Tor網路,不包含繞過中國防火長城(GFW)的教學。如果沒有辦法連線到Tor網路,你要先找前置代理繞過。
1. 安裝Tor代理伺服器服務#
「Tor」跟「Tor瀏覽器」是不一樣的東西,這裡我們要安裝的是Tor代理伺服器。要讓電腦連上Tor網路,必須跑一個Tor代理伺服器服務,再手動指定程式使用使用該代理伺服器上網。
Tor服務本身也可以用來架站,啟用「HiddenService」功能之後,會隨機分配一個.onion的位址,讓別人能透過該位址連上你Linux伺服器的網站。
- 以Ubunut來說,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伺服器不直覺,那就用圖形工具Ceburator跑代理伺服器。這個代理伺服器是獨立的應用程式,跟上面安裝的Tor不一樣。
Ceburator可以用Flatpak安裝:
flatpak install flathub io.frama.tractor.carburetor
開啟後點選連線,跑一個Tor的代理伺服器服務。
2. 讓部份程式使用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/ip
3. 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/envrionment
,加入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
4. 安裝Tor瀏覽器#
這是專為存取Tor網路所設計的瀏覽器,基於Firefox開發,內建Tor代理伺服器。
如果你已經安裝了Tor代理伺服器服務,就不太需要裝這個瀏覽器了。
不過Tor瀏覽器提供比Firefox更為強大的隱私保護功能,例如隱藏使用者指紋,還有禁止執行JavaScript和一鍵切換Tor迴路的按鈕,也不會蒐集任何使用者資料。要達成最高隱私瀏覽效果,那麼Tor瀏覽器依然是個好選擇。
雖然各大Linux發行版都有收Tor瀏覽器套件(例如Ubuntu可以用sudo apt install torbrowser-launcher
安裝),但可能會是舊版。建議到Tor瀏覽器官網下載最新版,將tar.xz檔解壓縮,點選start-tor-browser
啟動瀏覽器。
Tor瀏覽器也可以透過Flatpak安裝。不過Flatpak版的瀏覽器可能安全性會較低,參考Flatpak browsers not secure?
flatpak install org.torproject.torbrowser-launcher
Tor瀏覽器開啟後應該會自動連上Tor網路。