1. 程式人生 > >如何在Windows系統上設定Tor

如何在Windows系統上設定Tor

首先介紹一下Tor,Tor其實是The Onion Routing的縮寫,即洋蔥路由,目前已經發展到第三代了。

它的最初的設計目的是防止要訪問的目的網站追蹤連線的來源,從而保護使用者的隱私,提高安全性。通俗一點說,就是為了隱匿你的身份。也就是說,你隨便在什麼網站釋出了任何資訊,理論上都是查不到你的,即使你的包在任何中間傳輸節點上被截獲也沒關係。

另外,在國內還有一個非常現實的作用,就是可以翻牆。

為什麼叫洋蔥代理呢?這個名字我覺得起的還是非常形象的。


在Tor網路中,任何連線從它的起點,到最終的目的地,中間都會經過3個節點。這些節點之間都是點對點加密的。從起點到第一個中繼節點(Relay)間,經過三次加密。到達第一個節點後解密一次,獲得下一跳中繼節點的地址再傳輸,這樣從第一個中繼節點到第二個中繼節點間就有兩次加密,並且第一個中繼節點只知道第二個中繼節點的地址,而不知道第三個中繼節點的地址。當資訊到達第二個中繼節點後,再解一次密,再傳給第三個中繼節點。而到第三個中繼節點後,再解一次密,再發送給目的地址。這就好比剝洋蔥,每到一個節點剝一層(為什麼不是剝包菜?)。

這樣做的好處是,任何一個傳遞節點都不能夠完全知道資料的起點和終點。對於目的網站來說,它只能得到最後一個傳遞節點的IP地址。通過Tor,就可以完全影藏傳送資料的人(據說美劇《紙牌屋》裡面的黑客用的就是這個)。

這裡就有一個問題,細心的讀者一定發現了,那就是第三個節點已經可以得到最終完全沒有加密的原始資料了。這樣其實非常不安全,不懷好意的人就可以在最終傳遞節點上安裝抓包工具,抓到應用層的資訊。所以,如果你要交流的是非常敏感的資訊,請使用安全的端到端協議。例如,如果你要使用使用者名稱和密碼登陸一個網站,請確保使用HTTPS連線,否則會存在風險。

這裡還有一個問題,Tor的客戶端是如何知道Tor網路中的中繼節點有哪些的呢?這裡有一個概念,叫目錄伺服器(Directory Server)。目前,官方的目錄伺服器一共有9臺,它們之間會定期同步資料。如果想成為中繼節點,Tor客戶端必須要向其中一臺目錄伺服器註冊自己。而且Tor的客戶端是不用直接連線到官方的目錄伺服器來獲得所有的中繼節點資訊的,而是通過所謂的目錄映象(Directory Mirror)。這些目錄映象會定期的從官方的目錄伺服器上拷貝一份最新的資料。這樣做的好處是分擔了目錄伺服器的負擔,事實上,大部分中繼節點都被配置成了目錄映象。

有了前面介紹的中繼節點和目錄伺服器的概念,這裡大致介紹一下Tor的連線過程。

1)首先,Tor的客戶端會先從目錄伺服器或者目錄映象上獲得當前Tor網路中所有中繼節點的資訊;


2)然後,該客戶端會隨機的在所有中繼節點列表中選擇3個,並建立連線;


3)如果Tor客戶端想訪問另外一個地址,則會再隨機選取3箇中繼節點,建立另外一條連結,而不會用前面建立的那條虛電路。


如果所有的中繼節點都是通過從目錄伺服器或者目錄映象得到的,那想封殺Tor就很簡單了,直接讀取目錄伺服器,把所有中繼節點IP地址都拿到,直接加到黑名單中就行了。

事實上,很多地方的政府也是這麼做的。那有沒有辦法繞過這種限制呢?Tor為此還專門引入了所謂的網橋(Bridge)節點。

什麼是網橋節點呢?其實它也是中繼節點(所以網橋節點有時也較網橋中繼節點,Bridge Relay),只不過和普通中繼節點不同的是,它不會把自己註冊到官方的目錄伺服器中,這樣就不能方便的查到了,也就沒法阻擋了。為什麼稱作網橋節點,因為它是用來在監管網路和自由網路之間的一個橋接。但這也是面雙刃劍,想擋的人看不到了,想用的人也沒法方便的拿到。

上面講了那麼多原理和概念,下面我們講講如何配置一個Tor客戶端,有了上面這些概念做鋪墊之後,講起來會更加的容易。

1)首先下載並安裝Tor的客戶端

下載完成後,直接點選安裝就好了,這裡不再贅述。

2)用Vidalia配置Tor客戶端

安裝好後,開啟Vidalia,


然後選擇“Settings”,進入設定介面,選擇“Sharing”,選擇“Run as a client only”,然後點“OK”。


理論上過一段時間之後,Tor客戶端就會連線上Tor網路,但目前Tor只提供Socks代理,如果想要用HTTP/HTTPS代理,還需要再加一個Socks代理轉HTTP/HTTPS代理的軟體,這裡介紹使用Polipo。

3)安裝並配置Polipo

下載下來是一個zip包,直接解壓出來就可以用了。


解壓出來後除了polipo的可執行檔案之外,還有配置檔案的示例,可以直接在上面更改,也可以拷貝一份出來後再更改。

其中有幾項是必須要更改的。找到“socksParentProxy”,去掉前面的“#”,改成"localhost:9050",9050是Tor客戶端預設開的Socks代理埠。


再找到“diskCacheRoot”,去掉前面的“#”,內容留空,表示不用磁碟快取功能。


好了,就修改這兩項就可以使用了,非常簡單吧。開啟Windows的字元控制檯cmd,切換的polipo的解壓路徑,敲入命令


可以看到,監聽埠是8123,這就是HTTP/HTTPS代理的埠,直接在瀏覽器裡面設定代理伺服器為localhost或者是127.0.0.1,埠是8123就可以用了。

到此,基本配置就結束了。但是,有時候Tor客戶端會連線不上Tor網路,通常這是由下面原因造成的:

1)必須要使用代理伺服器才能上外網

這時可以給Tor客戶端新增代理伺服器。在"Settings"視窗內,選擇“Network”,在下面的選擇項內選“I use a proxy to access the Internet”。


然後填上代理伺服器地址,埠,驗證所用的使用者名稱和密碼,最後選擇代理的種類,點“OK”就好了。

2)很不幸,你所在的網路已受監控,Tor網路中的目錄伺服器和中繼節點都被封殺了(GFW)

這時就要使用前面說的網橋節點了。要想設定網橋,首先得獲得網橋節點的資訊。

怎麼獲得呢?有兩個辦法,一是找你的朋友,他所在的網路沒被監控是自由的,讓他幫忙設定他自己的Tor客戶端為網橋模式,然後把他自己的網橋資訊告訴你;二是通過傳送郵件到[email protected],郵件內容包含“get bridges”,最好使用gmail傳送。過一陣子後會收到回覆郵件,裡面會有網橋節點資訊的列表。

下面就是把這些網橋新增到Tor客戶端裡,還是在“Settings”下的“Network”裡。


直接一個一個拷貝黏貼,然後新增就好了。

好了,一般通過上面兩個方法基本上都可以連線上Tor網路了,當然你的裝置首先得能上網。

這裡還有一個問題值得提一下,這就是所謂的“陷阱節點”。什麼是陷阱節點呢,就是某些政府部門故意假設的一下中繼節點,故意不讓你連出去,或者更可怕的是在上面抓取所有出去的包。如果很不幸,你選的出口節點(也就是第三個中繼節點)正好是其中某一個“陷阱節點”,那你所有傳送的資料都在監控之中,這是很可怕的。有解決的辦法嗎?Tor想到了這點,其配置項中允許將來自某一個國家的節點排除在選擇之外。

如果想把來自香港的所有中繼節點排除出去,可以在配置檔案中加一項:

ExcludeNodes {hk}
這樣,Tor客戶端會主動規避來自香港的中繼節點,但如果Tor在排除之後的中繼節點中建立不起來虛擬線路的時候,還是會嘗試使用那些排除在外的中繼節點。所以,如果要再狠一點,哪怕不能連線也完全不考慮這些排除的節點,則可以再在配置檔案中加這一項:
StrictNodes 1

除此之外,還可以精確指定出口節點所在的國家:

ExitNodes {us}
這樣就可以保證最後一跳的出口節點都選在美國。

好了,到此全部解釋清楚了,享受樂趣吧!


相關推薦

如何在Windows系統設定Tor

首先介紹一下Tor,Tor其實是The Onion Routing的縮寫,即洋蔥路由,目前已經發展到第三代了。 它的最初的設計目的是防止要訪問的目的網站追蹤連線的來源,從而保護使用者的隱私,提高安全性。通俗一點說,就是為了隱匿你的身份。也就是說,你隨便在什麼網站釋出了任何資

TensorFlow - 在 windows 系統安裝

conda 安裝 rsh anaconda src 最新 之前 power ins 安裝方式: 1、pip (將介紹) 2、Anaconda 我采用的是本地 pip 方式 需提前安裝 Python - Python 3.5.x > TF 只支持 Python 3

Windows系統以C++打印出當前活動用戶的環境變量

include copyto cal ntb views read += tac windows.h 在Windows系統上以C++打印出當前活動用戶的環境變量,代碼如下(QT環境): [cpp] view plain copy void

非Unicode編碼的軟件如何在Windows系統運行

更改 軟件 class src 常常 為什麽 local 計算 clas 我們常常會遇到這樣一種情況:點開某些日文軟件(我不會說就是galgame( ╯□╰ ))會出現亂碼或者直接無法運行 出現亂碼的原因很簡單:編碼與譯碼的方式不一致!!!!!!!!!!! 首先大家需要

Windows系統安裝JDK以及eclipse

load class jre spa ror clas ont ogr javase 下載JDK:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 下載根

Windows系統配置aria2

本地 快捷 seed target windows har o-c ipv6 ase Aria2是一個命令行下運行、多協議、多來源下載工具(HTTP/HTTPS、FTP、BitTorrent、Metalink),並且支持迅雷離線以及百度雲等常用網盤的多線程下載(甚至可

關於windows系統傳大於4G文件到linux的方法

-o sha entos x86 mage src images term 幹貨 閑著無聊,寫篇博文吧 !!!說點什麽呢 ,請看標題,這段時間有網友問我(多半小白),怎麽上傳大文件到linux,好啦廢話不多說,上幹貨1. 首先1> 下載安裝x-shell 6(自行下載

Windows系統安裝zabbix_agent

包括 數據庫 oss watermark 報表 存放位置 fff 4.6 維護 Zabbix概述 Zabbix是一個高度集成的企業級開源網絡監控解決方案,與Cacti、Nagios類似,提供分布式監控以及集中的Web管理界面。被監控對象只要支持SNMP協議或者運行Zabbi

windows系統執行spark、hadoop報錯Could not locate executable null\bin\winutils.exe in the Hadoop binaries

1.下載 winutils.exe:https://download.csdn.net/download/u010020897/10745623 2.將此檔案放置在某個目錄下,比如C:\winutils\bin\中。 3.在程式的一開始宣告:System.s

Redis進階實踐之三如何在Windows系統安裝安裝Redis

Redis進階實踐之三如何在Windows系統上安裝安裝Redis 一、Redis的簡介         Redis是一個key-value儲存系統。和Memcached類似,它支援儲存的value型別相對更多,包括strin

windows系統用navicat連線遠端liunx系統的mysql資料庫

問題描述: 在ubuntu上裝了一個mysql為資料來源的hive資料庫,通過xshell連線操作沒有問題,我想在windows系統上使用工具連線,但是一直報Can’t connect to MySQL server on’XXXXX’的問題。 問題分析: 1.可能是網路不統 ,ping X

保障Windows系統安全設定方法高階篇

原文連結:http://hi.baidu.com/465312712/item/049383518450400ce6c4a5b4   1. 關閉 DirectDraw   這是C2級安全標準對視訊卡和記憶體的要求。關閉DirectDraw可能對一些需要用到DirectX的程式有影響,

設備唯一標識方法(Unique Identifier):如何在Windows系統獲取設備的唯一標識 zz

machine 安裝 ren 常用 安全 name system 需要 dmi 原文地址:http://www.vonwei.com/post/UniqueDeviceIDforWindows.html 唯一的標識一個設備是一個基本功能,可以擁有很多應

裝置唯一標識方法(Unique Identifier):如何在Windows系統獲取裝置的唯一標識 zz

原文地址:http://www.vonwei.com/post/UniqueDeviceIDforWindows.html          唯一的標識一個裝置是一個基本功能,可以擁有很多應用場景,比如軟體授權(如何保證你的軟體在授權後才能在特定機

關於如在本地虛擬機器linux系統設定靜態的ip地址

方式一 (不建議採用,我沒有試過) 點選桌面的兩個小電腦 編輯system eth0 方式二(配置檔案配置,步驟繁瑣) 1、首先需要設定虛擬機器連線模式(具體) 2、虛擬網路編輯器設定NAT模式下,這些引數後續,要在檔案中配置 3、在虛擬機器視窗 4、編輯文字 vim ifcfg

Windows系統 HDFS java API的使用

1.建立資料夾 package hdfsApi1; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; import org.apache.hadoop

[轉]如何將在Windows系統寫好的專案部署到Linux伺服器

1.匯出資料庫指令碼檔案.sql 2.資料庫釋出在SQLyog上,連線資料庫:設定主機地址:Linux系統中的ip 使用者名稱密,將匯出的sql指令碼在新開啟的資料庫中進行執行即可。     3.匯出專案檔案格式為.war 修改連線資料庫檔

Windows系統設定Python程式定時執行

最近想新增定時任務,但是電腦是windows系統,無法使用Linux裡的crontab命令,但windows也可以新增定時任務,定期執行python程式。 步驟如下: 1、在開始中下開啟任務計劃程式 2、點選後進入定時任務的介面,開啟右上角 “建立基本任務”選項 3、

Windows系統安裝Jenkins ---- Jenkins自動化部署學習筆記(一)

  之前一直想著學習一下Jenkins自動化部署,最近剛好有點時間,就利用這點時間來學習一下Jenkins自動化部署,做個筆記,既可以鞏固自己的學習,也可以幫助更多的人瞭解Jenkins自動化部署。   先從簡單的開始,我們先用Windows系統來安裝Jenkins,當然以後肯定會在

windows系統部署java開發環境

JAVA部署 步驟二:安裝過程中,將開發工具安裝位置,更改為d:\java\jdk。 步驟三:新增環境變數:開始——>計算機 右鍵——>屬性——>高階系統設定——>環境變數 使用者變數 path = ...;d:\java\jdk\bin