常見問題

Tor 瀏覽器可防止其他人得知您存取過哪些網站。 某些像是網路服務供應商(ISP)的組織是可以看到您正在使用洋蔥路由,但他們不會知道您連線的目的地。

總括而言,在網路上要達到百分百完美的匿名狀態是不可能的,即使是使用洋蔥路由也一樣。 然而,有些方法是可以幫助您在使用洋蔥路由或者離線狀態時,提昇您的匿名性保護。

使用洋蔥路由瀏覽器以及針對洋蔥路由而特別設定的軟體

當您使用洋蔥路由時,它並不會自動保護您電腦中的所有網路連線流量。 洋蔥路由只能夠保護那些有特別設定來透過洋蔥路由傳送連線資料的軟體。

網頁瀏覽:

檔案分享:

斟酌控制您透過網頁表單所提交的資料

當您使用洋蔥路由瀏覽器造訪某個網站時,它無法得知您的身份或是您的真實地理位置。 不幸的是,有許多網站會在網頁表單中要求您提供更多個人資料。 故若您登入了該網站,他們或許仍不知道您所在的地理位置,但是卻已經知道您的身份了。 此外,如果您填入了您的姓名、電子郵件信箱、地址或電話等等個人資料,對於該網站來說,您就不再是處於匿名狀態中了。 最好的防護措施就是要隨時保持警覺,並且對於任何網頁表單的填寫都特別留意。

不要透過洋蔥路由開位元洪流下載

根據觀察發現,許多位元洪流的檔案分享軟體會忽視洋蔥路由的代理伺服器設定,進而直接連上網路。 即使您的位元洪流軟體完全只透過洋蔥路由來連線,它仍會三不五時就將您的真實IP位址透過GET請求對外發佈,因為這就是位元洪流的運作方式。 這不只是會破壞您的位元洪流匿名性,也會同時危及您的洋蔥路由網頁瀏覽連線,並且也會拖垮大家所共享的洋蔥路由網路整體頻寬。

不要安裝或使用瀏覽器擴充元件或外掛程式

洋蔥路由瀏覽器會封鎖像是Flash、RealPlayer、Quicktime等類似的擴充程式,這些程式都有可能被用來揭露您的真實IP位址。 同樣地,我們也不建議在洋蔥路由瀏覽器中安裝額外的擴充元件或外掛程式,因為它們可以繞過洋蔥路由進而破壞其匿名性的隱私保護機制。

使用網站的HTTPS連線

洋蔥路由會將您的網路連線流量在洋蔥路由網路中全程加密保護,但是在通往目的網站的這段連線加密與否,則取決於該網站的設定。 為了確保網站進行私人加密, Tor 瀏覽器提供 純 HTTPS模式,可強制支持 HTTPS 的網站使用 HTTPS 加密。 然而,當您在要傳送機敏資料的網站上時,仍然應該隨時留意瀏覽器網址列上是否有鎖頭圖示,或者是當出現洋蔥圖示時,網址是否是以https://開頭,並且再三確認網站位址是否完全正確。 並且請參閱由電子前哨基金會提供的這份互動式圖表,它詳細解釋了洋蔥路由與HTTPS之間的關聯

不要在連線狀態下開啟經由洋蔥路由所下載的文件檔案

當您試圖藉由外部程式來自動開啟文件檔案時,洋蔥路由瀏覽器都會事先發出警告。 千萬別忽略這個警告。 針對網路下載的各種文件檔案(特別是DOC以及PDF格式檔案,除非說您是利用洋蔥路由瀏覽器內建的PDF閱讀程式開啟)都必須要特別留意,因為這些文件可能在被開啟時,不經過洋蔥路由自動下載網路上的資源。 這將會直接暴露您的真實IP位址。 如果您真的必須要開啟透過洋蔥路由所下載的文件檔案,我們強烈建議您使用離線的電腦,或者是利用dangerzone將它轉檔成安全的PDF文件後再開。 然而,不論是在何種情況之下,同時使用洋蔥路由與位元洪流都是危險的行為。

使用橋接中繼站或找更多的同伴

Tor 可以防止惡意第三方得知您正連上了哪個網站。 然而,在預設的情況下,它無法防止正在監聽您的網路連線流量的人得知您正在使用洋蔥路由。 如果有必要的話,您可以藉由設定洋蔥路由的橋接中繼站來上網,避免直接與洋蔥路由網路建立連線。 但是最終極的策略還是仰賴社交手段,當在您附近使用洋蔥路由的人數越多且使用者人口結構越多元時,您被發現的危險性也就越低。 因此要努力地說服更多同伴,一起加入洋蔥路由使用者的行列!

勤勞多做功課,眼睛放亮。 了解洋蔥路由的能力與其極限。 這份錯誤態樣清單仍不完整,我們仍需要您幫忙補充更多資料

Tor Browser is currently available on Windows, Linux, macOS, and Android.

On Android, The Guardian Project also provides the Orbot app to route other apps on your Android device over the Tor network.

There is no official version of Tor Browser for iOS yet, as explained in this blog post. Our best available recommendation is Onion Browser.

強烈不建議在洋蔥路由瀏覽器中安裝任何新的附加元件,因為它們可能會破壞您的隱私和安全保護機制。

為洋蔥路由瀏覽器額外安裝擴充元件時,可能會讓您的洋蔥路由瀏覽器特徵值變得更與眾不同。 如果您的洋蔥路由瀏覽器擁有與他人不同的特徵值的話,即使您全程都使用洋蔥路由瀏覽器,還是有可能讓您的連線活動變得更容易被追蹤進而破壞其匿名性保護。

Each browser's settings and features create what is called a "browser fingerprint". 大多數瀏覽器會在無意間為每個使用者生成獨特的特徵值,這部份資料在網路上就有可能被用於追蹤與識別使用者的網路活動。 洋蔥路由瀏覽器本身有經過特別設計,因此可以讓每個使用者的特徵值看起來都幾乎相同(我們還沒辦法做到完美!)。 This means each Tor Browser user looks like many other Tor Browser users, making it difficult to track any individual user.

且新的擴充元件也很有可能會成為 Tor 瀏覽器的攻擊面向。 這會增加機敏資料外洩的風險,也可能成為攻擊者入侵感染 Tor 瀏覽器的途徑。 甚至有些擴充元件本身就是被惡意人士設計來監視使用者的。

Tor 瀏覽器預安裝了一個附加元件--NoScript--新增任何其他東西都可能去匿名化。

想要了解更多關於瀏覽器特徵值的內容嗎?在洋蔥路由官方部落格上的這篇文章有更深入解釋。

基本上,我們不建議在洋蔥路由上使用虛擬私有網路 ,除非您是個進階使用者,知道如何設定在不影響個人隱私的情況下使兩者都正常運作。

你可以在我們的維基頁面找到關於 Tor + VPN 的更多詳細資訊。

洋蔥路由瀏覽器確實可以協助人們造訪在特定地區被封鎖的網站。 大多數時候,只需下載洋蔥路由瀏覽器 ,然後就可以直接連上被封鎖的網站了。 在有嚴格的網路審查過濾機制的地區,我們還有提供數個用來規避審查的工具,包含可插拔式傳輸

更多資訊,請參見Tor 瀏覽器用戶手冊中關於審查規避的部分

當然可以!我們有一個維運洋蔥路由中繼節點的組織清單,他們都很樂意接受捐款以為洋蔥路由網路提供更高的頻寬以及更佳的匿名保護。

雖然說這些組織和洋蔥路由專案計畫互不隸屬,但是我們依然認為這是件好事。 他們都是我們洋蔥路由社群裡志同道合的好友。

您必須要了解,效能與匿名性兩者之間是有著相互取捨關係的。 多元性對於洋蔥路由網路的匿名性保護機制向來是個重要基石,因此如果您能夠架設維運您自己的中繼節點的話,那您對於洋蔥路由的匿名性保護機制的貢獻,會遠大於直接捐款。 但是從另一方面而言,透過收集大量的小額捐款來支持少數幾個效能高檔的中繼節點的策略,對於網路頻寬的整體經濟效益來說又會比較高。 不論是強化匿名性保護機制或是提昇整體效能,都是非常值得追求的目標,因此您可以自由選擇您喜歡的方式來貢獻社群!

關於洋蔥路由

如上所提,若有監聽者可以同時觀察到您的電腦以及目的網站或出口節點兩邊的網路連線流量的話,是能夠利用您的連線流量進入與離開洋蔥路由網路時的活動來進行時差匹配攻擊。 洋蔥路由目前並無法防範這樣的威脅模式。

在某些特定情況中,如果監聽者或執法單位能夠監看特定一部分的網路流量的話,透過觀察連線的頭尾兩個端點的網路流量並進行時差匹配分析的話,是有可能會發現並懷疑您經常與您的某個朋友聯繫。 再次強調,這種情況必須是基於他們已經盯上並懷疑某個特定目標時才有可能做到。 在大部份的國家裡,以嫌疑犯的相關懷疑要件申請法院核發的搜索票,會比時差匹配分析的結果還要更容易。

此外,由於洋蔥路由會重複使用迴路通道來執行多條TCP連線,因此要在同一個出口節點上將匿名與非匿名的連線流量匹配關聯在一起也是有可能做到的,因此您隨時都要留意有哪些應用程式正在同時使用洋蔥路由。 或許甚至最好是為這些應用程式執行獨立的洋蔥路由客戶端程式。

網路通訊的傳輸模式基本上是以儲存後轉送的方式運行,概念上類似於傳統的郵遞運送方式,也就是說傳輸連線會資料以稱為整塊IP datagram為單位的形式送出,有時這也稱作資料封包。 每個資料封包裡都會含有一個來源IP位址(資料發送者)以及一個目的IP位址(資料接收者),就和傳統的郵件一樣會有寄件者與收件者。 從發送者到接收者之間會經過多個站點轉換,途中每個路由器都會先去檢視資料封包裡的目的IP位址,再將資料封包往下一個更接近目的地的方向轉送出去。 因此,在發送者與接收者中間的所有路由器,都可以確切的知道通訊雙方的身份與活動內容。 而且特別是您的網路服務供應商,它更能夠把您的網路活動歷程記錄彙整成完整的行為特徵模式。 此外,在網路上的每個能夠看見您的資料封包的伺服器,都能夠把您的網路活動歷程彙整成行為特徵模式。

洋蔥路由的目標,就是藉由把您的網路連線流量經過多個不同的代理伺服器間接轉送,進而強化您的隱私保護。 您的連線傳輸資料會被多層加密,並且經過洋蔥路由網路中的多個不同節點間皆轉送後,才能抵達目的接收者。 您可以參閱這個視覺化頁面了解此流程的更多細節。 在這種模式下,您的網路服務供應商所能觀察到的,就只有您正在與洋蔥路由節點通訊這件事實。 同樣的,對於網站伺服器而言,它也只能知道有來自洋蔥路由節點的訪客連上線。

總括而言,洋蔥路由的目標就是要解決這三個隱私的問題:

第一就是,洋蔥路由能有效防止網站或其他網路服務得知您的真實位置,因為這項資訊可被用來記錄並彙整出您的個人行為模式特徵,像是您的個人興趣與嗜好等。 有了洋蔥路由的保護,您的網路連線活動本身就不會透露出這些資訊,因此您就有權利可以選擇,針對每條連線決定要透露出哪些資訊給對方。

第二則是,洋蔥路由能夠有效防止在地端的監控者(例如您的網路服務供應商或者在您家中共用區域網路的人)得知您的網路活動內容,包括您下載了什麼資料以及連上了什麼網站等。 它同時也能防止那些監控者藉由識別出您的網路活動內容來進行審查過濾,因為若您能夠連接上洋蔥路由網路,您就能夠連上網際網路上的任意網站。

第三則是,洋蔥路由會將您的連線傳輸資料透過多個洋蔥路由中繼節點來轉送,因此沒有任何一個節點能夠得知您的網路行為內容。 因為這些中繼節點都是由不同的個人或團體所架設維護的主機,這種分散式信任模式的網路會比傳統的單站式代理伺服器還要更加安全可靠。

但仍請注意,在某些情況下洋蔥路由的隱私保護機制仍無法完全發揮,更多詳情請參閱仍可行的攻擊方式

其實「Tor」這個字可以意指幾個不同的事。

洋蔥路由是一個程式,您可以在您的電腦上執行來幫助維護您在網路上的安全。 它可以藉由將您的網路通訊資料透過分散式網路中多個由志願者所架設維運的中繼節點主機來回轉送,進而保護您的隱私:防止任何正在監聽您的網路的惡意人士得知您正連上了哪個網站,也同時防止您所連上的網站得知您的真實地理位置。 由志願者所架設維運的中繼節點組成所謂的 Tor 網路。

大部分的人是利用洋蔥路由瀏覽器來使用洋蔥路由的,它是一個火狐狸瀏覽器的改良版本,有特別針對隱私保護機制做了許多修補。 您可以在參閱我們的關於頁面,以了解更多洋蔥路由的資訊。

洋蔥路由專案計畫是一個非營利(慈善)組織,負責開發與維護洋蔥路由軟體。

它的全名就是洋蔥路由網路。 在西元2001-2002年時,我們開始進行下一代的設計與開發,但當時我們跟別人說我們在開發洋蔥路由時,他們常常會問說:「好棒!是哪一個洋蔥路由?」 儘管說洋蔥路由已經成為大家熟悉的名詞,然而我們的Tor其實是從美國海軍實驗室的洋蔥路由計畫裡誕生的。

(這個字在德文與土耳其文裡也有特別的含意。)

注意:儘管說它最初是由縮寫而來的,但是仍不應該寫成「TOR」。 只有第一個字母需要大寫而已。 實際上,我們發現有些還沒造訪過我們網站(或深入了解我們洋蔥路由相關資訊)的人,常常會寫錯這個字。

不會,答案是否定的。 您需要使用另一套能夠理解該應用程式與其所使用通訊協定的獨立的程式,才能夠去清除或者過濾它所傳送的資料。 洋蔥路由瀏覽器會盡可能的把應用程式資料維持一致,例如標頭裡的user-agent欄位字串,以便讓所有的使用者連線看起來皆相同。 然而,對於您在網頁表單裡所輸入的文字,洋蔥路由瀏覽器就完全無法控制了。

典型的代理伺服器提供者會在網路上架設一台伺服器,並幫您把網路流量透過它來轉送。 這是一個簡單且易於維護的設計架構。 所有的使用者連線都會透過同一臺伺服器出入。 服務提供者可能繪像使用者收取費用,或者是透過在伺服器上的廣告來取得營收。 在最簡易的設定中,您甚至不須額外安裝任何軟體。 您只需要將您的瀏覽器連線導向該代理伺服器主機即可。 如果您不在乎個人隱私與匿名性保護,且對於服務提供者也完全信任的話,簡易型的代理伺服器是可以是不錯的解決方案。 某些簡易型的代理伺服器提供者還會使用SSL來保護您的網路連線,以免您的網路流量被他人竊聽取得,尤其是當您在公共咖啡廳使用免費無線網路服務時。

簡易型代理伺服器服務的設計架構,也造成了單一失敗環節的弱點。 因為該服務提供者可以同時掌握到您的真實身份,以及您在網路上的所有活動歷程。 由於您的網路流量都透過他的伺服器來轉送,因此他都可以看的一清二楚的。 在某些情況下,當您連上銀行或電子商務網站時,他們甚至還可以看到您的加密連線內容。 您必須要對於該服務的提供者完全信任,相信他們不會窺視您的網路連線資料,也不會在您的網路連線資料流中注入廣告或側錄您的私密資訊。

洋蔥路由的原理是將您與目標網站間的網路連線資料,透過3個不同的伺服器間接轉送。 且由於每個中繼節點間都有獨立的加密層保護,因此任何正在監控您的網路連線的人,都沒有辦法可以閱讀或篡改您送上洋蔥路由網路的連線資料。 您的網路連線資料從洋蔥路由客戶端(在您的電腦中)一直到進入開放網際網路空間前,都會全程處於加密狀態。

第一個伺服器沒辦法知道我的真實位址嗎?

答案是有可能的。 三節點迴路上的第一個伺服器,確實是能夠看見被加密的洋蔥路由連線流量從您的電腦中發出。 但是它仍然無法得知您的身份以及您透過 Tor 進行什麼樣的網路活動。 它只能看見「此IP位址正在使用 Tor」而已。 洋蔥路由的保護機制仍能防止它找出您的身份,以及您的網路連線是通往哪個網站。

第三個伺服器主機看不到我的網路連線資料嗎?

答案是有可能的。 在這三個伺服器主機中,如果第三臺主機心懷惡意的話,是可以竊聽到您送至 Tor 資料。 但是它是無法得知這連線流量的來源是誰。 而且如果您的連線是有加密的話(例如透過HTTPS協定),那它頂多也只能知道連線的目的地是誰而已。 請參閱這篇有關於洋蔥路由與HTTPS的圖說,就可以了解洋蔥路由與HTTPS協定兩者間的互動關係。

可以。

洋蔥路由的軟體皆是屬於自由軟體。 這表示說您有權利可以自由的複製或發佈洋蔥路由相關軟體,不論是原封不動或有修改過的版本,皆可以自由或免費的方式發送。 您完全不需要徵求我們的授權同意。

然而,若您想要重新發佈洋蔥路由軟體的話,請務必要遵守我們的授權協議規定。 意思是說,不論您是要發佈我們的洋蔥路由軟體的部份或全部,裡面都必須要包含我們的授權協議檔案。

然而,大部分來詢問我們這個問題的人,都不是只想單獨發佈洋蔥路由軟體。 They want to distribute Tor Browser. 這包含 Firefox 延長支持版和 NoScript 擴展。 因此,您也必須要同時遵守該些軟體的使用授權協議規定。 這兩個火狐狸瀏覽器的擴充元件是以GNU公眾授權協議所發佈的,而火狐狸瀏覽器的ESR版本則是以Mozilla公眾授權協議發佈。 簡而言之,要遵守這些授權協議規定的基本作法,就是將他們的原始程式碼與可安裝執行的軟體程式檔一起發佈。

同時,您也必須要確保您的使用者能夠正確釐清何謂洋蔥路由、原始開發者是誰、它能夠提供什麼樣的功能特性(以及其能力極限)。 請參閱我們的註冊商標問答集以了解更多細節。

能夠搭配洋蔥路由來使用的應用軟體非常多,但是我們仍未針對它們在程式層的匿名性保護等級進行過全面性的研究,因此目前仍然無法對於安全性設定做任何建議。 我們的維基頁面有一份由社群成員所撰寫維護的洋蔥化特定軟體指引可以參考。 同時也期望您能協助補充該指引以使其更加完善!

大多數人都使用的洋蔥路由瀏覽器,基本上已經包含了讓您可以安全地上網瀏覽網頁時會需要的所有功能。 以其他的瀏覽器搭配洋蔥路由來使用是危險也不建議的作法。

洋蔥路由裡面完全沒有任何後門。

我們也知道許多聰明的律師都會說,在我們的法律管轄區域(美國)裡,是不太有可能會有人對我們要求或施壓去加入後門的。 如果真的有人這樣做的話,那我們一定會堅決反對,並且通常會勝訴(律師說法)。

我們絕對不會在洋蔥路由裡加入任何後門。 我們認為在洋蔥路由裡加入後門對於我們的使用者來說是非常不負責任的行為,並且對於整個安全防護軟體產業來說也會是一個很差勁的先例。 如果我們在自己的安全防護軟體中加入特製的後門的話,會直接摧毀我們自己的專業聲譽。 此後就再也沒有任會相信我們所開發的軟體了!

儘管是如此,仍然還是有不少隱晦的攻擊方式會被人嘗試利用。 例如有人可能會假冒我們的身份,或者入侵我們的電腦系統之類的。 洋蔥路由是開源軟體,意即您可以隨時查閱其原始程式碼(或是最新的diffs差異比對檔)以尋找任何可疑的線索。 假如我們(或是發佈提供洋蔥路由軟體的人)不給予您取得程式原始碼的話,那就肯定是事有悉翹了。 同時您也應該要利用PGP數位簽章驗證發佈版本的軟體,以確保沒有任何人在軟體發佈網站上動手腳。

此外,有時候在洋蔥路由軟體中也有可能出現意外的漏洞,進而影響您的匿名保護機制。 我們都會隨時檢驗並且修復任何與匿名性保護機制有關的錯誤或漏洞,因此您也應該要把洋蔥路由軟體隨時更新至最新版本。

洋蔥路由(與其他目前實務上常見的各種低延遲匿名通訊系統設計一樣)的連線中,當惡意人士恰好能夠同時監聽同一條連線通道的起點與終點兩端之流量時,匿名保護機制就會完全破功。 舉例來說,當有個惡意人士掌控了您的洋蔥路由入口節點,並且又同時監聽您所造訪的目的網站的狀況下。 針對這樣的情境,目前在學術研究上還沒有找到任何低延遲的通訊系統設計,可以有效防堵惡意人士在同一條連線流量的兩端進行時差匹配分析攻擊。

那我們該怎麼辦呢? 在此假設惡意人士已經掌控並且監聽C個中繼節點。 並假設網路上總共有N個中繼節點。 如果您從網路上選取入口以及出口節點來使用時,那惡意人士能夠針對您的連線流量發動此種匹配攻擊的成功機率大約為(c/n)2。 然而行為特徵分析對於絕大多數使用者來說,跟被全程追蹤監控是一樣糟糕的情況,同樣來說,被攻擊者盯上一次與時常被攻擊者盯上也是同樣危險的。 因此,若使用者每次都隨機挑選入口及出口節點的話,那就幾乎沒有機會可以逃出這種攻擊者的行為特徵分析涵蓋範圍了。

而解決方式就是在「入口護衛節點」身上:每個洋蔥路由客戶端程式只會隨機挑選出少數幾個中繼節點作為入口節點,並且固定只使用這幾個節點作為迴路的第一站。 如果這幾個中繼節點不是被惡意人士所掌控的話,那攻擊者就完全沒有成功的機會,因此使用者也就能繼續保持安全狀態。 即使是這幾個中繼節點是被攻擊者所掌控的話,雖然他能藉此竊聽到使用者的大部分網路連線流量,但是要實際做行為特徵分析的話,成功機率也不會比前一個情境還要高。 因此,相較於前一情境中,使用者完全沒有脫逃攻擊者的行為特徵分析,在現在這樣的設計架構裡,使用者至少還有逃脫的機會(機率為(n-c)/n級數)。

關於更多詳細容您可以參閱匿名通訊協定之降級分析針對匿名通訊被動式歷程記錄攻擊之防禦策略,尤其是這篇位置隱藏型伺服器

且當某些惡意人士企圖利用少量洋蔥路由節點來收集所有洋蔥路由使用者的IP位址時,限縮您的入口節點數量也同時發揮抵禦效果。 (儘管說這種攻擊方式無法得知使用者的網路連線目的站台,但光是取得使用者實際位址清單,在某種程度上就可能造成為害。) 然而,這項功能的效果必須要等到我們正式佈署「目錄護衛節點」機制後,才能夠較為完善。

洋蔥路由用了多種不同的金鑰,它們是為了要滿足幾個要求而設計的: 1. 用於確保洋蔥路由網路中資料保密的加密用金鑰。 2. 用於讓客戶端程式能夠確認與之連線通訊的目標中繼節點身份用的認證金鑰。 3. 用於確保所有客戶端程式取得的中繼節點清單的簽章金鑰。

加密:首先,在洋蔥路由裡所有的連線都會使用TLS加密機制,因此任何監聽者都無法藉由檢視網路資料封包來得知其所屬的迴路是哪條。 此外,洋蔥路由客戶端程式會跟迴路中的每個中繼節點建立專屬的暫時性加密金鑰,這層額外的加密可以確保只有出口節點能夠看到資料封包的實際內容。 且雙方都會在迴路關閉時,將迴路金鑰刪除,因此即使惡意人士在側錄到網路連線資料後,又成功入侵中繼節點伺服器,也無法取得金鑰來將錄得的資料解密。

認證:每一個洋蔥路由中繼節點都擁有一把稱為「洋蔥金鑰」的公開解密金鑰。 每個中繼節點固定每隔四週,就更換自己的洋蔥金鑰。 當洋蔥路由客戶端程式在建立迴路時,其中每個步驟都會要求洋蔥路由的中繼節點證明擁有它所屬的洋蔥金鑰。 如此一來,迴路上的首個中繼節點就無法惡意操控整條迴路上的連線。 由於迴路是由洋蔥路由客戶端程式選擇決定的,因此可以確保洋蔥路由的「分散氏信任」特性:亦即迴路中沒有任何一個中繼節點,能夠同時得知連線的客戶端以及目的端的相關資訊。

協調:客戶端程式如何得知有哪些中繼節點,以及如何確定它們擁有正確的金鑰? 每個中繼節點都擁有一把「身份金鑰」,這是永久性的公開簽章金鑰。 除此之外,每個目錄主管機構也還會有一把「目錄簽署金鑰」。 目錄管理機構為所有已知中繼提供已簽名的列表,列出了每個中繼的一組證書(由它們的身份密鑰自簽名),指定了它們的密鑰、位置、退出策略等。 所以,除非對手可以控制大多數目錄管理機構(截至 2022 年共有 8 個),否則無法欺騙 Tor 客戶端使用其他 Tor 中繼。

客戶端程式如何得知有哪些目錄主管機構?

洋蔥路由軟體內建了一張清單,裡面包含了每個目錄主管機構主機的相關資訊,包括它們的地理位置與公開金鑰。 因此,想要誘騙使用者透過假的洋蔥路由網路來連線的唯一方式,就是誘使他們去執行被特殊篡改過的軟體版本。

使用者如何確認有取得正確的軟體?

當我們發佈軟體套件或原始程式碼的時候,我們都會用GNU Privacy Guard對它做數位簽章。 請參閱如何驗證洋蔥路由瀏覽器的數位簽章

為了要能夠真的確定該簽章是由我們所簽署的,您就必須要與我們實際見面,並且直接複製我們的GPG金鑰指紋,或是透過已經擁有該指紋的人取得。 如果您真的會需要顧慮到這種層級的安全風險,我們建議您參與資訊安全社群的互動並建立人脈。

假如洋蔥路由的迴路都正常運行無誤的話,那每隔10分鐘洋蔥路由軟體會自動為新的TCP連線切換一個另一個迴路。 (如果現有的迴路出現問題的話,那洋蔥路由就會隨即更換一條新的迴路。)

但是必須注意的是,同一條TCP連線(例如長時間的IRC連線)會永遠停留在舊迴路上運行。 依照我們的設計,是不會把已建立的連線從一條迴路轉移到另一條上。 因為這樣對於有能力長時間監聽部份網路連線流量的惡意人士來說,他們就會有好幾次機會去配對推測您連線的目的網站。

Tor 瀏覽器

簽署數位簽章是用來確保套裝軟體是來自其開發者且沒有被竄改過的過程。 底下我們就來說明為什麼這個部份很重要,以及要如何驗證您所下載取得的洋蔥路由瀏覽器跟我們所提供的是完全一致,內容沒有被惡意人士篡改。

在我們的下載頁面裡,每個檔案都會伴隨著一個同名的「數位簽章」檔案,是以「.asc」結尾的,這些檔案即是OpenPGP的數位簽章檔。 這些數位簽章讓您可以去驗證下載好的檔案是否就是我們希望您取得的檔案。 隨著您使用的網頁瀏覽器不同會有所差異,但是在大多數的情況中,您可以直接右鍵點擊「數位簽章」的連結並點選「另存成檔案」來下載。

例如說,tor-browser-windows-x86_64-portable-13.0.1.exe檔案會辦隨著tor-browser-windows-x86_64-portable-13.0.1.exe.asc。 有些範例檔案的名稱不會跟您所下載的檔名完全相同。

我們將告訴你如何在各個不同作業系統上,驗證下載好檔案的數位簽章。 請注意數位簽章上壓印的日期就是該套裝軟體被簽署的時間。 因此每當檔案被更新的時候,就會產生一個壓有不同日期的新的數位簽章。 只要您有驗證過數位簽章,就不用擔心上述有可能改變的數位簽章日期。

安裝GnuPG

首先,開始驗證數位簽章前,您需要先安裝好 GnuPG。

Windows系統使用者:

如果您是使用Windows系統的話,請下載Gpg4win並且執行安裝程序。

您會需要在Windows的命令提示字元模式cmd.exe中,輸入幾道指令才能驗證數位簽章。

macOS 使用者:

若您是使用MacOS系統的話,您可以安裝GPGTools

您會需要在終端機模式(在「應用程式」裡)輸入幾道指令,才能夠進行數位簽章驗證。

GNU/Linux使用者:

若您是GNU/Linux系統的使用者的話,那您的系統中應該已經有安裝GnuPG程式了,這是在大多數GNU/Linux系統的封裝發行版中會預載的軟體。

您會需要在命令列模式中輸入幾道指令才能夠進行數位簽章的驗證,這個部份隨著您所使用的封裝發行版不同會有所差異。

取得洋蔥路由開發人員的金鑰

洋蔥路由瀏覽器團隊會針對所發佈的洋蔥路由瀏覽器簽署。 匯入洋蔥路由瀏覽器開發者的簽署金鑰(0xEF6E286DDA85EA2A4BA7DE684E2C6E8793298290):

gpg —auto-key-locate nodefault,wkd —locate-keys torbrowser@torproject.org

您應該會看到類似下面這樣的訊息:

gpg: key 4E2C6E8793298290: public key "Tor Browser Developers (signing key) <torbrowser@torproject.org>" imported
gpg: Total number processed: 1
gpg:               imported: 1
pub   rsa4096 2014-12-15 [C] [expires: 2025-07-21]
      EF6E286DDA85EA2A4BA7DE684E2C6E8793298290
uid           [ unknown] Tor Browser Developers (signing key) <torbrowser@torproject.org>
sub   rsa4096 2018-05-26 [S] [expires: 2020-12-19]

若您看見錯誤訊息,那就表示有地方出錯了,您必須要先釐清並解決問題才能繼續,您或許也可以利用其他方式(使用公開金鑰)來完成。

在匯入金鑰之後,您可以將它儲存成檔案(以金鑰指紋作為識別):

gpg --output ./tor.keyring --export 0xEF6E286DDA85EA2A4BA7DE684E2C6E8793298290

這道指令會把金鑰儲存成檔案並放置於./tor.keyring路徑中,即目前所在工作目錄。 如果執行此道指令後./tor.keyring仍然不存在,那就表示有地方出錯了,您必須要先釐清並解決該問題才能繼續。

驗證數位簽章

若要驗證您所下載的軟體套件的數位簽章,您還必須要下載相對應的「.asc」數位簽章檔案,並藉由指令操作GnuPG軟體來幫您執行驗證。

底下範例假設您將該二檔案存放於「下載」資料夾中。 Note that these commands use example file names and yours will be different: you will need to replace the example file names with exact names of the files you have downloaded.

對於 Windows 用戶 (變更 x86_64 到 i686 如果您有 32 位元軟體包):

gpgv --keyring .\tor.keyring Downloads\tor-browser-windows-x86_64-portable-13.0.1.exe.asc Downloads\tor-browser-windows-x86_64-portable-13.0.1.exe

macOS 使用者:

gpgv --keyring ./tor.keyring ~/Downloads/tor-browser-macos-13.0.1.dmg.asc ~/Downloads/tor-browser-macos-13.0.1.dmg

對於 GNU/Linux 用戶 (變更 x86_64 到 i686 如果您有 32 位元軟體包):

gpgv --keyring ./tor.keyring ~/Downloads/tor-browser-linux-x86_64-13.0.1.tar.xz.asc ~/Downloads/tor-browser-linux-x86_64-13.0.1.tar.xz

命令的結果應該包含:

gpgv: Good signature from "Tor Browser Developers (signing key) <torbrowser@torproject.org>"

如果此時出現「No such file or directory」的錯誤訊息的話,那就表示您在先前的步驟執行有誤,或者是您忘記將指令中的檔名修改成您實際下載取得的檔案名稱。

重新整理 PGP 金鑰

執行以下的命令,可從金鑰伺服器上重新整理本地金鑰環中 Tor 瀏覽器開發者的簽名金鑰。同時將獲取新的子金鑰。

gpg --refresh-keys EF6E286DDA85EA2A4BA7DE684E2C6E8793298290

其他方式(使用公開金鑰)

如果您遭遇到無法解決的問題的話,也可以直接下載使用這把公開金鑰,或者也可以執行下列指令:

curl -s https://openpgpkey.torproject.org/.well-known/openpgpkey/torproject.org/hu/kounek7zrdx745qydx6p59t9mqjpuhdf |gpg --import -

洋蔥路由瀏覽器開發者的金鑰已發佈至keys.openpgp.org站台,因此可以由https://keys.openpgp.org/vks/v1/by-fingerprint/EF6E286DDA85EA2A4BA7DE684E2C6E8793298290下載取得。 如果您使用的是MacOS或是GNU/Linux作業系統的話,也可以利用下列指令來取得金鑰:

gpg --keyserver keys.openpgp.org --search-keys EF6E286DDA85EA2A4BA7DE684E2C6E8793298290

您可能會需要多了解GnuPG的使用方式。

你下載且執行的檔案會跳出一個選擇儲存位置的視窗。 如果您不記得該儲存位置,大部分預設是在您的「下載」或「桌面」資料夾。

Windows 安裝檔的初始設定會在您的桌面建立一個捷徑,但是您可能在安裝過程中不小心取消了建立捷徑的選項。

如果您在上述兩個資料夾中都找不到,請重新下載並尋找讓您選擇檔案下載目的地路徑的訊息視窗。 選擇一個容易記住的路徑位置,一旦下載完成後,您會在該路徑下看到一個洋蔥路由瀏覽器的資料夾。

每當我們發佈一個新的洋蔥路由瀏覽器版本時,也會同時發佈一篇詳細關於它的新功能和已知問題的部落格文章。 如果您在更新洋蔥路由瀏覽器後發現問題,請前往blog.torproject.org參閱有關最新版洋蔥路由瀏覽器發佈的公告,以確認您的問題是否已經被列入。 如果您遇到的問題沒有被列入的話,請先查詢洋蔥路由瀏覽器的問題追蹤器,再於GitLab issue中建立問題通報並描述您所遭遇的問題。

We want everyone to be able to enjoy Tor Browser in their own language. Tor Browser is now available in multiple languages, and we are working to add more.

我們目前支援的語言:

語言
العربية (ar)
Català (ca)
česky (cs)
Dansk (da)
Deutsch (de)
Ελληνικά (el)
English (en)
Español (es)
ﻑﺍﺮﺴﯾ (fa)
Suomi (fi)
Français (fr)
Gaeilge (ga-IE)
עברית (he)
Magyar nyelv (hu)
Indonesia (id)
Islenska (is)
Italiano (it)
日本語 (ja)
ქართული (ka)
한국어 (ko)
lietuvių kalba (lt)
македонски (mk)
ﺐﻫﺎﺳ ﻡﻼﻳﻭ (ms)
မြမစ (my)
Norsk Bokmål (nb-NO)
Nederlands (nl)
Polszczyzna (pl)
Português Brasil(pt-BR)
Română (ro)
Русский (ru)
Shqip (sq)
Svenska (sv-SE)
ภาษาไทย (th)
Türkçe (tr)
Український (uk)
Tiếng Việt (vi)
简体中文 (zh-CN)
正體字 (zh-TW)

想幫助我們翻譯嗎?成為 Tor 譯者!

您也可以藉由安裝洋蔥路由瀏覽器Alpha測試版來幫忙測試即將發佈的語言版本。

沒有,Tor 瀏覽器是開放原始碼軟體,並且是完全免費的。 任何聲稱是洋蔥路由瀏覽器的付費軟體都是詐騙。 要確認您所下載的是真正的 Tor 瀏覽器,請造訪我們的下載頁面。 下載完成後,您可以藉由驗證數位簽章來確認您取得的是官方版本的洋蔥路由瀏覽器。 如果您無法連上我們的網站的話,請參閱審查過濾以了解取得洋蔥路由瀏覽器的其他方式。

If you have paid for a fake app claiming to be Tor Browser, you can try to request a refund from the Apple or Play Store, or you can contact your bank to report a fraudulent transaction. We cannot refund you for a purchase made to another company.

若您發現假冒的 Tor 瀏覽器的話,麻煩請利用 frontdesk@torproject.org 通報給我們

Tor Browser is currently available on Windows, Linux, macOS, and Android.

On Android, The Guardian Project also provides the Orbot app to route other apps on your Android device over the Tor network.

There is no official version of Tor Browser for iOS yet, as explained in this blog post. Our best available recommendation is Onion Browser.

很可惜,我們目前仍沒有提供適用於Chrome OS的洋蔥路由瀏覽器。 您可以在Chrome OS系統上使用安卓版洋蔥路由瀏覽器,但請注意當您在Chrome OS上執行行動版洋蔥路由時,您所連上的網站都會以行動版(非電腦版)來呈現。 然而,由於我們還沒有針對Chrome OS的應用程式進行過檢驗,所以我們不確定安卓版洋蔥路由瀏覽器裡的所有隱私保護功能,都可以正確無誤的運行。

很抱歉,目前在*BSD系統上,並沒有官方支援的洋蔥路由瀏覽器。 目前有一個名為TorBSD計畫,但是他們的洋蔥路由瀏覽器並無官方支援。

使用洋蔥路由瀏覽器時,確實有時候可能會比用其他瀏覽器慢一點。 洋蔥路由網路目前有大約6000個中繼節點,而每天平均則有超過一百萬個使用者,因此每個中繼節點伺服器的負載量多寡會影響網路傳輸的延遲,再加上洋蔥路由的先天設計架構,會讓所有的連線流量都經由多個位於世界各地的志願者架設的主機間來回轉送,因此遇到網路瓶頸或是延遲是在所難免的。 您可以藉由架設自己的中繼節點或是鼓勵他人架設來幫忙改善網路頻寬。 For the much more in-depth answer, see Roger's blog post on the topic and Tor's Open Research Topics: 2018 edition about Network Performance. You can also checkout our recent blog post Tor Network Defense Against Ongoing Attacks, which discusses the Denial of Service (DoS) attacks on the Tor Network. Furthermore, we have introduced a Proof-of-Work Defense for Onion Services to help mitigate some of these attacks. 即使如此,洋蔥路由已經比以前快得多了,所以您甚至可能不會注意它的速度和其他瀏覽器有什麼不同。

它們的名稱其實跟事實有落差,「無痕模式」或「隱私瀏覽模式」其實並不會讓您的網路活動進入匿名狀態。 它們只會在視窗關閉時,將您電腦中所有與該瀏覽工作階段有關的資料全部清除,但是對於您的網路活動或是數位特徵值完全沒有任何保密機制。 意思也就是說,任何監聽者都能夠輕易的監控您的網路流量,就跟您在普通的瀏覽器模式中使用時一樣。

洋蔥路由瀏覽器不只提供了所有隱私瀏覽模式的保護功能,並且也同時隱藏真實的來源IP位址、瀏覽行為以及任何可用來識別網路活動的裝置特徵碼,進而提供一個真正的端對端全程隱私的網路瀏覽。

若您想了解更多關於無痕視窗或隱私瀏覽模式的限制,請參閱Mozilla網站上這篇關於隱私瀏覽的迷思

目前確實是有些方法可以將洋蔥路由瀏覽器設定為預設的瀏覽器,但這些方法並不一定每次都管用,也不一定在每個作業系統上都可行。 Tor Browser works hard to isolate itself from the rest of your system, and the steps for making it the default browser are unreliable. This means sometimes a website would load in Tor Browser, and sometimes it would load in another browser. This type of behavior can be dangerous and break anonymity.

我們強烈建議您不要用洋蔥路由瀏覽器以外的任何瀏覽器使用洋蔥路由。 用其他瀏覽器來使用洋蔥路由,可能會讓您暴露在缺少洋蔥路由瀏覽器隱私保護機制的風險中。

您當然可以在使用洋蔥路由瀏覽器時,使用其他瀏覽器。 然而,您必須要知道洋蔥路由瀏覽器的隱私保護功能,不會套用在其他瀏覽器上。 在洋蔥路由瀏覽器與安全性較低的瀏覽器間切換使用時要特別留意,因為您可能會不小心在其他瀏覽器上執行原本應該要在洋蔥路由瀏覽器上的操作。

如果同時執行洋蔥路由瀏覽器和其他瀏覽器,並不會影響洋蔥路由的效能或隱私性保護。

然而,請注意,如果同時使用 Tor 和其他瀏覽器,你的 Tor 活動可能關聯到其他瀏覽器中你的真實 IP(未用 Tor),比如只需滑鼠從一個瀏覽器移動到另一個,即可產生關聯。

或者,你可能只是忘記了,不小心用非私密瀏覽器做了一些本想在 Tor 瀏覽器中做的事情。

只有洋蔥路由瀏覽器的網路連線會經過洋蔥路由網路傳送。 系統上其他的應用程式(包括其他瀏覽器)並不會透過洋蔥路由網路進行連線,因此也不會受到保護。 它們需要另外單獨設定才能使用洋蔥路由。 If you need to be sure that all traffic will go through the Tor network, take a look at the Tails live operating system which you can start on almost any computer from a USB stick or a DVD.

我們不建議在同一個系統上同時執行多個洋蔥路由瀏覽器,且在許多作業平台上可能會無法如期正常運作。

洋蔥路由瀏覽器是以火狐狸瀏覽器ESR版為基礎開發的,因此它有時候也會出現火狐狸瀏覽器的錯誤訊息。 請確認在同時間沒有其他洋蔥路由瀏覽器正在執行,並且已將洋蔥路由瀏覽器解壓縮到使用者有權限可使用的檔案路徑下。 如果您有使用防毒軟體的話,請參閱我的防毒軟體會阻擋洋蔥路由瀏覽器,許多防毒軟體或惡意程式防護軟體都常常會造成這類的問題。

洋蔥路由瀏覽器是火狐狸瀏覽器的改良版本,專門設計來使用洋蔥路由網路。 A lot of work has been put into making Tor Browser, including the use of extra patches to enhance privacy and security. 雖然技術上,洋蔥路由是可以搭配其他瀏覽器使用 ,但您可能會讓自己暴露在潛在的攻擊或資訊外洩的風險中,所以我們強烈建議不要這樣使用。 了解更多關於洋蔥路由瀏覽器的設計

Bookmarks in Tor Browser can be exported, imported, backed up, restored as well as imported from another browser. 若要管理您的洋蔥路由瀏覽器書籤的話,請利用此方式:

  • 漢堡選單 >> 書籤 >> 管理書籤 (在選單下方)
  • 從“我的足跡”視窗的工具欄中,點選“匯入和備份”

若您想要匯出書籤

  • 點選將書籤匯出成HTML
  • 在匯出書籤的檔案視窗中,選擇要儲存的路徑,它的名稱預設會是bookmarks.html。通常儲存至桌面是最便捷的,但是要儲存到任何您可以記住的目錄也都可以。
  • 點擊儲存按鈕,此時匯出書籤的檔案視窗就會自動關閉。
  • 關閉書庫視窗。

您的書籤已經被成功的從洋蔥路由瀏覽器中匯出了。 此時您所儲存的HTML書籤檔,已經可以被用來匯入至其他網頁瀏覽器裡了。

若您想要匯入書籤

  • 選擇從HTML檔匯入書籤
  • 在匯入書籤的檔案視窗中,切換到您的HTML書籤檔所在目錄,並點選該檔案。
  • 點擊開啟按鈕,此時匯入書籤的檔案視窗會自動關閉。
  • 關閉書庫視窗。

您所選定的HTML檔裡所包含的書籤,都將被加入到洋蔥路由瀏覽器的書籤選單目錄中。

若您想要備份

  • 選擇備份功能
  • 此時會出現一個新視窗,讓您選擇備份檔的存放目錄,此檔案會是以.json為副檔名。

若您想要復原

  • 選擇恢復功能並選擇您想要復原的書籤檔。
  • 在彈出視窗中點擊確定,此時您的書籤備份已被復原。

由其他瀏覽器匯入資料

您可以從火狐狸瀏覽器將書籤轉入洋蔥路由瀏覽器中,在火狐狸瀏覽器裡,書籤的匯出匯入有兩種方式:HTML檔或是JSON檔。 從瀏覽器中將書籤匯出之後,依照上述步驟即可將它匯入至您的洋蔥路由瀏覽器裡。

注意: 目前安卓版洋蔥路由瀏覽器仍未有書籤的匯出匯入功能。Bug #31617

當你開啟Tor瀏覽器時,你可以導航到漢堡選單("≡"),然後點選“設定”,最後點選邊欄的“連線”。 在該頁面的最下方,點擊位於「查閱 Tor 歷程紀錄」這段文字旁邊的「查閱歷程紀錄...」按鈕。 您應該可以看到一個將歷程記錄複製至剪貼簿的功能,它可以讓您把記錄轉貼至文字編輯器或電子郵件中。

Alternatively, on GNU/Linux, to view the logs right in the terminal, navigate to the Tor Browser directory and launch Tor Browser from the command line by running:

./start-tor-browser.desktop --verbose

或是將歷程記錄儲存至檔案中 (預設:tor-browser.log)

./start-tor-browser.desktop --log [file]

洋蔥路由瀏覽器啟動後會處於預設的視窗尺寸,其通常為200px x 100px解析度的整數倍數,藉此用來抵禦網站利用偵測螢幕解析度進行特徵值分析。 這個策略的概念是,將所有使用者歸納到幾個不同的類別裡,藉此避免個別使用者被輕易識別。 這個作法在使用者自行改變視窗尺寸前都有效(例如將視窗最大化或者開啟全螢幕模式)。 洋蔥路由瀏覽器當然也有內建可以抵禦這類特徵值分析的保護機制,它就叫做Letterboxing,這是一項由Mozilla組織在2019年發表的技術。 它的原理是在瀏覽器視窗內的周圍加入空白區塊,藉以讓網頁呈現的窗格尺寸盡可能的接近某個特定大小,因此可讓偵測到的使用者螢幕解析度落入幾個少數的類型中,避免任何一個人因為螢幕尺寸與眾不同而被識別追蹤。

簡而言之,這種技術就是把所有使用者的各種不同螢幕尺寸都強制歸納進少數幾個不同類別裡,因此讓網站更難以偵測螢幕尺寸的方式識別並追蹤特定訪客。

letterboxing

洋蔥路由瀏覽器確實可以協助人們造訪在特定地區被封鎖的網站。 大多數時候,只需下載洋蔥路由瀏覽器 ,然後就可以直接連上被封鎖的網站了。 在有嚴格的網路審查過濾機制的地區,我們還有提供數個用來規避審查的工具,包含可插拔式傳輸

更多資訊,請參見Tor 瀏覽器用戶手冊中關於審查規避的部分

有時候網站會阻擋洋蔥路由使用者,因為這些網站無法分辨來自一般的洋蔥路由使用者和自動化機器人在網路流量上的差異。 對於要讓網站解除對洋蔥路由使用者的封鎖,我們認為最好的方式是讓使用者直接與網站管理員聯繫。 可以用來解決問題的一些範例:

“嗨!我嘗試使用洋蔥路由瀏覽器瀏覽您的網站 xyz.com 時,發現貴網站不允許洋蔥路由使用者瀏覽。 想懇請您重新考慮這個決定,由於世界各地的人們會透過使用洋蔥路由瀏覽器來保護他們的隱私和對抗網路審查封鎖。 阻擋洋蔥路由使用者的同時,您可能同時也阻擋了身處在威權獨裁統治的國家但希望能夠自由使用網路的人,像是記者、需要保護自己避免被發現的研究者、吹哨者、社運人士以及想避開侵入性第三方追蹤的人民。 請堅定支持數位隱私和網路自由,並允許洋蔥路由使用者瀏覽 xyz.com。謝謝。”

銀行或其他對身份驗證較為敏感的網站,通常會有利用地理位置為基礎的阻擋功能 (如果銀行知道您經常從某個國家/地區使用他們的服務,但您突然從世界另一端的出口節點進行連線,那麼您的帳戶就有可能會被鎖定或停權)。

若您無法連上某個洋蔥服務,請參閱我連不上X.onion站台

Tor 瀏覽器會使您的連線看起來好像來自世界的另一端。 某些網站(例如銀行或電子郵件供應商)可能會認定您的帳戶是被盜用了,進而將您拒於門外。

解決此問題的唯一方法是依照網站建議的方式復原帳戶,或與網站管理員聯繫並說明情況。

如果你的服務供應商有提供雙因子認證機制的話,應該可以避免這種情況發生,那是一種比IP位址認定更安全的機制。 請與您的服務供應商聯繫,詢問他們是否提供雙因子認證機制。

有時候高度依賴JavaScript的網站,有些功能在洋蔥路由瀏覽器上會有問題。 最簡單的修復方法是單擊“安全”圖示(螢幕右上角的灰色小盾牌),然後單擊“更改…” 將您的安全性設定調整至 “標準”。

大多數的防毒軟體或惡意程式防護軟體都會有「白名單」機制,讓使用者自行加入不要阻擋的軟體。 Please open your antivirus or malware protection software and look in the settings for an "allowlist" or something similar. Next, include the following processes:

  • Windows 使用者
    • firefox.exe
    • tor.exe
    • lyrebird.exe (如果使用橋接中繼站)
    • snowflake-client.exe
  • macOS 使用者
    • TorBrowser
    • tor.real
    • lyrebird (如果使用橋接中繼站)
    • snowflake-client

最後,重新啟動洋蔥路由瀏覽器。 這應該能解決您目前碰到的問題。 請注意某些防毒軟體,如卡巴斯基,有可能會透過防火牆阻擋洋蔥路由。

當洋蔥路由瀏覽器被啟動時,有些防毒軟體會發出惡意程式的警報。 如果您是從我們的官方網站或是利用GetTor下載取得 Tor 瀏覽器,並且完成驗證的話,那您就無須擔心這些假警報。 某些防毒軟體會把較罕見的檔案視為可疑。 若要確保您所取得的洋蔥路由程式是我們所發佈的,並且沒有被惡意人士篡改過,您可以驗證洋蔥路由瀏覽器的數位簽章。 您可能也會需要把某些程式列入白名單中,以避免防毒軟體封鎖洋蔥路由瀏覽器。

If your internet connection might be blocking the Tor network, you can try using bridges. 在洋蔥路由瀏覽器中已經有內建一些橋接中繼站,只需要幾個簡單的設定步驟就可以直接啟用。 要使用可插拔傳輸方式,請在第一次啟動 Tor 瀏覽器時點擊"連線設置"。 在"橋接器"的地方,找到" 從 Tor 瀏覽器內建的橋接器選取",點選"使用內建橋接中繼"。 從選單中,選擇任一想用的可插拔傳輸

完成可插拔式傳輸工具的選擇後,回到頁面最上方點選「連線」即可儲存您的設定。

或者,如果正在運行 Tor 瀏覽器,請點擊漢堡選單 (≡) 中的“設置”,然後點擊側邊欄中的“連接”。 在"橋接器"的地方,找到" 從 Tor 瀏覽器內建的橋接器選取",點選"使用內建橋接中繼"。 從選單中選擇任一想用的可插拔傳輸。關閉標籤頁時,你的設置將自動保存。

如果您需要其他的橋接中繼站位址,可以在我們的 橋接中繼站網頁上取得。 需要更多有關橋接中繼站的資訊,請參考洋蔥路由瀏覽器使用手冊

一個可能導致洋蔥路由瀏覽器連線錯誤的常見原因,是系統的時間設定不正確。 請確保您的系統時間和時區設定正確。 如果這不能解決問題,請參閱 Tor 瀏覽器手冊中的故障排除頁面

有些時候,在您使用 Tor 來使用Gmail服務時,谷歌會跳出您的帳號可能已被盜用的提示訊息。 該訊息還會把最近有用來登入過您的帳號的IP位址列出。

通常這些都是假警報:因為谷歌發現您的帳號在短時間內從世界各地登入,這其實是使用洋蔥路由的正常現象,因此已經決定將該帳號的這些連線活動認定為正常。

儘管說這是使用洋蔥路由所產生的副作用,但並不代表說您可以將它完全忽略不理會。 雖然說它可能只是假警報,但是也有可能是真的有惡意人士竊取到您的 Cookie並盜用您的帳號。

通常惡意人士可以透過直接使用您的電腦或是監聽您的網路連線,來進行Cookie竊取行為。 在理論上,只有直接操作使用您的電腦才有可能做到,因為現在Gmail網站或其他類似的服務都已經有全面啟用SSL加密連線機制來傳送Cookie了。 而不幸的是在實際情境裡,事實會比這還要更加複雜

而如果真的有人竊取到您的Google Cookie的話,他確實是很有可能會從其他地方登入您的帳號(當然也有可能從同個地方登入),總而言之,當您開始使用洋蔥路由瀏覽器來登入谷歌的服務後,它所提供的帳號安全保護機制對您來說就不太管用了,因為您將會不斷收到許多假警報。因此您就必須要採取其他的策略,例如隨時留意您的帳號裡是否有可疑的內容,或者是查看帳號登入活動的時間記錄是否跟您實際使用的時間吻合。

最近Gmail服務也開始提供兩階段驗證法功能,以便讓使用者的帳號能夠有多一層的保護。

這是個已知且常常會間歇性出現的問題,這個現象並非代表谷歌把 Tor 視為間諜軟體。

當您使用洋蔥路由時,您的電腦傳送出的資料會從成千上萬的人所共用的出口中繼節點主機發出,當在短時間內有大量的洋蔥路由使用者利用谷歌引擎在搜尋資料時,就常常會出現這種情況。因為當短時間內有大量的搜尋請求從同一個IP位址發送出來時(剛好正是您所使用的出口中繼節點主機),谷歌網站會認為是有人使用「爬蟲程式」在撈網站資料,因此就會自動將來自該IP位址的連線流量暫時阻斷。

你可以嘗試“該站點新建迴路”,從一個不同的 IP 地址訪問該網站。

另一個可能的原因,是谷歌網站偵測到來自該IP位址的連線有疑似間諜軟體或病毒程式的行為,因此就對所有來自該位址的連線(在沒有發現該位址其實是洋蔥路由出口節點的情況下)發出安全性警告。

據我們所知,谷歌網站並沒有刻意針對洋蔥路由的使用者去識別或阻擋,這個有病毒感染電腦的錯誤訊息通常一小段時間後就會自己消失了。

很不幸的是,有些網站會對洋蔥路由使用者設置Captcha挑戰回覆測試關卡,我們並沒有能力去移除這些設置。 解決這種問題最好的方式,是直接聯繫該網站的管理人員,跟他們說明您在連上他們網站時所遭遇的情況。

谷歌網站會使用「地理定位功能」來決定您目前所處的地理位置,以便能夠讓它們的服務更貼近您的個人使用者體驗,這包含了決定哪種語言是您慣用的介面,以及搜尋結果要優先顯示哪些內容等。

如果您希望谷歌以英文介面呈現的話,可以點擊語言選擇來切換,然而,我們並不認為這是洋蔥路由的問題,這反而是其功能優勢,畢竟網路世界並不是平坦的,在不同的地區會看到不同的網路內容是正常的,這項功能也是對於這個事實的提示。

需要特別留意的是,谷歌搜尋的網址列中會帶有多個變數名稱與資料值的參數,其中一個變數名稱為「hl」,若將這個「hl」變數的資料值設定為「en」的話,那不論您的搜尋關鍵字是傳送到哪個谷歌伺服器,其搜尋的回傳結果都將會是英文內容,這個修改過得網址連結看起來會像這樣:

https://encrypted.google.com/search?q=online%20anonymity&hl=en

另一個方式是使用國家代碼來存取谷歌網站,像是google.be、google.de或是google.us等。

使用洋蔥路由瀏覽器時,沒有人能看到您正在瀏覽哪個網站。 然而,您的網路服務供應商或網路管理員可能會看到您正連線到洋蔥路由網路,儘管說他們完全無法得知您正在進行什麼網路活動。

Tor 瀏覽器可防止其他人得知您存取過哪些網站。 某些像是網路服務供應商(ISP)的組織是可以看到您正在使用洋蔥路由,但他們不會知道您連線的目的地。

DuckDuckGo是洋蔥路由瀏覽器預設的搜尋引擎。 DuckDuckGo不會追蹤或記錄使用者的搜尋行為,請參閱DuckDuckGo隱私政策以了解更多細節。

隨著洋蔥路由瀏覽器第6.0.6版的發佈,我們改用DuckDuckGo作為主要的搜尋引擎。 Disconnect曾經是 Tor 瀏覽器預設使用的搜尋引擎,但是進來它已經無法再取得來自谷歌的搜尋結果了。 由於Disconnect是一種中繼搜尋引擎,它會讓使用者選擇由各個不同搜尋引擎擷取搜尋結果,因此它現在都預設只能取回Bing搜尋引擎的結果,這從資料搜尋服務的品質來說已經難以讓人接受。 而DuckDuckGo搜尋引擎並不會去記錄或傳送使用者的個人資訊及搜尋歷史,因此從隱私保護的角度來說算是首選。 其他絕大多數的搜尋引擎都會全程記錄您的搜尋關鍵字歷史、日期時間、電腦IP位址,若您有登入的話還會將之與您的個人帳號資訊關聯在一起。

請前往DuckDuckGo技術支援頁面。 如果您認為這是洋蔥路由瀏覽器的問題,那請協助回報至我們的問題追蹤器

要在洋蔥路由瀏覽器中變更中繼節點迴路有兩種方法 — 「新識別身份」和「為此網站建立新迴路」。 這兩個功能都位於漢堡選單(≡)裡。 您也可以從網址列的網站資訊裡找到建立新迴路的功能,而新識別身份功能則可以點擊畫面右上角的亮晶晶掃帚圖示。

新的識別身份

如果您想要避免您後續在網路上的活動記錄與您之前的活動記錄連結在一起,這個功能可以幫助您。

執行此功能將會關閉所有已經開啟的瀏覽器視窗及分頁、清除所有的瀏覽器Cookie與瀏覽歷史記錄等個人資訊,並且為後續所有的網路連線建立新的洋蔥路由迴路。

洋蔥路由瀏覽器會警告您所有正在進行中的活動與下載都將被終止,因此當要執行「新識別身分」功能前,請先做好相關準備。

洋蔥路由瀏覽器選單

為此網站建立新迴路

如果您正在使用的出口中繼站無法連接到您要的網站,或者無法正確載入該網站時,這個功能就很有用。 使用此功能將會使當前的分頁或視窗透過新的洋蔥路由迴路重新載入資訊。

其他開啟的同一網站的分頁和視窗也會在重新載入內容時套用新的迴路。

這個選項不會清除任何私人資訊或讓中斷您的網路連線,亦不會影響當下您與其他網站的連線。

為此網站建立新迴路

執行洋蔥路由瀏覽器並不會使您的電腦成為洋蔥路由網路中的中繼節點。 意思就是說,執行洋蔥路由瀏覽器並不會讓您的電腦用來轉送別人的網路流量。 如果您想要架設中繼節點的話,請參閱我們的洋蔥路由中繼節點指南

那是正常的洋蔥路由行為。 迴路中的第一個中繼節點被稱為「入口護衛節點」或「護衛節點」。 它是一個快速且穩定的中繼站,會持續在2-3個月的時間內,扮演您迴路中的第一個中繼節點,目的是用來防堵一種已知的匿名性破解攻擊法。 至於迴路中的其他節點,則會在您瀏覽到新的網站時跟著改變,這些中繼節點整體上可對您的洋蔥路由連線提供完整的隱私保護。 若想了解更多關於護衛節點的運作原理,請參閱此部落格貼文,以及這篇有關於入口護衛節點的論文

洋蔥路由瀏覽器對於每一個新的網域,都會使用其個別的迴路來建立連線。 洋蔥路由瀏覽器的設計與實作文件中,有詳細描述這樣的設計模式背後的思維。

強烈建議不要修改洋蔥路由建立迴路的方式。 使用洋蔥路由預設的節點選擇策略才能夠給予您的安全做最大的保護;修改入口/出口節點的挑選策略可能會破壞您的匿名保護機制。 如果您的需求是存取僅限於某個特定國家/地區才能使用的網路資源,那麼您要考慮使用的是虛擬私有網路而不是洋蔥路由。 請注意,虛擬私有網路並不具有與洋蔥路由相同等級的隱私保護性,但是確實能協助解決一些地理位置限制的問題。

注意:請不要聽從來路不明的建議去編輯您的torrc設定檔! 惡意的攻擊者可以藉由錯誤的torrc設定,來破壞您的安全性與匿名性保護機制。

Tor 是透過torrc設定檔來決定其行為模式的。 它的預設狀態對於絕大多數洋蔥路由使用者來說,應該都可以正常運行(因此不應變更)。

若想看您的洋蔥路由瀏覽器的torrc設定檔,可依循下列步驟。

在Windows或Linux系統中:

  • torrc位於洋蔥路由瀏覽器的資料目錄Browser/TorBrowser/Data/Tor中。

在 macOS 上:

  • torrc位於您的洋蔥路由瀏覽器的資料目錄~/Library/Application Support/TorBrowser-Data/Tor中。
  • 請注意,在較新版的 macOS系統中,此 Library 目錄是被隱藏起來的,因此要在檔案搜尋器的「前往」清單中選擇「前往目錄...」。
  • 然後在該視窗中輸入~/Library/Application Support/並點擊「前往」。

在編輯您torrc設定檔前,請先關閉洋蔥路由瀏覽器,否則洋蔥路由瀏覽器會將您的變更清除掉。 有些功能設定對洋蔥路由瀏覽器不會造成任何影響,因為它會在啟動洋蔥路由時以指令將設定值覆蓋掉。

請參見torrc範例來了解一些常見的設定值。 若想了解您能使用的設定值有哪些,請參閱洋蔥路由使用者手冊。 請記住,在torrc設定檔中,所有以#開頭的列都會被視為是註解,對於洋蔥路由的設定不會有任何影響。

強烈不建議在洋蔥路由瀏覽器中安裝任何新的附加元件,因為它們可能會破壞您的隱私和安全保護機制。

為洋蔥路由瀏覽器額外安裝擴充元件時,可能會讓您的洋蔥路由瀏覽器特徵值變得更與眾不同。 如果您的洋蔥路由瀏覽器擁有與他人不同的特徵值的話,即使您全程都使用洋蔥路由瀏覽器,還是有可能讓您的連線活動變得更容易被追蹤進而破壞其匿名性保護。

Each browser's settings and features create what is called a "browser fingerprint". 大多數瀏覽器會在無意間為每個使用者生成獨特的特徵值,這部份資料在網路上就有可能被用於追蹤與識別使用者的網路活動。 洋蔥路由瀏覽器本身有經過特別設計,因此可以讓每個使用者的特徵值看起來都幾乎相同(我們還沒辦法做到完美!)。 This means each Tor Browser user looks like many other Tor Browser users, making it difficult to track any individual user.

且新的擴充元件也很有可能會成為 Tor 瀏覽器的攻擊面向。 這會增加機敏資料外洩的風險,也可能成為攻擊者入侵感染 Tor 瀏覽器的途徑。 甚至有些擴充元件本身就是被惡意人士設計來監視使用者的。

Tor 瀏覽器預安裝了一個附加元件--NoScript--新增任何其他東西都可能去匿名化。

想要了解更多關於瀏覽器特徵值的內容嗎?在洋蔥路由官方部落格上的這篇文章有更深入解釋。

洋蔥路由瀏覽器預設會停用Flash功能,我們也不建議您去啟用它。 We don't think Flash is safe to use in any browser — it's a very insecure piece of software that can easily compromise your privacy or serve you malware. 所幸大多數的網站,設備和其他的瀏覽器都逐漸棄用 Flash。

如果你使用 Tor 瀏覽器,你可以在連線設定中設定你的代理地址、埠和驗證資訊。

如果您是用其他方式使用洋蔥路由的話,那可以在torrc設定檔中設定代理伺服器相關資訊,請參閱使用者手冊裡的HTTPSProxy設定項目,而若您的代理伺服器需要驗證授權的話,請參閱HTTPSProxyAuthenticator設定項目,底下是驗證授權的設定範例:

  HTTPSProxy 10.0.0.1:8080
  HTTPSProxyAuthenticator myusername:mypass

目前我們只支援基礎的驗證功能,如果您需要使用NTLM認證授權機制的話,可以參閱這篇文章

若要使用SOCKS代理伺服器,請參閱使用者手冊裡有關Socks4ProxySocks5Proxy以及torrc裡的相關設定項目,底下是SOCKS 5代理伺服器的設定範例:

  Socks5Proxy 10.0.0.1:1080
  Socks5ProxyUsername myuser
  Socks5ProxyPassword mypass

如果您的代理伺服器只允許您透過特定的連接埠來建立連線的話,請參閱被防火牆阻擋以了解如何限制洋蔥路由建立連線時所使用的埠號。

請參閱HTTPS Everywhere問答集。 如果你認為這是 Android 版 Tor 瀏覽器的問題,請透過問題跟蹤器報告。

Tor 瀏覽器 11.5 版本起,桌面版預設啟用 HTTPS-Only 模式,且 HTTPS Everywhere 不再與 Tor 瀏覽器捆綁。

在預設情況下, Tor 客戶端程式只接受來自本地端主機應用程式的連線。 來自別臺電腦的連線都會被拒絕。 如果您想要將別沒有洋蔥路由客戶端程式的臺電腦裡的應用程式連線也洋蔥化的話,您會需要編輯torrc設定檔裡的SocksListenAddress 0.0.0.0項目,然後再重新啟動洋蔥路由。 如果您想要用更進階的方式,也可以直接調整防火牆的設定,把洋蔥路由客戶端程式的主機的內部IP位址綁定,讓它不會使用您的外部IP位址。

可以的,洋蔥路由可以被設定成單純的客戶端軟體,或是成為另一臺設備的中繼節點,並讓其他裝置可以透過它進行連線以確保匿名性。 這種用法最常見的情境是,當有多臺電腦都同時需要一個匿名保護閘道來連上網路的時候。 然而需要特別注意的是,在這樣的配置設定狀態下,任何位處於您的私域網路中的人(位於您的電腦與洋蔥路由中繼節點之間),都可以清楚看見您未經加密的網路連線活動資料。 您的網路連線的匿名性保護機制只從洋蔥路由中繼站開始才有效。 鑑此,若您掌控了您的私人網域空間且確定它是被安全隔離的,那這種使用方式就不會有問題,然而對於較大型的私域網路空間,基於安全性的考量,這樣的配置方式就不太合適。

設定過程很簡單,只要依照下列範例來調整您torrc設定檔裡的SocksListenAddress區段即可:

SocksListenAddress 127.0.0.1
SocksListenAddress 192.168.x.x:9100
SocksListenAddress 0.0.0.0:9100

若您位處於多個網域或子網路區段中的話,可以在此寫入多個傾聽位址。

SocksListenAddress 192.168.x.x:9100 #eth0
SocksListenAddress 10.x.x.x:9100 #eth1

完成這些調整後,您位在不同子網路頻段的客戶端程式,都相會使用您在SocksListenAddress設定裡所指定的Socks代理伺服器位址和連接埠號。 請注意,在SocksPort設定裡所指定的連接埠號,是專給本地端主機(127.0.0.1)使用的。 當您在設定SocksListenAddress(es)時,您會需要為該些位址指定連接埠號,如上所示。 如果您是希望將所有傳送的網路連線資料都強制集中導向洋蔥路由客戶端程式/中繼節點,而不單只是選擇性的使用代理伺服器的話,那您可能會需要利用iptables(對於*nix系統)來達成。

我們設定NoScript來啟用洋蔥路由瀏覽器裡的JavaScript功能,因為如果禁用JavaScript的話,許多網站功能無法正常運作。 如果預設設定停用JavaScript功能的話,會對使用者帶來很多問題,進而導致大多數的人會完全放棄洋蔥路由。 我們的終極目標除了希望盡可能的提升洋蔥路由瀏覽器的安全外,也同時希望讓大多數人都可以正常使用,因此,這就是目前我們必須保留預設啟用JavaScript功能的原因。

對於希望在所有使用HTTP協定的網站上可以預設停用JavaScript的使用者來說,我們建議您調整洋蔥路由瀏覽器的「安全性等級」設定。 可透過點選“安全”圖示(螢幕右上角的灰色小盾牌),然後點選“更改…”進行調整。 “標準”級別允許 JavaScript,“較安全”級別阻止 HTTP 站點上的 JavaScript,而“最安全”級別則完全阻止 JavaScript。

請參閱NoScript問答集。 如果你認為這是 Tor 瀏覽器的問題,請在 漏洞跟蹤器中報告。

行動版洋蔥路由

目前在較舊的Windows Phone上不支援使用洋蔥路由瀏覽器,但對於微軟公司所發佈的較新型行動運算裝置,可以依照安卓版洋蔥路由瀏覽器的方式來使用。

保衛者計畫負責開發維護安卓版的Orbot(以及其他隱私保護軟體),請前往保衛者計畫官方網站以了解更多資訊。

即將會有,快了。 於此同時,您可以在F-Droid裡啟用保衛者計畫的軟體套件庫來下載安卓版洋蔥路由瀏覽器。

了解如何在F-Droid中增加軟體套件庫

We recommend iOS apps Onion Browser and Orbot for a secure connection to Tor. Onion Browser and Orbot are open source, use Tor routing, and are developed by someone who works closely with the Tor Project. 不過,Apple要求iOS上的瀏覽器必須使用Webkit,這會使Onion Browser無法達到與 Tor 瀏覽器相同等級的隱私保護。

了解更多關於Onion Browser的相關資訊。 Download Onion Browser and Orbot from the App Store.

安卓版洋蔥路由瀏覽器與Orbot都是很棒的軟體,但它們的功能取向並不相同。 安卓版洋蔥路由瀏覽器類似於電腦版的洋蔥路由瀏覽器,但它是專為您的行動運算裝置設計的,可以讓您直接透過洋蔥路由網路來上網的瀏覽器,並且它會盡可能的保護您的匿名性。 Orbot on the other hand is a proxy that will enable you to send the data from your other applications (E-Mail clients, instant messaging apps, etc.) through the Tor network; a version of Orbot is also inside of Tor Browser for Android, and is what enables it to connect to the Tor network. That version, however, does not enable you to send other apps outside of Tor Browser for Android through it. 因此這完全取決於您的使用需求,不論事單獨使用或兩者一起用都是不錯的選擇。

可以的,目前我們有針對安卓系統提供專屬的洋蔥路由瀏覽器,只要安裝該安卓版洋蔥路由瀏覽器,就可以在您的安桌設備上使用洋蔥路由。

保衛者計畫有開發維護一個名為Orbot的應用程式,可以讓您把安卓裝置上其他應用程式的網路連線都導入洋蔥路由網路中,然而,如果您純粹只是希望利用洋蔥路由來瀏覽網頁的話,那只要使用安卓版洋蔥路由瀏覽器就夠了。

正在建立洋蔥路由連接

一個可能導致洋蔥路由瀏覽器連線錯誤的常見原因,是系統的時間設定不正確。 請確保您的系統時間和時區設定正確。 如果這不能解決問題,請參閱 Tor 瀏覽器手冊中的故障排除頁面

當連線發生問題時,可能會出現相關錯誤訊息,此時您可以點選「複製 Tor 歷程紀錄到剪貼簿」。 然後將 Tor 日誌貼到純文字檔案或其他文件上。

如果你沒有看到這個選項,打開 Tor 瀏覽器,找到漢堡選單("≡"),然後點擊“設置”,最後點擊側欄的“連接”。 在該頁面的最下方,點擊位於「查閱 Tor 歷程紀錄」這段文字旁邊的「查閱歷程紀錄...」按鈕。

Alternatively, on GNU/Linux, to view the logs right in the terminal, navigate to the Tor Browser directory and launch Tor Browser from the command line by running:

./start-tor-browser.desktop --verbose

或是將歷程記錄儲存至檔案中 (預設:tor-browser.log)

./start-tor-browser.desktop --log [file]

您應該會在歷程記錄中看到以下這些常見的錯誤(請在您的洋蔥路由歷程記錄中查找以下幾行文字):

常見歷程記錄錯誤 #1:代理伺服器連線失敗

2017-10-29 09:23:40.800 [NOTICE] Opening Socks listener on 127.0.0.1:9150
2017-10-29 09:23:47.900 [NOTICE] Bootstrapped 5%: Connecting to directory server
2017-10-29 09:23:47.900 [NOTICE] Bootstrapped 10%: Finishing handshake with directory server
2017-10-29 09:24:08.900 [WARN] Proxy Client: unable to connect to xx..xxx..xxx.xx:xxxxx ("general SOCKS server failure")

如果您在洋蔥路由的歷程記錄中看到類似的訊息,這表示您與SOCKS代理伺服器的連線建立失敗。 如果您的網路環境需要設定SOCKS代理伺服器才能上網的話,請確定您有正確填入您的代理伺服器相關資訊。 如果您的網路服務不需要使用SOCKS代理伺服器,或者是您不確定的話,那請嘗試在不使用SOCKS代理伺服器的情況下連線到洋蔥路由網路。

常見歷程記錄錯誤 #2:無法連上護衛節點

11/1/2017 21:11:43 PM.500 [NOTICE] Opening Socks listener on 127.0.0.1:9150
11/1/2017 21:11:44 PM.300 [NOTICE] Bootstrapped 80%: Connecting to the Tor network
11/1/2017 21:11:44 PM.300 [WARN] Failed to find node for hop 0 of our path. Discarding this circuit.
11/1/2017 21:11:44 PM.500 [NOTICE] Bootstrapped 85%: Finishing handshake with first hop
11/1/2017 21:11:45 PM.300 [WARN] Failed to find node for hop 0 of our path. Discarding this circuit.

如果您在洋蔥路由歷程記錄中看到類似的訊息,這表示您無法連接上洋蔥路由迴路上的第一個節點。 這可能表示您正在使用被審查過濾的網絡服務。

請嘗試透過橋接中繼站來建立連線,這應該可以解決這個問題。

常見歷程記錄錯誤 #3:TLS交握協議執行失敗

13-11-17 19:52:24.300 [NOTICE] Bootstrapped 10%: Finishing handshake with directory server 
13-11-17 19:53:49.300 [WARN] Problem bootstrapping. Stuck at 10%: Finishing handshake with directory server. (DONE; DONE; count 10; recommendation warn; host [host] at xxx.xxx.xxx.xx:xxx) 
13-11-17 19:53:49.300 [WARN] 10 connections have failed: 
13-11-17 19:53:49.300 [WARN]  9 connections died in state handshaking (TLS) with SSL state SSLv2/v3 read server hello A in HANDSHAKE 
13-11-17 19:53:49.300 [WARN]  1 connections died in state connect()ing with SSL state (No SSL object)

如果您在洋蔥路由的歷程記錄中看到類似的訊息,這表示您無法和目錄主管機構主機完成TLS交握程序。 使用橋接中繼站可能可以解決這個問題。

常見歷程記錄錯誤 #4:鐘訊偏移

19.11.2017 00:04:47.400 [NOTICE] Opening Socks listener on 127.0.0.1:9150 
19.11.2017 00:04:48.000 [NOTICE] Bootstrapped 5%: Connecting to directory server 
19.11.2017 00:04:48.200 [NOTICE] Bootstrapped 10%: Finishing handshake with directory server 
19.11.2017 00:04:48.800 [WARN] Received NETINFO cell with skewed time (OR:xxx.xx.x.xx:xxxx): It seems that our clock is behind by 1 days, 0 hours, 1 minutes, or that theirs is ahead. Tor requires an accurate clock to work: please check your time, timezone, and date settings.

如果您在洋蔥路由的歷程記錄中看到這樣的訊息,這表示您的系統時間設定不正確。 請確保您的系統時間設定正確,包括正確的時區,然後再重新啟動洋蔥路由。

有許多不同的原因皆可能會造成代理伺服器相關的錯誤。 若您遇到這類錯誤的話,可以嘗試以下的方式:

  • 若您有使用防毒軟體的話,它有可能會干擾洋蔥路由服務,請將他停用後再重啟瀏覽器。
  • 不應將 Tor 瀏覽器文件夾從初始位置移動至其他地方。 如果您有這樣做的話,請將它復原。
  • 您也需要確認建立連線所使用的埠號,試著用別的連接埠連線,例如9050或9015。
  • 如果以上方式都無效的話,請重新安裝洋蔥路由瀏覽器,並且注意要將它安裝至另一個新的目錄中,不要去覆蓋先前安裝的版本。

如果錯誤仍然依舊的話,請與我們聯繫

若您無法連上某個洋蔥服務時,請先確認有將56個字元長度的洋蔥位址完全正確輸入,即使是細微的筆誤都會讓洋蔥路由瀏覽器對該站臺的連線失敗。 如果您仍然無法連線到洋蔥服務,請稍後再試。 有可能是暫時的網路連線問題,或者該網站的管理員在無預警的情況下暫時關閉網站。

您也可以試著連接到DuckDuckGo的洋蔥服務來確認您是否能夠連上其他洋蔥服務站台。

網路審查過濾

如果您無法從我們的網站下載洋蔥路由瀏覽器的話,也可以試著利用GetTor來取得。 GetTor是一項網路服務,會自動回覆訊息提供最新版洋蔥路由瀏覽器的下載連結,通常會是位在各種比較不會被審查的伺服器上,像是Dropbox、Google Drive或GitHub。 可以通過郵件或者 Telegram 自動程式https://t.me/gettor_bot請求。 可以從 https://tor.eff.org 或者 https://tor.calyxinstitute.org/下載 Tor 瀏覽器。

發送一封電子郵件到 “gettor@torproject.org” 在郵件的內文裡,寫明您的作業系統名稱(例如Windows、MacOS或是Linux)。 GetTor就會自動回覆一封電子郵件給您,裡面會包含下載洋蔥路由瀏覽器的連結、它所對應的密碼學數位簽章(用於驗證所下載的檔案)、產製數位簽章用的金鑰指紋以及該檔案的總和檢查碼。 您可能會碰到選擇 32 位元或 64 位元版本的選項:需根據您所使用的電腦系統架構選擇。請查閱您電腦的相關文件確認相關細節。

如果您懷疑您的政府或網路服務供應商 (ISP) 實施了某種形式的網路審查或過濾,您可以使用 OONI Probe. OONI Probe 是由網路幹擾開放觀測站 (OONI) 開發的免費開源應用程式。 它旨在測試和衡量哪些網站、訊息應用程式和規避工具可能被封鎖。

在執行這些測量測試之前,請仔細閱讀 OONI 的安全建議和風險評估。 與任何其他測試工具一樣,請注意 OONI 的誤報測試

要檢查 Tor 是否被阻止,您可以在行動裝置或桌面上 install OONI Probe然後執行 "Circumvention Test". OONI Tor 測試可以作為 Tor 網路潛在阻塞的指示,但我們開發人員的全面分析對於結論性評估至關重要。

洋蔥路由瀏覽器確實可以協助人們造訪在特定地區被封鎖的網站。 大多數時候,只需下載洋蔥路由瀏覽器 ,然後就可以直接連上被封鎖的網站了。 在有嚴格的網路審查過濾機制的地區,我們還有提供數個用來規避審查的工具,包含可插拔式傳輸

更多資訊,請參見Tor 瀏覽器用戶手冊中關於審查規避的部分

當連線發生問題時,可能會出現相關錯誤訊息,此時您可以點選「複製 Tor 歷程紀錄到剪貼簿」。 然後將 Tor 日誌貼到純文字檔案或其他文件上。

如果你沒有看到這個選項,打開 Tor 瀏覽器,找到漢堡選單("≡"),然後點擊“設置”,最後點擊側欄的“連接”。 在該頁面的最下方,點擊位於「查閱 Tor 歷程紀錄」這段文字旁邊的「查閱歷程紀錄...」按鈕。

Alternatively, on GNU/Linux, to view the logs right in the terminal, navigate to the Tor Browser directory and launch Tor Browser from the command line by running:

./start-tor-browser.desktop --verbose

或是將歷程記錄儲存至檔案中 (預設:tor-browser.log)

./start-tor-browser.desktop --log [file]

您應該會在歷程記錄中看到以下這些常見的錯誤(請在您的洋蔥路由歷程記錄中查找以下幾行文字):

常見歷程記錄錯誤 #1:代理伺服器連線失敗

2017-10-29 09:23:40.800 [NOTICE] Opening Socks listener on 127.0.0.1:9150
2017-10-29 09:23:47.900 [NOTICE] Bootstrapped 5%: Connecting to directory server
2017-10-29 09:23:47.900 [NOTICE] Bootstrapped 10%: Finishing handshake with directory server
2017-10-29 09:24:08.900 [WARN] Proxy Client: unable to connect to xx..xxx..xxx.xx:xxxxx ("general SOCKS server failure")

如果您在洋蔥路由的歷程記錄中看到類似的訊息,這表示您與SOCKS代理伺服器的連線建立失敗。 如果您的網路環境需要設定SOCKS代理伺服器才能上網的話,請確定您有正確填入您的代理伺服器相關資訊。 如果您的網路服務不需要使用SOCKS代理伺服器,或者是您不確定的話,那請嘗試在不使用SOCKS代理伺服器的情況下連線到洋蔥路由網路。

常見歷程記錄錯誤 #2:無法連上護衛節點

11/1/2017 21:11:43 PM.500 [NOTICE] Opening Socks listener on 127.0.0.1:9150
11/1/2017 21:11:44 PM.300 [NOTICE] Bootstrapped 80%: Connecting to the Tor network
11/1/2017 21:11:44 PM.300 [WARN] Failed to find node for hop 0 of our path. Discarding this circuit.
11/1/2017 21:11:44 PM.500 [NOTICE] Bootstrapped 85%: Finishing handshake with first hop
11/1/2017 21:11:45 PM.300 [WARN] Failed to find node for hop 0 of our path. Discarding this circuit.

如果您在洋蔥路由歷程記錄中看到類似的訊息,這表示您無法連接上洋蔥路由迴路上的第一個節點。 這可能表示您正在使用被審查過濾的網絡服務。

請嘗試透過橋接中繼站來建立連線,這應該可以解決這個問題。

常見歷程記錄錯誤 #3:TLS交握協議執行失敗

13-11-17 19:52:24.300 [NOTICE] Bootstrapped 10%: Finishing handshake with directory server 
13-11-17 19:53:49.300 [WARN] Problem bootstrapping. Stuck at 10%: Finishing handshake with directory server. (DONE; DONE; count 10; recommendation warn; host [host] at xxx.xxx.xxx.xx:xxx) 
13-11-17 19:53:49.300 [WARN] 10 connections have failed: 
13-11-17 19:53:49.300 [WARN]  9 connections died in state handshaking (TLS) with SSL state SSLv2/v3 read server hello A in HANDSHAKE 
13-11-17 19:53:49.300 [WARN]  1 connections died in state connect()ing with SSL state (No SSL object)

如果您在洋蔥路由的歷程記錄中看到類似的訊息,這表示您無法和目錄主管機構主機完成TLS交握程序。 使用橋接中繼站可能可以解決這個問題。

常見歷程記錄錯誤 #4:鐘訊偏移

19.11.2017 00:04:47.400 [NOTICE] Opening Socks listener on 127.0.0.1:9150 
19.11.2017 00:04:48.000 [NOTICE] Bootstrapped 5%: Connecting to directory server 
19.11.2017 00:04:48.200 [NOTICE] Bootstrapped 10%: Finishing handshake with directory server 
19.11.2017 00:04:48.800 [WARN] Received NETINFO cell with skewed time (OR:xxx.xx.x.xx:xxxx): It seems that our clock is behind by 1 days, 0 hours, 1 minutes, or that theirs is ahead. Tor requires an accurate clock to work: please check your time, timezone, and date settings.

如果您在洋蔥路由的歷程記錄中看到這樣的訊息,這表示您的系統時間設定不正確。 請確保您的系統時間設定正確,包括正確的時區,然後再重新啟動洋蔥路由。

橋接中繼站是未在列在公開 Tor 目錄中的中繼節點。

這表示那些試圖封鎖洋蔥路由網路連線的ISP業者或政府機關,沒有辦輕易的封鎖所有橋接中繼站。 橋接中繼站對於身處在威權統治國家中的 Tor 使用者,以及希望獲得額外安全性的人們來說非常實用,因為他們會擔心有人會發現他們使用 Tor 的活動。

橋接中繼站只是設定略有不同的普通中繼節點。 詳情請見如何架設橋接中繼站以取得相關指引。

包括中國和伊朗在內的很多國家,已經找到偵測並封鎖通往洋蔥路由橋接中繼站的方式。 使用Obfsproxy的橋接中繼站則是使用額外的一層混淆技術來解決這個問題。 要架設obfsproxy的橋接中繼站,會額外需要一套軟體與相關設定。 請參見我們的可插拔式傳輸工具頁面以獲取更多資訊。

Snowflake是一種洋蔥路由瀏覽器內建的可插拔式傳輸工具,可以用來突破網路審查的封鎖。 就像是洋蔥路由的橋接中繼站一樣,即使是使用者的洋蔥路由連線受到審查過濾封鎖,仍然可以透過它來連上開放網際網路。 在洋蔥路由瀏覽器裡使用Snowflake,就跟調整橋接中繼站的設定一樣簡單。

這個系統總共有三個部份:志願者所架設的Snowflake代理伺服器、想要上網的洋蔥路由使用者,以及一個負責將Snowflake代理伺服器發送給使用者的掮客節點。

對於那些志願想要幫助受到網路審查過濾的使用者的人,可以在他們的普通瀏覽器裡輪流啟用這種暫時性代理伺服器,請參閱如何使用Snowflake?

Snowflake是使用高效率的域名前置技術,來連接成千上萬的志願者所架設的Snowflake代理伺服器。 這些是屬於輕量型且暫時性的代理伺服器,而且架設使用很簡易,比起以往的類似技術,它可以讓我們輕易的擴展Snowflake的規模。

對於受到網路審查過濾的使用者來說,如果您所使用的Snowflake代理伺服器被封鎖的話,掮客節點會自動為您找另一個新的代理伺服器。

若您對於技術性的規格與細節有興趣的話,請參閱Snowflake技術概覽以及專案的主頁。 有關 Snowflake 的其他討論,請訪問 Tor 論壇並關注 Snowflake 標籤

目前在洋蔥路由瀏覽器的所有穩定版本中,皆已可使用Snowflake功能:Windows、MacOS、GNU/Linux和安卓。 您也可以在iOS系統的Onion Browser裡使用Snowflake。

如果第一次運行桌面版 Tor 瀏覽器,你可以在啟動畫面上點擊“配置連接”。 在"橋接器"的地方,找到" 從 Tor 瀏覽器內建的橋接器選取",點選"使用內建橋接中繼"。 從選單選擇“Snowflake”。 選取Snowflake之後,將畫面往上拉並點擊「連線」以儲存您的設定。

在瀏覽器內,你可以點擊漢堡選單("≡"),然後點擊“設置”並打開“連接”。 另外,可以在地址欄中輸入 about:preferences#connection 。 在"橋接器"的地方,找到" 從 Tor 瀏覽器內建的橋接器選取",點選"使用內建橋接中繼"。 從選單選擇“Snowflake”。

如果您所使用的網路服務沒有被審查過濾的話,您應該考慮安裝Snowflake擴充元件來幫助那些被審查過濾封鎖的網路使用者。 When you run Snowflake on your regular browser, you will proxy traffic between censored users and an entry node in the Tor network, and that's all.

由於某些國家/地區對 VPN 伺服器進行審查,我們懇請您在連接到 VPN 時不要執行雪花代理。

擴充元件

首先請確定您有啟用WebRTC功能。 Then you can install this extension for Firefox or the extension for Chrome which will let you become a Snowflake proxy. 它也會顯示在最近24小時內,您幫助了幾個使用者。

網頁

在有啟用WebRTC功能的瀏覽器裡: 如果您不想要在瀏覽器中安裝Snowflake的話,也可以直接到https://snowflake.torproject.org/embed,再開啟該功能選項以成為代理伺服器。 此時如果您想要持續扮演Snowflake代理伺服器的話,就不要關閉這個分頁。

If your internet connection might be blocking the Tor network, you can try using bridges. 在洋蔥路由瀏覽器中已經有內建一些橋接中繼站,只需要幾個簡單的設定步驟就可以直接啟用。 要使用可插拔傳輸方式,請在第一次啟動 Tor 瀏覽器時點擊"連線設置"。 在"橋接器"的地方,找到" 從 Tor 瀏覽器內建的橋接器選取",點選"使用內建橋接中繼"。 從選單中,選擇任一想用的可插拔傳輸

完成可插拔式傳輸工具的選擇後,回到頁面最上方點選「連線」即可儲存您的設定。

或者,如果正在運行 Tor 瀏覽器,請點擊漢堡選單 (≡) 中的“設置”,然後點擊側邊欄中的“連接”。 在"橋接器"的地方,找到" 從 Tor 瀏覽器內建的橋接器選取",點選"使用內建橋接中繼"。 從選單中選擇任一想用的可插拔傳輸。關閉標籤頁時,你的設置將自動保存。

如果您需要其他的橋接中繼站位址,可以在我們的 橋接中繼站網頁上取得。 需要更多有關橋接中繼站的資訊,請參考洋蔥路由瀏覽器使用手冊

身處中國大陸境內的使用者會需要多做一些設定步驟,才能夠突破網路長城的封鎖連上洋蔥路由網路。

要獲得 Tor 瀏覽器的更新版本,先試試 Telegram 自動程序:https://t.me/gettor_bot。 如果不起作用,可以發送郵件至 gettor@torproject.org,並根據相應的作業系統,在郵件主題上寫明“Windows”、“Macos”或“linux”作業系統。

安裝後,Tor 瀏覽器將嘗試連接 Tor 網路。 如果所在地屏蔽了 Tor,連線助手將試圖通過橋接器或者 Snowflake 連接。 但是如果這樣也無法連接,第二步是獲得在中國可以使用的橋接器。

目前在中國大陸境內有三種方式可以突破針對洋蔥路由的網路封鎖:

  1. Snowflake 使用臨時性的代理伺服器來與洋蔥路由網路建立連線。 它可以在 Tor 瀏覽器和其他由 Tor 驅動的應用程式上使用,如Orbot。 你可以從 Tor 瀏覽器的內置橋接器選單中選擇 Snowflake。
  2. 未公開的私密 obfs4 橋接:找到我們的 Telegram 機器人 @GetBridgesBot 並發送 /bridges 來獲取橋接器。 或者發送郵件至 frontdesk@torproject.org,並在郵件主題上寫明"private bridge cn"。 如果熟知電腦技術,可以自己在中國境外搭建並運行 obfs4 橋接器。 需要注意的是,通過 BridgeDB 獲取的橋接器以及 Tor 瀏覽器內置的 obfs4 橋接器,很可能無法使用。
  3. meek-azure:能讓你偽裝成訪問微軟的網站,而不是 Tor。 然而,由於連線頻寬的限制,這個方式的網路速度會特別緩慢。 您可以在洋蔥路由瀏覽器的內建橋接中繼站下拉式選單中,選取meek-azure項目。

如果有任何上述的選項行不通的話,請您查閱洋蔥路由歷程記錄並且試試其他方式。

如果需要幫助,可以從 Telegram https://t.me/TorProjectSupportBotSignal上得到幫助。

在我們的論壇指南中查找有關如何規避審查並從俄羅斯連接到 Tor 的最新說明: Tor blocked in Russia - how to circumvent censorship.

如果您需要協助,請透過以下方式聯絡我們 Telegram, WhatsApp, Signal, 或透過電子郵件 frontdesk@torproject.org. 有關規避審查的說明,請使用「privatebridge ru」作為電子郵件的主題行。

有時候網站會阻擋洋蔥路由使用者,因為這些網站無法分辨來自一般的洋蔥路由使用者和自動化機器人在網路流量上的差異。 對於要讓網站解除對洋蔥路由使用者的封鎖,我們認為最好的方式是讓使用者直接與網站管理員聯繫。 可以用來解決問題的一些範例:

“嗨!我嘗試使用洋蔥路由瀏覽器瀏覽您的網站 xyz.com 時,發現貴網站不允許洋蔥路由使用者瀏覽。 想懇請您重新考慮這個決定,由於世界各地的人們會透過使用洋蔥路由瀏覽器來保護他們的隱私和對抗網路審查封鎖。 阻擋洋蔥路由使用者的同時,您可能同時也阻擋了身處在威權獨裁統治的國家但希望能夠自由使用網路的人,像是記者、需要保護自己避免被發現的研究者、吹哨者、社運人士以及想避開侵入性第三方追蹤的人民。 請堅定支持數位隱私和網路自由,並允許洋蔥路由使用者瀏覽 xyz.com。謝謝。”

銀行或其他對身份驗證較為敏感的網站,通常會有利用地理位置為基礎的阻擋功能 (如果銀行知道您經常從某個國家/地區使用他們的服務,但您突然從世界另一端的出口節點進行連線,那麼您的帳戶就有可能會被鎖定或停權)。

若您無法連上某個洋蔥服務,請參閱我連不上X.onion站台

HTTPS

洋蔥路由會防止網路竊聽者知道您瀏覽過的網站。 然而,出口中繼站的管理員或任何密切觀察你的出口中繼站與你的目的地網站之間網路流量的人,仍然可以擷取到透過 HTTP 傳輸協定所發送未被加密的資訊。 如果您正在瀏覽的網站使用 HTTPS,那麼離開出口中繼站的網路流量都將被加密,而且不會被網路竊聽者看見。

下面是以視覺化方式來呈現有無使用 Tor 瀏覽器與 HTTPS 加密進行網路連線時,哪些資訊是網路監聽者可以看到的:

  • 點擊「Tor」按鈕可以查看當您未使用 Tor 時,有哪些資料可以讓網路監聽者直接攔截取得,當此按鈕呈現綠色狀態時,表示 Tor 已經啟動。
  • 您可以點擊「HTTPS」功能按鈕來查看當 HTTPS 啟用時,有哪些資料仍然可能被網路監聽者攔截竊取,而當此按鈕呈現綠色狀態時,表示 HTTPS 功能已經啟動。
  • 當兩個按鈕都是綠色狀態時,您則可以看見在這兩個功能都同時啟動的狀態下,網路監聽者依然能夠竊取到的資料有哪些。
  • 而當這兩個按鈕都呈現灰色時,您則可以查看當這兩個功能都在關閉的狀態下時,網路監聽者能夠攔截竊取到的資料有哪些。



潛在可見資料
Site.com
訪問過的網站。
user / pw
用來認證的使用者名稱與密碼。
資料
正在傳送資料。
位置
當此電腦造訪該網站時的網路位置(公眾網路上的IP位址)。
Tor
不論是否有使用 Tor。

簡單來說: 可以的,您可以用洋蔥路由來瀏覽普通HTTPS網站。

HTTPS連線的目的,是要用來保護電腦網路的通訊安全。 您可以前往此處了解更多關於HTTPS。 Tor 瀏覽器的純 HTTPS 模式自動將成千上萬的網站從未加密的 “HTTP” 切換到更私密的“HTTPS”。

中繼節點維護者

當出口節點的設定錯誤,或者是屬於惡意人士架設的主機,它就會被標記上BadExit的旗標,因此可以防止洋蔥路由程式將該它作為迴路的出口節點來使用,實際上來說,中繼節點只要被標記上這個旗標,就等於是變成非出口節點。 如果我們發現您的出口節點有問題,或者是當網路流量通過您的節點時有可疑的現象,但是又無法跟您取得聯繫以釐清問題時,就會把您的節點標上此旗標。因此請您直接與不良節點管理團隊聯絡,以便解決此問題。

對於客戶端程式而言,護衛節點的使用量原本就會比其他類型節點要低,大多數的客戶端程式可能還沒有切換原本使用的護衛節點。 若要了解更多細節,可以閱讀這篇部落格貼文,或者是這篇論文護衛節點更換策略:洋蔥路由之入口節點選用策略之研析與改進框架

會的,對於抵禦特定某些攻擊手法來說,您的匿名保護機制是會更完備。

最簡單的例子是,當攻擊者掌控了少數幾個 Tor 中繼節點時。 他們只能夠看見連線來自於您,但是無法分辨該連線是您自己所發起的,還是轉接其他使用者的連線。

但在某些情況下,這樣做的保護還是會失效:就是當攻擊者能夠監控您的所有對內與對外網路連線時,那他還是能夠輕易的分辨出,哪些連線是您所發起的,而哪些連線是轉接自其他使用者的。 (即使是在這樣的情況下,除非攻擊者剛好也同時監控到您的網路連線的目標網站,否則他仍然無法得知您目前正與誰連線交換資料,但若他真的恰好也有監控到目標網站的流量,那此時不論您是否使用洋蔥網路,安全防護效果就都沒什麼差別了。)

而架設洋蔥路由中繼節點也是會有一些缺點的。 首先,目前我們的中繼節點總數只有幾百個而已,因此若您自己架設中繼節點的話,攻擊者會馬上察覺您是個非常注重匿名性保護的人。 再來,有些非常刁鑽弔詭的攻擊手法,可以在只知道您是否有架設中繼節點的情況下就發動,這些手法目前還未被深入研究了解或測試,舉例來說,攻擊者可以發動連線並藉由您的中繼節點來轉接,再觀察資料流入與流出的時間差,如此即使攻擊者無法實際監控您的網路,仍然可以「觀測」出您目前是否有發動網路連線。

這個議題目前仍在廣泛的討論與研究中,故其風險的暴露與攻擊的效益權衡目前仍未有定論。 這其實主要還是取決於您最憂慮的攻擊手法為何。 我們認為對於大部分的使用者來說,這是個很好的方向。

在torrc設定檔裡有個項目,可以讓您指定在特定時間區段裡,中繼節點容許使用的總位元組數。

    AccountingStart day week month [day] HH:MM

這個項目讓您指定計數器歸零重置的時間點,例如要設定在一週內可容許使用的總位元組數量的話(在每個禮拜三的上午十點整),您可以這樣設定:

    AccountingStart week 3 10:00
    AccountingMax 500 GBytes

This specifies the maximum amount of data your relay will send during an accounting period, and the maximum amount of data your relay will receive during an accounting period. 當計數時間區段結束時(由AccountingStart指定),在AccountingMax裡的計數器值就會自動歸零。

範例:假設您希望每天的資料傳送量以及接收量分別以50 GB為上限,並且在每天的中午自動歸零重新起計:

    AccountingStart day 12:00
    AccountingMax 50 GBytes

但請注意,您的中繼節點並不一定每次都會在計數時間區段開始的時候就啟動。 它會記錄並觀測在過往幾的計數時間區段中,頻寬配額的耗用速度,再自行於下一個時間區段裡隨機選定某個時間點啟動。 這樣可以避免出現一種情況,就是幾百個中繼節點都在月初同時啟動運作,但是到了月底時卻沒有運作中的中繼節點了。

如果您希望貢獻的網路頻寬總額遠低於您的總網路速率的話,我們建議您以日為單位設定計數時間區段,如此可以避免您的主機在每月的第一天,就把整個月的頻寬配額耗用殆盡。 只要把您每月預定要用的頻寬配額除以30來設定,並且可能要考慮限定傳輸速率,以便讓主機每天的可用時間盡可能拉長:比如說您希望對於傳送或接收的頻寬配額分別設定為X GB的話,那就可以把RelayBandwidthRate的值設定為20*X KBytes。 例如說,您每天都有50 GB的頻寬配額可以貢獻,那就可以把RelayBandwidthRate設定為1000 KBytes,這樣一來可以保證您的中繼節點每天都至少會有半天以上的時間在運作。

    AccountingStart day 0:00
    AccountingMax 50 GBytes
    RelayBandwidthRate 1000 KBytes
    RelayBandwidthBurst 5000 KBytes # 允許更高的突發但保持平均

我們一直努力讓洋蔥路由中繼節點的架設過程更容易且方便:

  • 如果中繼節點偶而需要離線的話也沒關係。 目錄主管機構主機會在短時間內發現,並且停止將該中繼節點廣播出去。 只不過這種情況仍請儘量不要太頻繁發生,因為每當中繼節點斷線時,所有通過它的連線也都會被中斷。
  • 每個 Tor 中繼節點都有一組出口節點政策,用以指定來自哪個中繼節點的什麼樣的連線要被允許或拒絕。 如果您不希望您的中繼節點被當成出口節點來使用的話,可以將它設定成只允許通往其他洋蔥路由中繼節點的連線。
  • 您的中繼節點會針對最近的時間裡可用的網路頻寬進行被動式估測以及廣播,故擁有高頻寬的中繼節點會比低頻寬的節點吸引到更多的使用者,因此,低頻寬的中繼節點也是有相當的實用價值。

BridgeDB 使用六項機制來分發橋接:HTTPS、Moat、Email、 Telegram、Settings 和 Reserved。 橋接中繼站的架設者可以透過中繼節點搜尋引擎,查詢自己的橋接中繼站正在使用哪種方式。 在表單中輸入您的橋接中繼站的<HASHED FINGERPRINT>並點擊「搜尋」。

架設者也能夠自己選擇要使用哪種派送方式。 想要更改模式,請將 torrc 文件中的 BridgeDistribution 設置修改爲以下之一:https、moat、email、telegram、settings、none 或 any。

請參閱橋接中繼站安裝後指南以了解更多相關資訊。

不, 如果您的出口節點的網路連線引起執法單位的關注,那麼相關單位可能會扣押您的電腦。 基於這個理由,最好不要在家中架設出口節點或使用您家中的網路線路。

相對的,可以考慮在支持洋蔥路由專案的商業機構中架設出口節點。 請幫您的出口節點設定一個獨立的IP位址,而且不要讓您自己的網路流量通過它。 當然,您也應該要避免在出口節點的電腦主機上,存放任何敏感或個人資訊。

在torrc設定檔中有兩個選項您可以使用:

BandwidthRate 是指可使用頻寬的最大上限值(單位為每秒位元組數)。 例如,您可以設定成「BandwidthRate 10 MBytes」來把頻寬限制在每秒10 Megabytes以內(較高速的連線),或者是設定成「BandwidthRate 500 KBytes」來把頻寬限制在每秒500 KBytes以內(相當於品質中庸的有限電纜連線速率)。 對於BandwidthRate的最小設定值是每秒75 kilobytes。

BandwidthBurst 則是位元組池,意指連線的資料傳輸率可在短時間內超過BandwidthRate的容許值,但以長時間的流量統計來說,其平均值仍會接近於BandwidthRate。 因此,將BandwidthRate設定較低但BandwidthBurst設定較高的話,可以讓尖峰時間的流量短時間內提高,但長時間的整體平均值仍可以壓在較低的數值。 舉例來說,若您將BandwidthBurst以及BandwidthRate都設定在每秒500 KBytes的話,那您的每秒傳輸速率永遠都不會有超過500 kilobytes的時候,但是若您將BandwidthBurst設定較高(例如5MBytes),那它在尖峰時間的傳輸速率仍可以大幅提昇,直到將該位元組池的額度耗盡為止。

如果您的網路服務連線是非對稱型的(上傳速率低於下載速率),那您應該將BandwidthRate的值設定低於較小的那個頻寬速率(通常是上傳頻寬)。 否則的話,當連線傳輸率較高時,您的封包遺失率也會大幅上升,這個部份會需要您親自實驗測試過後,才能找出最合適的理想值。 然後再把BandwidthBurst跟BandwidthRate設定成相同的值。

以Linux系統架設的洋蔥路由節點還會有另一個選項:可以將洋蔥路由的網路流量優先權值設定低於其他網路流量,如此可以避免該電腦上的其他個人網路活動頻寬受到洋蔥路由的衝擊。 在洋蔥路由資源的貢獻目錄裡,有一個腳本程式可以達成此目的。

此外,休眠選項可指定 Tor 在每個時間段只提供一定量的頻寬(比如每月 100 GB)。相關資訊,可參閱休眠條目

請注意,這裡的BandwidthRate以及BandwidthBurst數值的單位都是位元組,而不是位元。

為什麼中繼節點的負載量差異會很大

洋蔥路由會管理調節整個網路上的頻寬用量,它的現行策略對於大多數的中繼節點來說,都可以運作良好。 然而,Tor 的目標與其他像是位元洪流之類的通訊協定不同。 Tor 的主要目標是提供低延遲率的網頁載入服務,因此會需要預留頻寬以提昇連線速率。 而位元洪流的目標是提供整批下載服務,因此就會盡可能的耗盡所有可用頻寬。

我們目前正在開發一個新的頻寬掃描器,以使這個部份更容易理解與維護。 它會針對未被量測或是量測率偏低的中繼節點進行診斷。

為什麼洋蔥路由會需要頻寬掃描器?

大多數的網路服務供應商會告知您網路的最大速率。 但是洋蔥路由的使用者是來自世界各地,並且他們每次都會以隨機的方式選定一兩個護衛節點來連線。 因此,我們必須要知道每個中繼節點實際上與全世界的網路連通速度是如何。

因此,即使所有中繼運營者將其公佈的頻寬設置為其本地連接速度,我們仍然需要頻寬權限來平衡網際網路不同部分之間的負載。

正常的中繼節點負載量是多少?

正常的中繼節點負載量是可用容載量的30%-80%。 這樣對於使用者來說是最佳狀態,因為負荷超載的中繼節點其延遲率會偏高。 (我們的期望是能夠擁有足夠的中繼節點,以便讓每個節點的平均負載量都落在10%左右,這樣 Tor 網路速度就會幾乎跟普通網際網路一樣快)。

有些時候,中繼節點速度降慢的原因,是因為中央處理器效能不足或是網路連線受到限制。 也有些時候是因為網路速度太慢造成的,例如說該中繼節點與其他節點間的連線有瓶頸,或是位處於較遙遠的地段。

找出中繼節點速度緩慢的原因

造成中繼節點速度緩慢的可能原因有很多,底下逐一說明追查的方式。

系統限制

  • 請確認中繼節點主機的記憶體、中央處理器、網路接套以及檔案描述符的使用量

這些資訊有些在洋蔥路由啟動時會被記錄於歷程記錄中,另外有些資訊則可利用像是top之類的工具軟體查得。

網路服務供應商的限制

  • 確認您的中繼節點通往其他節點的網路連線(頻寬與延遲率)。 有時候中繼節點透過 Comcast公司的網路傳輸會較慢。 位處於北美洲或西歐地區以外的中繼節點也通常會比較慢。

洋蔥路由網路限制

中繼節點的頻寬會受到節點主機本身觀測到的頻寬,或是目錄主管機構的量測值所限制。 底下方式可以查出到底是哪個量測值限制造成的:

  • 查閱consensus-health(超大網頁)上各個節點針對您的中繼節點所作的投票結果,尤其是它們的平均值。 如果您的中繼節點被部份目錄主管機構標記為停機狀態的話:
    • 請確認IPv4或IPv6的位址是否設定錯誤?
    • 它的IPv4或IPv6位址是否無法由某些地區的網路存取到?
    • 是否有多臺中繼節點使用同一個IPv4位址?

或者是確認您的中繼節點所觀測到的頻寬與速率(限制)。 在Metrics上查詢中繼。 將滑鼠游標移至頻寬標頭,可以得知中繼節點觀測到的頻寬值與資料傳輸率。

這裡有幾個比較細節的範例可參考:共識權重下降以及出口節點速率提昇

要如何解決

此圖表中的最小數值會限制該中繼節點被配得的頻寬。

  • 如果是頻寬資料傳輸率造成的話,那可以增加您的torrc設定檔裡有關BandwidthRate、Burst或RelayBandwidthRate、Burst的相關設定值。
  • 如果是受觀測到的頻寬限制的話,那除非中繼節點軟體的觀測值提昇,否則它是不會調昇頻寬限制量的。 此時您就必須要更深入追查此值低落的原因。
  • 如果是量測頻寬的平均值偏低的話,那就表示您的中繼節點通往大部分的頻寬主管機構主機的連線較慢所導致。 此時您就必須要更深入追查量測值低落的原因。

對中繼節點做自我量測

如果您的中繼節點軟體判定自己的速度較慢,或是被頻寬主管機構主機認定較慢的話,您可以用這種方式自行量測自己的頻寬值:

  • 使用 Tor 運行測試,看看 Tor 連接到您的網路的速度有多快

    For this, you need to configure a tor client to use use your relay as entry. If your relay has only Guard flag, set EntryNodes with your relay fingerprint in torrc. If your relay doesn't have Guard flag or it has Guard and Exit flags, you can't set your relay as an entry node (see https://gitlab.torproject.org/tpo/core/tor/-/issues/22204), but you can set it as your bridge, even if it is not a bridge. To set your relay as a bridge, add to your torrc:

    Bridge <ip>:<port>
    UseBridge 1
    

    Then download a large file using your SocksPort as a socks proxy. For this, you can use curl, eg:

    curl https://target/path --proxy socks5h://<user>:<password>@127.0.0.1:<socks-port>
    

    Using different user/password guarantees different circuits. You can use $RANDOM.

    That will give you some idea of how much traffic your relay can sustain.

    Alternatively, you can run relay_bw to test your relay using 2 hops circuits, in a similar way as sbws does.

  • Run a test using tor and chutney to find out how fast tor can get on your CPU. Keep increasing the data volume until the bandwidth stops increasing.

洋蔥路由軟體猜測自身IP位址的方式,是先查得該電腦本身的主機名稱,再去解析該名稱的位址,有時候是因為主機本身的/etc/hosts設定檔裡仍然記錄舊的IP位址造成的。

If that doesn't fix it, you should use the "Address" config option to specify the IP address you want it to pick. If your computer is behind a NAT and it only has an internal IP address, see the following Support entry on dynamic IP addresses.

然而,如果您擁有多個位址的話,或許可以調整「OutboundBindAddress」的設定值,這樣可以讓所有外部連線中所暴露出來的IP位址,就是您希望讓外界網路看見的位址。

簡而言之,它的原理就是:

  • 會有一個ed25519的主身份金鑰檔,名為「ed25519_master_id_secret_key」。 這把金鑰是最重要的,因此請確定它有安全的備份,且它也是機敏檔案,必須要被特別保護。 如果您是手動產製這把金鑰並且有設定密碼的話,那洋蔥路由就能夠幫您把它加密保護。
  • 還會有一把中程的簽署金鑰名為「ed25519_signing_secret_key」,是專門產製給洋蔥路由使用的。 並且,還會產製出一份以主身份金鑰簽署的憑證,檔名為「ed25519_signing_cert」,並確認該中程簽署金鑰在特定的時間裡是有效的。 預設的效期是30天,但這可由torrc設定檔裡的「SigningKeyLifetime N days|weeks|months」項目來變更。
  • 並且還會有一把主公開金鑰名為「ed25519_master_id_public_key」,它是中繼節點在網路上的身份識別。 這把金鑰就不具有機敏性了,它可以從「ed5519_master_id_secret_key」直接運算生成。

若金鑰仍有效的話,洋蔥路由只會需要存取中程簽署金鑰以及憑證檔而已,所以主身份金鑰不需要存放在主機的DataDirectory/keys目錄中,可將它置於另一臺電腦或儲存媒體裡保存。 在中程簽署金鑰以及憑證的效期結束前,您必須要去手動更新,否則的話該臺中繼節點上的洋蔥路由程式會自動關閉。

然而,這個功能是選擇性的,除非您想要,不然的話可以不使用。 如果您想要讓中繼節點可以長時間自主運行,不希望時常要手動去更新中程簽署金鑰的話,可以把主身份金鑰置於DataDirectory/keys裡,但請記得也要另外備份,以免需要重新安裝軟體時可用。 如果您想要啟用這項功能的話,請參閱我們關於此主題的詳細指南

所有的對外連線都應該被設定為允許,這樣您的中繼節點才能夠與其他中繼節點通訊。

在許多司法管轄地區裡,中繼節點的架設者都會受到普通承載人相關法規的保護,就像是網路服務供應商,當有第三方利用其服務進行違反法律之行為時,承載人在法律上會受到免責保護。 但是當出口節點設定連線過濾條件時,此法律上的保護將會失效。

Tor 主張與提倡不受干預的自由網路存取。 出口中繼節點不可以針對通過它們主機的連線進行過濾。 若被發現出口中繼節點進行此類過濾的話,將會被列為不良出口節點

您可以依照下面這份教學,在Windows系統中架設中繼節點:

只有在您能夠讓它24/7不停運行的情況下,再來架設Windows中繼節點。 若您無法保證做到的話,使用Snowflake會是一個貢獻洋蔥路由網路的較好方式。

  • 出口節點是最迫切需要的中繼節點,但是這種節點同時也是面臨法律爭議風險最高的中繼節點(請勿在自己家裡架設出口節點)。
  • 如果您希望以最輕鬆簡便的方式架設中繼節點,那高速的護衛節點是非常實用的選擇
  • 再來就是橋接中繼站。

太棒了,我們很高興您願意架設多臺中繼節點來貢獻網路。 但是麻煩請不要在同一個網路區段中,同時架設超過數十臺,因為洋蔥路由網路的其中一個關鍵,就是要讓整個網路架構更分散且更多元。

如果您決定要架設超過一臺中繼節點的話,麻煩請在每臺節點的torrc設定檔裡調整「MyFamily」項目,把您所架設維護的中繼節點都列進去(每臺皆以英數逗號分隔):

MyFamily $fingerprint1,$fingerprint2,$fingerprint3

其中每個特徵碼都是一串由40個字元所組成的識別碼(不含空白字元)。

如此一來洋蔥路由客戶端程式在建立迴路時,就會避免在同一條迴路中,同時用到多個由您所架設維護的中繼節點。 您應該要把所有由您所掌控的中繼節點都列入MyFamily設定值裡,不論這些節點主機是否位於同一個地理位置。

洋蔥路由可以使用動態IP位址正常運行。 只要把torrc設定檔裡的「Address」項目那行保留空白,這樣洋蔥路由就會自動偵測位址了。

您的觀念並沒有錯,在大多數的情況下,當有一個位元組的資料流進您的洋蔥路由中繼節點,就代表也會有一個位元組的資料流出,反之也是亦然,但是仍會有少數幾個例外情況:

若您有開啟DirPort旗標的話,那洋蔥路由客戶端程式就會對您的主機索取目錄清單資料。 這種索取目錄的請求(HTTP GET)資料量都很少,但須回覆的資料量則相對龐大。 通常這就是讓您的主機對網路「寫入」與「讀取」資料量會有差異的主要原因。

另一個小例外則是當您架設的是出口節點時,您的主機會從連線出口端(例如即時通訊軟體或SSH連線)接收少量的位元組資料,再將之組裝成512位元組的資料包後,送入洋蔥路由網路中。

If you're using Debian or Ubuntu especially, please use the Tor Project's repository, so you can easily receive updates. In addition, using the package provides other conveniences:

  • Your ulimit -n gets set to a high number, so Tor can keep open all the connections it needs.
  • The package creates and uses a separate user, so you don't need to run Tor as your own user.
  • The package includes an init script so Tor runs at boot.
  • Tor can bind to low-numbered ports, then drop privileges.

在中繼搜索中,如果中繼過載,中繼暱稱旁邊將顯示黃色小點。 那就表示下列的負載指標裡,至少有一項被觸發了:

請注意,當中繼節點發生負荷超載的情況時,即使負載量降回正常範圍內,也要等72小時後其顯示狀態才會恢復至正常。

若發現您的中繼節點出現負荷超載現象時,麻煩請進行以下處置:

  1. https://status.torproject.org/ 查詢「洋蔥路由網路」分類裡的任何已知問題。

  2. 請考慮針對網路、記憶體以及中央處理器的使用量,調整sysctl設定

  3. 請考慮啟用MetricsPort以了解實際情況。

調整網路、記憶體以及中央處理器的sysctl設定

TCP連接埠號耗盡

若您遇到TCP連接埠被耗盡的情況,請考慮擴增本地端可用埠號的範圍。 您可藉由此法來調整

# sysctl -w net.ipv4.ip_local_port_range="15000 64000"

或者

# echo 15000 64000 > /proc/sys/net/ipv4/ip_local_port_range

請記住,如上所述,調整的 sysctl在重啟時丟失,而不是永久的。 為了永久有效,需將其添加到 /etc/sysctl.conf/etc/sysctl.d/中的檔案。

MetricsPort

想要了解 Tor 中繼和 Tor 網絡的運行情況,提供並可訪問中繼指標是至關重要的。 從 0.4.6+ 開始,中繼超載資訊被加入到中繼描述符中,但直到 Tor 0.4.7.1-alpha 之後,才提供底層中繼指標的接口:指標接口。

正在啟用 MetricsPort

通過 torrc 配置選項MetricsPort,Tor 提供指標端口的訪問。

重要的是要明白, 對 Tor 網路用戶,公開暴露 Tor MetricsPort 是為危險的,因此該端口默認不啟用,而且其訪問必須受到訪問政策的約束。 因此當開啟這個連接埠時請特別小心謹慎,並且務必在完成除錯後將它關閉。

假設你是運行了 Tor 中繼的伺服器上的唯一用戶。 可以在 torrc 文件中添加以下內容來啟用指標端口:

MetricsPort 127.0.0.1:9035
MetricsPortPolicy accept 127.0.0.1

然後使用以下命令可輕鬆獲取指標:

# curl http://127.0.0.1:9035/metrics

預設為 Prometheus 格式。

注意: 該伺服器上的每個用戶都能夠訪問上述例子中的中繼指標。 通常,可通過MetricsPortPolicy 設置嚴格的訪問政策,並考慮使用作業系統防火牆功能進行深度防禦。

關於 MetricsPortMetricsPortPolicy更詳細的解釋,請參閱 tor 的 man 頁面。

MetricsPort 輸出

以下示例為MetricsPort 啟用後生成的輸出(刪去了所有與擁塞控制有關的指標,因為我們仍然需要穩定該接口):

# HELP tor_relay_connections Total number of opened connections
# TYPE tor_relay_connections gauge
tor_relay_connections{type="OR listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="OR listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="OR listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="OR listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="OR",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="OR",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="OR",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="OR",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Exit",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Exit",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Exit",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Exit",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Socks listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Socks listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Socks listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Socks listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Socks",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Socks",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Socks",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Socks",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Directory listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Directory listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Directory listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Directory listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Directory",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Directory",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Directory",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Directory",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Control listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Control listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Control listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Control listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Control",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Control",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Control",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Control",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Transparent pf/netfilter listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Transparent pf/netfilter listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Transparent pf/netfilter listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Transparent pf/netfilter listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Transparent natd listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Transparent natd listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Transparent natd listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Transparent natd listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="DNS listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="DNS listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="DNS listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="DNS listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Extended OR",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Extended OR",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Extended OR",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Extended OR",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Extended OR listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Extended OR listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Extended OR listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Extended OR listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="HTTP tunnel listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="HTTP tunnel listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="HTTP tunnel listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="HTTP tunnel listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Metrics listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Metrics listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Metrics listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Metrics listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Metrics",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Metrics",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Metrics",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Metrics",direction="received",state="opened",family="ipv6"} 0
# HELP tor_relay_connections_total Total number of created/rejected connections
# TYPE tor_relay_connections_total counter
tor_relay_connections_total{type="OR listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="OR listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="OR listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="OR listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="OR listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="OR listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="OR",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="OR",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="OR",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="OR",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="OR",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="OR",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Exit",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Exit",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Exit",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Exit",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Exit",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Exit",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Socks listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Socks listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Socks listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Socks listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Socks listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Socks listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Socks",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Socks",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Socks",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Socks",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Socks",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Socks",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Directory listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Directory listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Directory listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Directory listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Directory listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Directory listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Directory",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Directory",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Directory",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Directory",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Directory",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Directory",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Control listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Control listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Control listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Control listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Control listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Control listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Control",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Control",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Control",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Control",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Control",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Control",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Transparent pf/netfilter listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Transparent pf/netfilter listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Transparent pf/netfilter listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Transparent pf/netfilter listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Transparent pf/netfilter listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Transparent pf/netfilter listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Transparent natd listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Transparent natd listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Transparent natd listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Transparent natd listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Transparent natd listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Transparent natd listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="DNS listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="DNS listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="DNS listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="DNS listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="DNS listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="DNS listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Extended OR",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Extended OR",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Extended OR",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Extended OR",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Extended OR",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Extended OR",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Extended OR listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Extended OR listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Extended OR listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Extended OR listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Extended OR listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Extended OR listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="HTTP tunnel listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="HTTP tunnel listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="HTTP tunnel listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="HTTP tunnel listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="HTTP tunnel listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="HTTP tunnel listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Metrics listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Metrics listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Metrics listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Metrics listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Metrics listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Metrics listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Metrics",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Metrics",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Metrics",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Metrics",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Metrics",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Metrics",direction="received",state="rejected",family="ipv6"} 0
# HELP tor_relay_flag Relay flags from consensus
# TYPE tor_relay_flag gauge
tor_relay_flag{type="Fast"} 0
tor_relay_flag{type="Exit"} 0
tor_relay_flag{type="Authority"} 0
tor_relay_flag{type="Stable"} 0
tor_relay_flag{type="HSDir"} 0
tor_relay_flag{type="Running"} 0
tor_relay_flag{type="V2Dir"} 0
tor_relay_flag{type="Sybil"} 0
tor_relay_flag{type="Guard"} 0
# HELP tor_relay_circuits_total Total number of circuits
# TYPE tor_relay_circuits_total gauge
tor_relay_circuits_total{state="opened"} 0
# HELP tor_relay_streams_total Total number of streams
# TYPE tor_relay_streams_total counter
tor_relay_streams_total{type="BEGIN"} 0
tor_relay_streams_total{type="BEGIN_DIR"} 0
tor_relay_streams_total{type="RESOLVE"} 0
# HELP tor_relay_traffic_bytes Traffic related counters
# TYPE tor_relay_traffic_bytes counter
tor_relay_traffic_bytes{direction="read"} 0
tor_relay_traffic_bytes{direction="written"} 0
# HELP tor_relay_dos_total Denial of Service defenses related counters
# TYPE tor_relay_dos_total counter
tor_relay_dos_total{type="circuit_rejected"} 0
tor_relay_dos_total{type="circuit_killed_max_cell"} 0
tor_relay_dos_total{type="circuit_killed_max_cell_outq"} 0
tor_relay_dos_total{type="marked_address"} 0
tor_relay_dos_total{type="marked_address_maxq"} 0
tor_relay_dos_total{type="conn_rejected"} 0
tor_relay_dos_total{type="concurrent_conn_rejected"} 0
tor_relay_dos_total{type="single_hop_refused"} 0
tor_relay_dos_total{type="introduce2_rejected"} 0
# HELP tor_relay_load_onionskins_total Total number of onionskins handled
# TYPE tor_relay_load_onionskins_total counter
tor_relay_load_onionskins_total{type="tap",action="processed"} 0
tor_relay_load_onionskins_total{type="tap",action="dropped"} 0
tor_relay_load_onionskins_total{type="fast",action="processed"} 0
tor_relay_load_onionskins_total{type="fast",action="dropped"} 0
tor_relay_load_onionskins_total{type="ntor",action="processed"} 0
tor_relay_load_onionskins_total{type="ntor",action="dropped"} 0
tor_relay_load_onionskins_total{type="ntor_v3",action="processed"} 0
tor_relay_load_onionskins_total{type="ntor_v3",action="dropped"} 0
# HELP tor_relay_exit_dns_query_total Total number of DNS queries done by this relay
# TYPE tor_relay_exit_dns_query_total counter
tor_relay_exit_dns_query_total 0
# HELP tor_relay_exit_dns_error_total Total number of DNS errors encountered by this relay
# TYPE tor_relay_exit_dns_error_total counter
tor_relay_exit_dns_error_total{reason="success"} 0
tor_relay_exit_dns_error_total{reason="format"} 0
tor_relay_exit_dns_error_total{reason="serverfailed"} 0
tor_relay_exit_dns_error_total{reason="notexist"} 0
tor_relay_exit_dns_error_total{reason="notimpl"} 0
tor_relay_exit_dns_error_total{reason="refused"} 0
tor_relay_exit_dns_error_total{reason="truncated"} 0
tor_relay_exit_dns_error_total{reason="unknown"} 0
tor_relay_exit_dns_error_total{reason="tor_timeout"} 0
tor_relay_exit_dns_error_total{reason="shutdown"} 0
tor_relay_exit_dns_error_total{reason="cancel"} 0
tor_relay_exit_dns_error_total{reason="nodata"} 0
# HELP tor_relay_load_oom_bytes_total Total number of bytes the OOM has freed by subsystem
# TYPE tor_relay_load_oom_bytes_total counter
tor_relay_load_oom_bytes_total{subsys="cell"} 0
tor_relay_load_oom_bytes_total{subsys="dns"} 0
tor_relay_load_oom_bytes_total{subsys="geoip"} 0
tor_relay_load_oom_bytes_total{subsys="hsdir"} 0
# HELP tor_relay_load_socket_total Total number of sockets
# TYPE tor_relay_load_socket_total gauge
tor_relay_load_socket_total{state="opened"} 0
tor_relay_load_socket_total 0
# HELP tor_relay_load_tcp_exhaustion_total Total number of times we ran out of TCP ports
# TYPE tor_relay_load_tcp_exhaustion_total counter
tor_relay_load_tcp_exhaustion_total 0
# HELP tor_relay_load_global_rate_limit_reached_total Total number of global connection bucket limit reached
# TYPE tor_relay_load_global_rate_limit_reached_total counter
tor_relay_load_global_rate_limit_reached_total{side="read"} 0
tor_relay_load_global_rate_limit_reached_total{side="write"} 0

我們來說明一下這幾行文字代表的意義:

tor_relay_load_onionskins_total{type="ntor",action="dropped"} 0

當中繼節點開始出現「丟失」訊息時,通常是中央處理器或記憶體相關的問題造成的。

遺憾的是 Tor 是單線程的 除了 處理“洋蔥皮”時. 所謂的「洋蔥表皮」是指在每條迴路中,需要針對每個「洋蔥包覆層」進行的加解密運算處理。

當 Tor 在針對包覆層進行處理時,會將其運算作業交付給執行緒池負責。 因此當這個執行緒池遇到記憶體或中央處理器資源吃緊的情況時,有可能會開始丟失掉須處理的運算工作,進而觸發了負荷超載狀態。

當您的伺服器運算資源有限時,這種情況就有可能會發生。

tor_relay_exit_dns_error_total{...}

“*_dns_error_total” 領域的任何計數器(成功查詢的除外)都表明可能存在 DNS 相關的問題。 然而,我們在 0.4.7 的發佈週期中意識到,DNS 錯誤的噪音太大,且包含太多的假陽性,不可用於超載報告。 因此,從 0.4.6.9 和 0.4.7.4-alpha 開始,我們不再將其用於此目的。然而,為了便於中繼營運者瞭解中繼發生了什麼,仍然保留了 DNS 指標。

DNS 超時問題和錯誤只適用於出口節點。

tor_relay_load_oom_bytes_total{...}

而 OOM的指示訊息通常是由記憶體造成的。 您的中繼節點可能需要增加記憶體,或者也有可能是有記憶體洩漏的問題。 若您發現洋蔥路由程式有記憶體洩漏的現象,麻煩請將問題通報至洋蔥路由的GitLab,或者是直接寄發電子郵件至洋蔥路由中繼節點的郵件論壇

洋蔥路由有內建OOM管理模組,當它可用的總記憶體空間使用量達75%時,此訊息就會被觸發。 因此,假設洋蔥路由程式的可用記憶體總量是2GB的話,當它已使用1.5GB時,會自動開始進行記憶體釋放。 此時就會被視為是負荷超載狀態。

針對可用記憶體總量的估算,洋蔥路由程式會以啟動時MaxMemInQueues的設定值為準,如果此值未被設定的話,那它就會針對主機裡的總記憶體量以下列演算法來求算出來:

    if RAM >= 8GB {
      memory = RAM * 40%
    } else {
      memory = RAM * 75%
    }
    /* Capped. */
    memory = min(memory, 8GB) -> [8GB on 64bit and 2GB on 32bit)
    /* Minimum value. */
    memory = max(250MB, memory)

要避免進入負荷超載的狀態,我們建議若是使用64位元的電腦架設中繼節點的話,那至少要安裝2GB的主記憶體。 如果能夠安裝到4GB當然是更好,當然,盡可能的加大記憶體是有利無害的。

您或許也會發現,Tor 的OOM訊號也有可能會被作業系統觸發。 因為 Tor 在啟動時,會以整個系統所擁有的記憶體總量去估算其可用量,而當系統中已經有執行許多佔用大量記憶體的程式時,它就會耗用掉過多的記憶體空間。 在這種情況下,即使洋蔥路由程式本身沒有偵測到記憶體不足的情況,作業系統也仍會呼叫並觸發洋蔥路由的OOM訊號。

tor_relay_load_socket_total

如果打開的 socket 端口數量接近或等於可用的總數,那麼這就表明,中繼 socket 端口快要用盡了。 解決方式就是增加洋蔥路由行程的ulimit -n設定值。

tor_relay_load_tcp_exhaustion_total

這幾行訊息代表中繼節點已經耗盡TCP連接埠。

請嘗試依照上述方法調整sysctl設定值。

tor_relay_load_global_rate_limit_reached_total

若發現此計數器的數值在短時間內爆增的話,就表示該中繼節點發生擁塞了。 有可能是因為它被某個洋蔥服務站台用作護衛節點,或者是遭受到網路上的分散式阻斷服務攻擊。

若您的中繼節點一直處於負荷超載狀態,且又無法查明原因的話,請聯繫network-report@torproject.org。 您可以利用network-report的OpenPGP金鑰來將郵件加密。

  • 請勿使用Ubuntu的套件庫中所提供的軟體套件,因為這些套件不會被定期更新,如果您使用它們的話,將會缺少重要的穩定性和安全性修補。
  • 可透過下列指令來確定您的Ubuntu系統版本:
     ‪$ lsb_release -c
    
  • 使用root權限將下列幾行資訊寫入/etc/apt/sources.list中,並記得將「version」替換成您在上一步驟中查到的版本:
     deb https://deb.torproject.org/torproject.org version main
     deb-src https://deb.torproject.org/torproject.org version main
    
  • 透過執行下來指令來加入簽署該套件數位簽章的gpg金鑰:
     ‪$ curl https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | sudo apt-key add -
    
  • 執行以下指令來安裝洋蔥路由並驗證其數位簽章:
     ‪$ sudo apt-get update
     ‪$ sudo apt-get install tor deb.torproject.org-keyring
    

升級 Tor 中繼或將其移至另一台電腦時,請務必保留相同的身份金鑰 (儲存在 keys/ed25519_master_id_secret_key and keys/secret_id_key 在你的資料目錄中).

If you are a bridge operator, also make sure to keep pt_state/. It contains data required for your bridge to keep working with the same bridge line.

For simplicity, just copying over the entire DataDirectory should work too.

You may wish to keep backups of these identity keys, plus pt_state for a bridge, so you can restore the relay if something goes wrong.

目前洋蔥路由已可以部份支援IPv6,我們也鼓勵中繼節點的架設者,若您所使用的網路環境支援IPv6的話,可以在torrc設定檔裡啟用IPv6功能。 然而以現階段而言,洋蔥路由的中繼節點仍然必須要使用IPv4位址,還沒辦法完全只用IPv6來架設洋蔥路由中繼節點。

如果您的洋蔥路由中繼節點使用的記憶體超過您的預期,可以嘗試以下方式來降低該使用率:

  • 如果您是使用Linux系統的話,有可能是遭遇到了在Glibc的malloc函式裡的記憶體碎裂臭蟲。 也就是說,當洋蔥路由程式將記憶體釋放回作業系統後,出現破碎的記憶體空間,故難以被再度利用。 目前 Tor tarball套件包裡有預載 OpenBSD版本的 malloc 函式,此版本的函式較少發生記憶體碎裂的問題(但是代價就是中央處理器的使用率會比較高)。 您可以透過這個設定,來要求 Tor 程式使用此版本的malloc函式:./configure --enable-openbsd-malloc
  • 若您架設的是較高速的中繼節點的話,那就會有很多條TLS的連線同時開通,此時OpenSSL的內部緩衝區就會佔用掉大量的記憶體空間(每個網路接套約須38KB的空間)。 我們已有特別針對OpenSSL程式進行修補過,讓它會更積極的釋放出緩衝區記憶體空間。 若您把OpenSSL更新到1.0.0或更新的版本,洋蔥路由行程就會自動識別並且啟用該功能。
  • 如果您還是無法控制記憶體使用量的話,可以考慮調降中繼節點的額定頻寬。 對外廣播較低的可用頻寬值可以減少吸引到的使用者,進而就會降低中繼節點主機的負載量。 請參閱主頁的MaxAdvertisedBandwidth設定項目。

總而言之,高速的洋蔥路由中繼節點通常都會使用較多的主記憶體空間,因此它在運行狀態中佔用掉500-1000MB的記憶體空間是很常見的現象。

下方列出了預設會使用的幾個連接埠號,但是請注意,任何中繼節點架設者都可以藉由修改torrc設定檔或是程式碼來使用其他任何連接埠。 根據原始碼版本 src/or/policies.c (line 85line 1901) 從原始碼發布 release-0.4.6:

reject 0.0.0.0/8
reject 169.254.0.0/16
reject 127.0.0.0/8
reject 192.168.0.0/16
reject 10.0.0.0/8
reject 172.16.0.0/12

reject *:25
reject *:119
reject *:135-139
reject *:445
reject *:563
reject *:1214
reject *:4661-4666
reject *:6346-6429
reject *:6699
reject *:6881-6999
accept *:*

如果是新架設的中繼節點的話,請再等一段時間。 洋蔥路由軟體是依據頻寬主管機構廣播的資訊,再利用推估模式來決定要使用哪些中繼節點的,這些主管機構會去量測您的中繼節點的可容載量,然後才會漸漸的將流量導入您的中繼節點,直到它達到最佳負載量為止。 對於新架設的中繼節點生命週期,在這篇部落格貼文有較詳細的深入解說。 若您的中繼節點已經上線運行一段時間,但是仍然有問題的話,可以試著在洋蔥路由中繼節點的郵件通訊清單尋求協助。

對於 AccountingMax以及BandwidthRate這兩個參數的設定值,會同時被套用到洋蔥路由程式的客戶端以及中繼節點中。 因此當您在歷程記錄中看見如下的訊息時,表示您的洋蔥路由已經進入休眠模式,同時您也將無法繼續上網瀏覽網頁:

Bandwidth soft limit reached; commencing hibernation.
No new connections will be accepted

這個問題的解決方式是執行兩個獨立的洋蔥路由行程:一個給中繼節點使用,另一個給客戶端程式使用,並且讓它們有各自獨立的設定。 其中一種可行的作法(若您從中繼節點設定開始做起的話)如下:

  • 在洋蔥路由中繼節點的torrc設定檔中,把SocksPort的值設定為0。
  • 從torrc.sample再建立一個新的客戶端torrc設定檔,並且確定它沒有跟中繼節點共用同一個歷程記錄檔。 依照慣例可以把名稱分別取為torrc.client以及torrc.relay。
  • 編輯洋蔥路由客戶端程式以及中繼節點程式裡的設定腳本,在裡面加入-f /path/to/correct/torrc設定。
  • 在 Linux/BSD/MacOS X系統裡,將設定腳本改為Tor.client以及Tor.relay可以較容易將兩者的設定值分離開。

如果您的節點允許出口連線的話,那有些使用者透過您的中繼節點連上的網路服務,會建立回向連線以取得更多關於您的資訊。比如說,有些IRC伺服器會建立回向連線到您的identd連接埠以記錄哪個使用者已建立連線。(這種行為對它們來說其實沒有用,因為洋蔥路由並不會揭露這些資訊,但是它們的服務還是會嘗試。)還有一種可能的情況是,當使用者透過您的節點連上IRC伺服器或網站等標的時,可能會引起其他使用者的注意,它們會想了解更多該使用者所使用的路由資訊。

另一個可能的原因是,有些專門掃描尋找開放代理伺服器的人會發現,有些洋蔥路由中繼節點會將Socks連接埠暴露在網路上,我們建議您將您的Socks連接埠綁定限制於本地端網路。

不論無何,您都應該要隨時關注自身的安全,請參閱洋蔥路由中繼節點安全性以取得更多的相關建議。

我們希望的是能夠擁有相對穩定的網路連線品質,且其上行與下行的頻寬分別都至少有10 Mbit/s (Mbps)以上,若您擁有這樣的網路環境的話,請考慮架設洋蔥路由中繼節點

即使您的網路可用頻寬不到10 Mbit/s,也仍然可以架設支援Obfs4的洋蔥路由橋接中繼站來貢獻洋蔥路由網路,這種中繼節點只要有1 MBit/s以上的頻寬即可。

請參閱portforward.com以了解如何在NAT或路由器中設定連接埠轉送。

如果您是在內網區段架設中繼節點的話,那您就會需要設定連接埠轉送機制。 有關於TCP連線轉送在不同的系統上會有不同的作法,您可以參考身處防火牆內問答集裡的幾個範例。

另外,這裡也有個在GNU/Linux系統中使用iptables的設定範例:

/sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 9001 -j ACCEPT

如果您網路的介面不是「eth0」的話,這個值可能需要調整(連接外部網路的介面)。 大部分的情況下,您可能只有一個網路介面(除了loopback之外),因此這部份應該不至於太複雜。

很好,這就是為什麼我們會實作出口節點政策的功能。

每個洋蔥路由中繼節點都可以設定自己的出口政策規則,用來指定要接受或者拒絕什麼樣的外接連線。 這個出口政策規則會跟隨著目錄清冊一起被派送到每個洋蔥路由客戶端程式裡,因此客戶端程式在建立迴路時,會自動避免將不願意作為出口節點的中繼節點串接在迴路末端。 因此每個中繼節點的架設者都能夠依據自身的狀況進行評估,以便決定自己的主機要允許什麼樣的連線服務以及連接上什麼樣的主機。 若您要使用預設的出口節點政策的話,請參閱可能遭遇的問題,並且也建議您參閱由Mike Perry撰寫的將架設出口節點所可能遭遇的騷擾最小化

預設的出口節點政策會允許通往大多數熱門的網路服務的連線(例如普通網頁瀏覽),但是會限制某些可能被濫用的情況(例如電子郵件),或者是可能會讓洋蔥路由網路超載的連線(例如封鎖檔案分享協定的預設埠號)。 您可以透過編輯 torrc 檔案來變更出口策略。 如果您想要盡可能的避免被濫用的機會,可以將它設定為「reject *:*」。 這個設定值的意思是,您的中繼節點只會被用來轉送洋蔥路由網路內的連線,不會被用來轉接至外部的普通網站或網路服務。

如果您想要允許通往外部的網路連線的話,請確定您主機的域名解析功能正常(亦即可以正常轉譯網路位址)。 如果有某些網路資源是您的主機無法連接上的(例如您所在的網路防火牆會過濾阻擋),那麻煩請在您的出口節點政策裡,將它明確標注為拒絕,否則洋蔥路由的使用者將會連帶受到影響。

Onion 服務

洋蔥服務讓人們能夠匿名的瀏覽和發佈訊息,這也包括發佈一個匿名的網站。

許多像是無中繼資料的聊天室系統或檔案共享網路也都會仰賴洋蔥服務,像是SecureDropOnionShare等軟體,可提供記者以較安全的溝通互動管道與線民交換資訊,同時也提供許多像是臉書等較大眾化的網站一個較安全的連線方式。

這些服務都會使用.onion這種特殊的頂級域名(TLD)(而不會使用像是.com、.net或.org等),它們也只能夠透過洋蔥路由網路來存取。

洋蔥圖示

當您存取洋蔥服務的網站時,洋蔥路由瀏覽器的網址列會出現一個洋蔥圖示,用以表示您與該網站是透過洋蔥服務通道的安全連線。

如果需要了解更多洋蔥服務,請閱讀洋蔥服務如何工作

Onion-Location is a HTTP header that web sites can use to advertise their onion counterpart. 如果您造訪的網站有提供洋蔥服務通道的話,在其網址列上會出現一個「.onion可用」的紫色膠囊圖示。 當您點擊該「.onion可用」圖示後,瀏覽器就會透過其洋蔥服務通道重新載入網頁。 目前Onion-Location在電腦版的洋蔥路由瀏覽器裡已可使用(Windows、MacOS與GNU/Linux)。 您可以參閱洋蔥路由瀏覽器使用者手冊以了解更多關於Onion-Location的相關資訊。 若您是洋蔥服務站台的管理員,可以參閱我們洋蔥站台上的如何設定Onion-Location以了解更多資訊。

我要如何知道我所使用的是v2版還是v3版的洋蔥服務?

要識別v3版的洋蔥位址很容易,因為它會有56個字元長度,例如洋蔥路由專案計畫網站的v2位址是http://expyuzz4wqqyqhjn.onion/,而其v3的位址則是http://2gzyxa5ihm7nsggfxnu52rck2vv4rvmdlkiu3zzui5du4xyclen53wid.onion/

如果您是洋蔥服務站台的管理員,那請您盡速將它升級至v3版的洋蔥服務。 若您是普通使用者,那請您確認瀏覽器裡的書籤所記錄的網站,是否都已更新成v3版洋蔥位址。

針對v2版廢棄的規劃時程為何?

從2020年九月份開始,洋蔥路由就開始針對洋蔥服務管理員以及使用者,發出v2版即將從0.4.6版軟體釋出後被棄用的警告。 洋蔥路由瀏覽器則從2021年六月就開始警告使用者。

從洋蔥路由軟體第0.4.6版於2021年七月發佈開始,針對v2版的支援就會被完全移除。

在2021年十月,我們會針對所有的相關軟體發佈新版洋蔥路由客戶端程式,屆時就會全面停用v2版洋蔥位址。

您可以參閱洋蔥路由專案計畫的部落格上這篇有關v2版洋蔥服務廢棄時程規劃,以取得更多相關資訊。

我還能繼續使用v2版洋蔥位址嗎?在九月以後我還能存取我的v2版洋蔥服務嗎?這個更新會是向下相容的嗎?

V2版的洋蔥位址設計本身並不安全,若您還有v2版的洋蔥服務,我們建議您盡速升級。 這個變更不會向下相容:v2版洋蔥服務從2021年九月起就會完全無法使用。

對於開發者有什麼升級建議?有沒有什麼廣播v3版位址給民眾的方式?

要建立一個v3版位址的方式,只要在torrc設定檔裡加入這兩行設定,然後直接用之前建立v2版服務的方式重建即可:

HiddenServiceDir /full/path/to/your/new/v3/directory/
HiddenServicePort <virtual port> <target-address>:<target-port>

預設的版本就會是第3版,因此您不須特別指明。 重新啟動洋蔥路由,並在您的目錄中尋找新位址。 若您希望讓v2版服務繼續並行到規劃的廢棄時間點,以便讓訪客有機會可以移轉到新位址的話,請將這行設定加入v2版服務的設定區塊中:

HiddenServiceVersion 2

這樣您就可以在設定檔中,輕易辨識出哪個設定是屬於哪個版本。

若在您的網站上有設定Onion-Location的話,那您就需要將該標頭設定成v3版的位址。 有關於架設洋蔥服務的技術文件,請參閱我們社群入口網的洋蔥服務頁面。

我之前沒注意到這個宣佈消息,可以給我多點時間升級嗎?

不行,v2版洋蔥服務的連線現在已經開始漸漸無法使用,剛開始是漸進式的,之後就會全面失效。

相關服務是會在九月才開始無法使用?還是在這之前?

已經開始了,現在洋蔥路由第0.4.6版已經不在引見節點裡包含這項功能了,因此那些還未升級的中繼節點都已經無法使用了。

我是網站的管理員,有沒有辦法把訪客從v2版洋蔥位址自動重導到v3版位址嗎?

可以的,這個方法直到v2版洋蔥位址全面棄用前都還可以用。 同時您也應該要鼓勵訪客更新它們的書籤。

v3版洋蔥服務可以抵禦分散式阻斷服務攻擊嗎?

可以,我們一直持續在對洋蔥服務的安全性防護強化。 部份的工作時程規劃可以參考ESTABLISH_INTRO Cell DoS Defense ExtensionRes tokens: Anonymous Credentials for Onion Service DoS Resilience以及A First Take at PoW Over Introduction Circuits。 也可以參閱我們部落格上有關如何抵禦洋蔥服務的阻斷式攻擊的貼文,以了解這幾篇提案書的內容概覽。

若您無法連上某個洋蔥服務時,請先確認有將56個字元長度的洋蔥位址完全正確輸入,即使是細微的筆誤都會讓洋蔥路由瀏覽器對該站臺的連線失敗。 如果您仍然無法連線到洋蔥服務,請稍後再試。 有可能是暫時的網路連線問題,或者該網站的管理員在無預警的情況下暫時關閉網站。

您也可以試著連接到DuckDuckGo的洋蔥服務來確認您是否能夠連上其他洋蔥服務站台。

所謂的認證洋蔥服務是洋蔥服務的一種,它會需要您先提供認證權杖(這裡會是一把私密金鑰)才允許存取其服務。 這把私密金鑰並不會被傳送到該服務主機中,而是會在本地電腦裡用於解密該服務的描述子。 您通常需要直接聯繫該洋蔥服務的管理員,才能取得該服務的存取授權。 請參閱如何在洋蔥路由瀏覽器中使用洋蔥認證以了解更多資訊。 If you want to create an onion service with client authentication, please see the Client Authorization section in the Community portal.

當您連上洋蔥服務時,洋蔥路由瀏覽器會在其網址列顯示幾種不同的洋蔥圖示,用來表示目前與該站台連線的安全程度。

Image of an onion 一個洋蔥代表的意思:

  • 該洋蔥服務正透過HTTP或者有憑證中心簽發憑證的HTTPS協定連線。
  • 該洋蔥服務正透過自簽憑證的HTTPS協定連線。

Image of an onion with a red slash 一個有紅色刪除線的洋蔥圖示代表的意思:

  • 該洋蔥服務有透過不安全的網址載入腳本程式。

Image of an onion with a caution sign 一個帶有警告標示的洋蔥圖示代表的意思:

  • 該洋蔥服務正透過已過期的憑證所建立的HTTPS協定連線。
  • 該洋蔥服務正使用錯誤的域名憑證所建立的HTTPS協定連線。
  • 該洋蔥服務使用混合了不安全網址的連線。

僅可透過洋蔥路由來連線的網站被統稱為「洋蔥」站台,它們的網址都會是以「.onion」結尾。 舉例來說,像是DuckDuckGo搜尋引擎的洋蔥站台位址是https://duckduckgogg42xjoc72x3sjasowoarfbgcmvfimaftt6twagswzczad.onion/。 您可以使用洋蔥路由瀏覽器連線到這些網站。 這些網址必須透過網站服務供應商分享給您,因為洋蔥站台不像一般的網站那樣被搜尋引擎自動發現並列入索引。

其他

要透過洋蔥路由分享檔案,目前OnionShare是個不錯的選擇。 OnionShare是一個開源的軟體工具,可以讓您透過洋蔥服務以匿名的方式來傳送與接收檔案。 它的原理是在直接您的電腦中啟動一個網頁伺服器,並且自行生成一個無法被輕易猜中的洋蔥路由位址,其他人只要利用洋蔥路由瀏覽器並輸入該位址,就可以與您的電腦建立連線,進而下載或上傳檔案。 完全不需要自行架設獨立的伺服器或使用第三方檔案共享服務,也不需要任何登入帳號。

與一般常見的電子郵件、Google Drive、DropBox、WeTransfer或其他大眾化的檔案分享工具不同的是,當您使用OnionShare時,沒有任何公司企業或組織能夠存取您所分享的檔案。 您只要透過安全的方式(像是加密的即時通訊軟體)來告知對方您的洋蔥位址,就可以確保除了您與對方之外,沒有任何第三人能夠存取您分享的檔案。

OnionShare是由Micah Lee所開發維護的軟體。

很多出口節點的設定會阻擋特定種類的檔案分享連線,例如位元洪流。 位元洪流本身就無法以匿名方式使用洋蔥路由

不,我們不提供任何線上服務。 在我們的計畫清單中,您可以看到目前所有由我們主導的軟體開發專案。

謝謝您的支持! 您可以在我們的捐款問答集找到更多關於贊助的相關資訊。

洋蔥路由的設計是用於捍衛使用者的隱私與人權的工具,它可以防止包括我們自己在內的任何人,對使用者進行網路審查過濾。 儘管說我們也很厭惡使用洋蔥路由來做可怕事情的人,但是我們無法在不犧牲人權團體、新聞記者、受害者或任何立意良善的洋蔥路由使用者的安全保護機制下,將那些惡意使用者拒於門外。 如果我們要阻擋特定人士使用洋蔥路由的話,基本上必須在軟體中加入後門程式,但這也將使弱勢的使用者們更容易受到意圖不軌的政權及其他惡意者的攻擊。

洋蔥路由開發人員無法追蹤鎖定任何洋蔥路由的使用者。 用來避免惡意人士破壞洋蔥路由匿名保護的機制,同時也阻止了我們去追蹤使用者。

每個人現在都可以做以下幾件事:

  1. 考慮架設一個中繼來幫助 Tor 網路發展。
  2. 告訴朋友!讓他們運行中繼。讓他們運行洋蔥服務。讓他們再告訴他們的朋友。
  3. 如果贊同 Tor 的目標,請花點時間作捐贈 以支持 Tor 進一步發展。 我們也在尋找更多的贊助商,如果你知道任何需要匿名/隱私/通訊安全的公司、NGO、其他機構或組織,請介紹我們給他們。
  4. 我們正在尋找更多的 Tor 用戶優秀案例和 Tor 使用案例。 如果你使用 Tor 的場景或目的沒有在該頁面上,並且願意與我們分享,我們樂意聽取你的反饋。

文檔

  1. 幫助將文檔本地化 為其他語言。 如果想幫忙,請參閱成為 Tor 翻譯者。 為了受審查地區的眾多 Tor 用戶,我們特別需要阿拉伯語或者波斯語的翻譯。

倡議

  1. Tor 社區使用 Tor 論壇IRC/Matrix公共郵件列表
  2. 為世界各地用戶的小組會議,創建一個演示簡報。
  3. 圍繞某個主題,創建一個海報,比如“Tor 為人權!” 。
  4. 在研討會或會議上傳播 Tor 的信息,並使用 Tor 宣傳冊開啟對話。

即使您的應用程式所使用的是正確的SOCKS協定版本,仍然有一定的風險會洩漏DNS請求。 這個問題會發生於當火狐狸瀏覽器的擴充元件試圖自行解析域名的時候,例如要用來顯示IP位址或者該位址所在的國家等。 如果您懷疑您所使用的應用程式可能有這樣的問題,請依照下列指引來進一步確認。

  1. 在您的torrc設定檔裡加入TestSocks 1項目。
  2. 啟動洋蔥路由,並把您的應用程式的SOCKS代理伺服器設定指向洋蔥路由的SOCKS5伺服器(預設是socks5://127.0.0.1:9050)。
  3. 在您使用應用程式的同時,仔細監視您的歷程記錄資訊,對於每一個socks的連線,洋蔥路由都會對安全連線注記notice,而對於有DNS請求洩漏的連線注記warn

如果您希望自動停用掉所有會洩漏DNS請求的連線,請在torrc設定檔中設定SafeSocks 1項目。

Vidalia 已經不提供維護或支援。 Vidalia 所提供的大部分功能,都已經被整合到洋蔥路由瀏覽器中了。

基於底下幾個原因,我們並不會採取這種作法:

  1. 因為洋蔥路由客戶端程式必須要有這些資訊才能夠建立迴路,因此我們不得不將這些資訊揭露出來。 因此如果「封鎖者」真心想要封鎖的話,他們絕對能夠取得這些資訊。 況且,即使我們完全不揭露中繼位址清單給客戶端程式,惡意人士仍然能夠藉由發起大量的洋蔥路由連線來收集這些位址。
  2. 如果有人真的想要封鎖,我們相信他們也有權利這樣做。 雖然我們期望大家都能接受洋蔥路由使用者的連線,但是人們依然有權利決定誰有資格存取他們的服務,所以假若他們真的想要封鎖匿名訪客的話,他們還是可以做的到。
  3. 讓我們的網路能夠被封鎖也會有策略性的優勢:對於那些認為洋蔥路由是威脅的網站管理員來說,是一個相當有說服力的回應。 給他們有是否要封鎖的選擇能夠激發他們去認真思考,自己的網路服務是不是真的需要完全禁止以私密的方式存取的使用者,如果不是的話,是否還有其他可行的作法。 與其要投注時間與心力去封鎖洋蔥路由,或許他們會回頭重新思考與檢視對於隱私與匿名的處理策略。

Tor 專案計畫仰賴著世界各地的使用者與志願者的各種貢獻,來提升我們的軟體與相關資源,因此您的回饋對我們以及所有 Tor 的使用者而言極為珍貴。

意見回饋格式

當您要提供回饋建議或是通報臭蟲時,請盡可能的包含下列資訊:

  • 您所使用的作業系統
  • 洋蔥路由瀏覽器的版本
  • 洋蔥路由瀏覽器的安全性等級設定
  • 重現該錯誤的步驟說明,以利我們查找(例如:開啟瀏覽器後,輸入了網址,點擊了(i)圖示,然後瀏覽器就當掉了)
  • 問題的螢幕截圖
  • 歷程記錄

如何聯絡我們

有幾種不同的方式可以跟我們取得聯繫,您可以任意選擇您所喜歡的方式。

洋蔥路由論壇

We recommend asking for help on the Tor Forum. 您需要先建立帳號才能發文。 Before you ask, please review our discussion guidelines. 您如果希望有人能快速回覆您的問題,請以英文撰寫。 如果您發現臭蟲的話,請利用GitLab提報。

GitLab

首先,請先確認該軟體問題是否已被提報。 您可以在https://gitlab.torproject.org/上搜尋瀏覽所有已知的問題。 若要提報一個新的問題,請先索取一個新帳號以便存取 Tor Project 的 GitLab 服務,並在正確的套件庫裡通報您的錯誤。 我們都在 Tor 瀏覽器問題追蹤器上,追蹤所有跟 Tor 瀏覽器有關的問題。 若是有關於我們網站上的錯誤,請通報到網頁問題追蹤器分類裡。

Telegram

如果需要幫助安裝 Tor 瀏覽器或排查故障,並且所在地屏蔽或審查 Tor 論壇,可以通過 Telegram https://t.me/TorProjectSupportBot與我們聯繫。 Tor 支持專員將協助你。

WhatsApp

可利用 WhatsApp 發送文字訊息給我們 : +447421000612. 本服務僅限文字訊息,不支援語音通話與視訊。

Signal

可利用 Signal 發送文字訊息到 : +17787431312. Signal 是一款免費又關注隱私的手機通訊應用。 本服務僅限文字訊息,不支援語音通話與視訊。 發送訊息之後,支援客服會指引進行故障排除解決問題。

電子郵件

發送電子郵件到 frontdesk@torproject.org

請在郵件的主旨敘明要通報的問題。 郵件主旨寫得清楚明確的話(例如:連線失敗、網站意見回饋、Tor 瀏覽器意見回饋、請求橋接中繼站),那我們可以更容易了解和追蹤。 有時候沒有主旨的電子郵件會被標記為垃圾郵件,那就會被我們完全忽視。

為了能夠更快速的回覆您,麻煩請儘量以英文、西班牙文或葡萄牙文撰寫。 如果這幾種語言您都不熟悉的話,也請您直接以自己的語言來撰寫,但是這樣我們會需要較長的時間才能夠回覆您,因為我們會需要尋求翻譯協助才能理解您的問題。

部落格貼文的留言

您可以在與您所遭遇的問題有關的部落格貼文裡留言。 如果在部落格上沒有與您的問題有關的貼文,請用其他方式與我們聯繫。

IRC

您可以在OFTC上的#tor頻道中提報意見回饋或任何臭蟲/問題。 我們可能不會立即回覆您,但我們都會回頭檢閱聊天記錄,也會盡快跟您聯繫。

了解如何連上OFTC伺服器

郵件清單

若要利用郵件清單來通報錯誤或回饋意見的話,我們建議您提報至與您想通報的主題最接近的郵件清單,您可以在這裡找到我們目前的所有郵件清單列表。

通報與我們的網站有關的問題或意見:ux

通報與洋蔥路由中繼節點有關的問題或意見:tor-relays

通報安全性問題

如果發現安全問題,請發郵件至 security@torproject.org。

如果需要對郵件加密,可以從這個地址keys.openpgp.org獲得 OpenPGP 的公鑰。以下是當前的指紋:

  pub   rsa3072/0x3EF9EF996604DE41 2022-11-15 [SC] [expires: 2024-12-11]
      Key fingerprint = 835B 4E04 F6F7 4211 04C4  751A 3EF9 EF99 6604 DE41
  uid Tor Security Contact <security@torproject.org>
  sub   rsa3072/0xF59EF1669B798C36 2022-11-15 [E] [expires: 2024-12-11]
      Key fingerprint = A16B 0707 8A47 E0E1 E5B2  8879 F59E F166 9B79 8C36

如果要參加漏洞賞金計劃,請注意,向第三方網站報告安全問題會帶來我們無法控制的風險,所以請直接向我們報告。

很遺憾,您到電腦已經被惡意程式感染了。 洋蔥路由專案並沒有開發任何惡意程式,惡意程式的開發者要求您下載洋蔥路由瀏覽器的目的,是希望您透過匿名的方式與他們聯繫以交付贖金。

如果這是您第一次接觸到洋蔥路由瀏覽器的話,我們理解您可能會認為我們是惡意人士,而且是我們在協助更糟糕的惡意人士。

但請您試想一下,我們的軟體每天也被無數的人權行動者、新聞工作者、家庭暴力倖存者、告密者、執法人員以及許多其他人,用於各種不同目的上。不幸的是,我們的軟體為人們提供的保護的同時,也有可能被濫用來保護犯罪分子和惡意程式開發者。 洋蔥路由專案不支持也不會縱容任何出於惡意來使用我們軟體的人。

洋蔥路由專案有獲得許多不同組織的贊助,其中包括美國聯邦政府機構,私人基金會和個人贊助者。 請查看全部贊助者清單和財務報告的部落格帖子

我們認為公開我們的贊助者和募款模式,是維繫我們社群間相互信任的最佳方式。 我們一直在尋找更多元的贊助來源,尤其是來自於基金會和個人的贊助。

洋蔥路由不會保留任何可以用來識別特定使用者的歷程記錄。 我們有針對網路的運作方式採取一切安全保護措施,詳情請參閱 Tor Metrics

目前路徑的長度寫死為 3,再加上您的路徑上機密的節點數量。 也就是說,在正常情況迴路會由三個中繼節點構成,但是如果您造訪的的是洋蔥服務網站或「 .exit」位址的話,那節點數量可能會更多。

我們不鼓勵使用者改用更長的路徑,因為這只會增加網絡負載量(據我們所知),但卻不會提供更高的安全性。 此外,使用大於3個節點的路徑反而會對於匿名性保護造成反效果,因為這樣會讓安全性阻斷攻擊更容易發動,並且也會讓您的網路連線活動顯然與其他人不同,進而導致更容易被識別發現。

沒有,在發佈了第11版的Beta版本之後,我們就不再支援 Tor Messenger了。 我們仍然相信洋蔥路由是可以被用在即時通訊軟體中的,只不過我們目前沒有足夠的資源來實現。 您能協助嗎? 聯繫我們

關於 文件 媒體評論 任務 部落格 電子報 聯絡 捐助 支援 社群 常見問題 關於洋蔥路由 Tor 瀏覽器 Tor Messenger 行動版洋蔥路由 GetTor 正在建立洋蔥路由連接 網路審查過濾 HTTPS 營運者 Onion 服務 Debian系統套件庫 RPM套件庫 其他的設計 little-t-tor 其他 有關於問答集 保持聯繫

保持聯繫

在#tor-project頻道中的人會比#tor頻道還要少,它通常是用於溝通協調與他們有直接關聯的日常工作事務用的,您當然也歡迎加入,但若要加入#tor-project頻道的話,您必須先將您所使用的暱稱註冊並且通過驗證。

以下是如何加入#tor-project或其他須註冊頻道的方式。

註冊您的暱稱

  1. 登入#tor頻道。參閱如何與洋蔥路由專案團隊對話?

  2. 點擊畫面左上方的狀態功能。

  3. 在頁面底部的視窗裡輸入:/msg nickserv REGISTER 您的密碼 您的電子郵件

  4. 按下enter鍵。

如果一切順利的話,您會收到一則註冊成功的訊息。

系統有可能會將您註冊為您的暱稱_,而不是只有暱稱。

若是如此,請記得您的名稱後都要加底線。

每次登入到IRC聊天室後,都可用以下指令來認證您所註冊的暱稱:

/nick 暱稱

/msg nickserv IDENTIFY 您的密碼

如何驗證您的暱稱

在完成暱稱的註冊後,必須還要通過驗證才能夠存取#tor-project以及其他受保護的頻道。

  1. 前往 https://services.oftc.net/ 並依照「驗證帳號」章節的步驟指示進行

  2. 回到您剛登入的IRC頁面並輸入下列指令:

    /msg nickserv checkverify

  3. 按下ENTER鍵。

  4. 若一切順利的話,您會收到如下的訊息:

*!NickServ*checkverify

Usermodechange: +R

!NickServ- Successfully set +R on your nick.

您的暱稱已通過驗證!

現在要加入#tor-project頻道的話,可以輸入:

/join #tor-project然後按ENTER鍵。

此時您就會被允許進入該頻到了,恭喜!

然而,如果您在這個過程中的某個步驟卡住的話,可以在#tor頻道尋求協助。

您可以藉由點擊IRC視窗左上方的頻道名稱,在各個不同的頻道間來回切換。

長久以來,洋蔥路由社群都是透過名為OFTC的IRC聊天網路來進行每日活動。 IRC聊天網路向來很能滿足我們的需求,而且我們社群也因為多年來的新人不斷加入而擴增而使IRC空間不斷發展,包括更多針對組織內特定議題而建立的新頻道不停誕生。

與Matrix橋接

Tor 社群正在透過將我們的 IRC 社群與 Matrix 網路連接起來來開放其日常對話。 對於普的通洋蔥路由使用者來說,這意味著您可以利用像是Element這種使用者介面較友善的應用程式與我們聊天。 #tor:matrix.org和我們的IRC裡的#tor頻道是相通的,不論您選擇使用哪個平臺,您所發送的訊息都會同時出現在這兩個平臺上。

若想要加入Matrix上的洋蔥路由貢獻者對話群,您會需要一個Matrix的帳號,目前有幾個提供者可以開通給您。 其中一個就是Matrix.org基金會,該站臺有提供註冊免費帳號的功能。 您也可以在app.element.io上註冊新帳號。

當您取得Matrix帳號之後,就可以加入在Matrix空間裡的洋蔥路由社群來瀏覽各個洋蔥路由的房間,或者也可以直接加入 #tor:matrix.org user support房間。

OFTC的IRC網路

另外,如果想用 IRC,可以使用 OFTC 的網絡 IRC 客戶端:

  1. 打開OFTC webchat

  2. 填寫下列幾個欄位資料:

    暱稱: 任何您想使用的名稱,但是請您每次與我們團隊成員對談時,都固定使用相同的暱稱。 若您想用的暱稱已經被使用了,系統會出現訊息告知您需要選用另一個名稱。

    頻道: #tor

  3. 點擊確定

恭喜!您已經上IRC了。

在幾秒鐘之後,您就會自動進入#tor聊天頻道,可以直接與洋蔥路由開發者、中繼節點維運者以及其他的社群成員直接對話,在我們的#tor頻道中也會有其他類型的人員在場。

您可以從下方的空白欄位發問,但是麻煩請不要事先請示可否發問,有問題就直接說出來即可。

聊天室中的人可以即時回覆您的問題,或者有時候可能會需要過一段時間才有人回覆(因為有些人會在聊天室中掛網,等稍晚有空檔時才回頭閱讀聊天記錄)。

如果您是希望與聊天室中的某個特定的人對談,請在您要說的話最前面加上他的暱稱,這樣他就會收到特別的通知提示。

由於OFTC通常不允許使用者透過洋蔥路由來登入,且大部分的人也都希望如此,所以您或許會需要使用IRC專屬聊天軟體來加入。

Tor 專案計畫仰賴著世界各地的使用者與志願者的各種貢獻,來提升我們的軟體與相關資源,因此您的回饋對我們以及所有 Tor 的使用者而言極為珍貴。

意見回饋格式

當您要提供回饋建議或是通報臭蟲時,請盡可能的包含下列資訊:

  • 您所使用的作業系統
  • 洋蔥路由瀏覽器的版本
  • 洋蔥路由瀏覽器的安全性等級設定
  • 重現該錯誤的步驟說明,以利我們查找(例如:開啟瀏覽器後,輸入了網址,點擊了(i)圖示,然後瀏覽器就當掉了)
  • 問題的螢幕截圖
  • 歷程記錄

如何聯絡我們

有幾種不同的方式可以跟我們取得聯繫,您可以任意選擇您所喜歡的方式。

洋蔥路由論壇

We recommend asking for help on the Tor Forum. 您需要先建立帳號才能發文。 Before you ask, please review our discussion guidelines. 您如果希望有人能快速回覆您的問題,請以英文撰寫。 如果您發現臭蟲的話,請利用GitLab提報。

GitLab

首先,請先確認該軟體問題是否已被提報。 您可以在https://gitlab.torproject.org/上搜尋瀏覽所有已知的問題。 若要提報一個新的問題,請先索取一個新帳號以便存取 Tor Project 的 GitLab 服務,並在正確的套件庫裡通報您的錯誤。 我們都在 Tor 瀏覽器問題追蹤器上,追蹤所有跟 Tor 瀏覽器有關的問題。 若是有關於我們網站上的錯誤,請通報到網頁問題追蹤器分類裡。

Telegram

如果需要幫助安裝 Tor 瀏覽器或排查故障,並且所在地屏蔽或審查 Tor 論壇,可以通過 Telegram https://t.me/TorProjectSupportBot與我們聯繫。 Tor 支持專員將協助你。

WhatsApp

可利用 WhatsApp 發送文字訊息給我們 : +447421000612. 本服務僅限文字訊息,不支援語音通話與視訊。

Signal

可利用 Signal 發送文字訊息到 : +17787431312. Signal 是一款免費又關注隱私的手機通訊應用。 本服務僅限文字訊息,不支援語音通話與視訊。 發送訊息之後,支援客服會指引進行故障排除解決問題。

電子郵件

發送電子郵件到 frontdesk@torproject.org

請在郵件的主旨敘明要通報的問題。 郵件主旨寫得清楚明確的話(例如:連線失敗、網站意見回饋、Tor 瀏覽器意見回饋、請求橋接中繼站),那我們可以更容易了解和追蹤。 有時候沒有主旨的電子郵件會被標記為垃圾郵件,那就會被我們完全忽視。

為了能夠更快速的回覆您,麻煩請儘量以英文、西班牙文或葡萄牙文撰寫。 如果這幾種語言您都不熟悉的話,也請您直接以自己的語言來撰寫,但是這樣我們會需要較長的時間才能夠回覆您,因為我們會需要尋求翻譯協助才能理解您的問題。

部落格貼文的留言

您可以在與您所遭遇的問題有關的部落格貼文裡留言。 如果在部落格上沒有與您的問題有關的貼文,請用其他方式與我們聯繫。

IRC

您可以在OFTC上的#tor頻道中提報意見回饋或任何臭蟲/問題。 我們可能不會立即回覆您,但我們都會回頭檢閱聊天記錄,也會盡快跟您聯繫。

了解如何連上OFTC伺服器

郵件清單

若要利用郵件清單來通報錯誤或回饋意見的話,我們建議您提報至與您想通報的主題最接近的郵件清單,您可以在這裡找到我們目前的所有郵件清單列表。

通報與我們的網站有關的問題或意見:ux

通報與洋蔥路由中繼節點有關的問題或意見:tor-relays

通報安全性問題

如果發現安全問題,請發郵件至 security@torproject.org。

如果需要對郵件加密,可以從這個地址keys.openpgp.org獲得 OpenPGP 的公鑰。以下是當前的指紋:

  pub   rsa3072/0x3EF9EF996604DE41 2022-11-15 [SC] [expires: 2024-12-11]
      Key fingerprint = 835B 4E04 F6F7 4211 04C4  751A 3EF9 EF99 6604 DE41
  uid Tor Security Contact <security@torproject.org>
  sub   rsa3072/0xF59EF1669B798C36 2022-11-15 [E] [expires: 2024-12-11]
      Key fingerprint = A16B 0707 8A47 E0E1 E5B2  8879 F59E F166 9B79 8C36

如果要參加漏洞賞金計劃,請注意,向第三方網站報告安全問題會帶來我們無法控制的風險,所以請直接向我們報告。

Debian系統套件庫

洋蔥路由專案計畫有維護自己的Debian套件庫,雖然Debian官方有提供長期支援版的洋蔥路由,但是它可能不是最新的穩定版本,因此還是建議您從我們的套件庫來安裝tor軟體。

以下方式可以讓您在Debian以及其衍伸版本系統中,啟用洋蔥路由的官方套件庫:

注意: 符號 # 表示以 root 身分執行程式碼。 這意味著您應該有權存取具有系統管理權限的使用者帳戶,即您的使用者應該位於 sudo 群組中。

先決條件:確認您的中央處理器架構

該軟體套件庫提供 amd64arm64i386 二進製文件。通過檢查以下命令的輸出,確認你的作業系統能夠運行該二進製文件:

  # dpkg --print-architecture

指令的輸出結果應該會是amd64arm64或是i386三者的其中之一,目前套件庫並不支援其他架構的中央處理器。

注意: 該軟體套件庫不提供 32 位 ARM 架構(armhf) 的鏡像(目前還沒有)。應該安裝 Debian 提供的版本(確保查看 Debian backports,因為該版本通常有很多較新的 Tor 軟體套件),或者從源代碼生成 Tor

1. 安裝apt-transport-https套件

啟用libapt-pkg的二進位檔案,以便讓所有的套件管理程式都能透過HTTPS(安全的超文件傳輸協定)存取中繼資料以及原始碼形式的套件。

   # apt install apt-transport-https

2. 在/etc/apt/sources.list.d/目錄中建立一個新檔案,將它命名為tor.list,並在其內容寫入下列設定值:

   deb     [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org <DISTRIBUTION> main
   deb-src [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org <DISTRIBUTION> main

如果想嘗試 experimental 軟體套件,請在上面幾行另外添加:

   deb     [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org tor-experimental-<DISTRIBUTION> main
   deb-src [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org tor-experimental-<DISTRIBUTION> main

或者是nightly build版本:

   deb     [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org tor-nightly-main-<DISTRIBUTION> main
   deb-src [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org tor-nightly-main-<DISTRIBUTION> main

請將<DISTRIBUTION>置換成您的作業系統版本代碼,可以執行lsb_release -c或者是cat /etc/debian_version指令來查詢作業系統版本。

注意: Ubuntu Focal系統已經停止32位元版本的支援,因此必須要用以下設定:

   deb     [arch=<ARCHITECTURE> signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org focal main
   deb-src [arch=<ARCHITECTURE> signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org focal main

<ARCHITECTURE>替換為你的系統架構(之前已用dpkg --print-architecture找到)。

當執行sudo apt update時會出現的警告訊息:

   Skipping acquire of configured file 'main/binary-i386/Packages' as repository 'http://deb.torproject.org/torproject.org focal InRelease' doesn't support architecture 'i386'

3. 在命令提示符號中執行以下指令,以匯入簽署套件的GPG金鑰:

   # wget -qO- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --dearmor | tee /usr/share/keyrings/tor-archive-keyring.gpg >/dev/null

4. 安裝洋蔥路由以及Debian的鑰匙圈

我們有透過一個Debian的套件來協助您取得我們目前使用的金鑰,所以建議您利用下列指令來安裝該套件:

   # apt update
   # apt install tor deb.torproject.org-keyring

不可以 千萬別使用Ubuntu官方universe套件庫裡的版本。 過去該軟體並沒有被即時更新,這意味著該版本可能會缺乏穩定性以及安全性修補。 請使用洋蔥路由的Debian套件庫

可以的,我們的deb.torproject.org也有同時提供洋蔥服務:http://apow7mjfryruh65chtdydfmqfpj5btws7nbocgtaovhvezgccyjazpqd.onion/

注意: 符號 # 表示以 root 身分執行程式碼。 這意味著您應該有權存取具有系統管理權限的使用者帳戶,即您的使用者應該位於 sudo 群組中。

要透過洋蔥路由使用APT的話,必須要先安裝APT Transport套件:

   # apt install apt-transport-tor

然後您必須要在/etc/apt/sources.list設定檔中加入下列幾行設定,或者是將它們寫入另一個位於/etc/apt/sources.list.d/中的新檔案亦可:

   # 使用穩定版本。
   deb [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] tor://apow7mjfryruh65chtdydfmqfpj5btws7nbocgtaovhvezgccyjazpqd.onion/torproject.org <DISTRIBUTION> main

   # 使用不穩定版本。
   deb [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] tor://apow7mjfryruh65chtdydfmqfpj5btws7nbocgtaovhvezgccyjazpqd.onion/torproject.org tor-nightly-main-<DISTRIBUTION> main

請將<DISTRIBUTION>置換成您的作業系統版本代碼,可以執行lsb_release -c或者是cat /etc/debian_version指令來查詢作業系統版本。

在命令提示符下運行以下命令,添加用於簽署軟體套件的 gpg 密鑰:

   # wget -qO- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --dearmor | tee /usr/share/keyrings/tor-archive-keyring.gpg >/dev/null

安裝 tor 和 tor debian 密鑰環

現在刷新資源並嘗試安裝 tor 和 tor debian 密鑰環:

   # apt update
   # apt install tor deb.torproject.org-keyring

洋蔥路由RPM套件包

洋蔥路由專案計畫有針對CentOS、RHEL以及Fedora系統維護自己的RPM套件庫

注意: 此處的#符號代表該指令須以系統的root權限來執行,亦即您必須要使用擁有系統管理員權限的帳號,也就是說,您的帳號必須隸屬於sudo群組。

利用底下方式可以在CentOS、RHEL以及Fedora系統中,啟用洋蔥路由的官方套件庫:

1. 啟用epel套件庫(只針對CentOS和RHEL系統)

‪# dnf install epel-release -y

2. 在/etc/yum.repos.d/tor.repo中加入下列設定

針對CentOS或RHEL系統:

[tor]
name=Tor for Enterprise Linux $releasever - $basearch
baseurl=https://rpm.torproject.org/centos/$releasever/$basearch
enabled=1
gpgcheck=1
gpgkey=https://rpm.torproject.org/centos/public_gpg.key
cost=100

針對Fedora系統:

[tor]
name=Tor for Fedora $releasever - $basearch
baseurl=https://rpm.torproject.org/fedora/$releasever/$basearch
enabled=1
gpgcheck=1
gpgkey=https://rpm.torproject.org/fedora/public_gpg.key
cost=100

3. 安裝洋蔥路由套件

接著您就可以安裝最新版的洋蔥路由套件。

‪# dnf install tor -y

若是首次使用的話,您會需要匯入GPG公開金鑰。

Importing GPG key 0x3621CD35:
Userid     : "Kushal Das (RPM Signing key) <kushal@torproject.org>"
Fingerprint: 999E C8E3 14BC 8D46 022D 6C7D E217 C30C 3621 CD35
From       : https://rpm.torproject.org/fedora/public_gpg.key
Is this ok [y/N]: y

濫用問答集

很好,這就是為什麼我們會實作出口節點政策的功能。

每個洋蔥路由中繼節點都可以設定自己的出口政策規則,用來指定要接受或者拒絕什麼樣的外接連線。 這個出口政策規則會跟隨著目錄清冊一起被派送到每個洋蔥路由客戶端程式裡,因此客戶端程式在建立迴路時,會自動避免將不願意作為出口節點的中繼節點串接在迴路末端。 因此每個中繼節點的架設者都能夠依據自身的狀況進行評估,以便決定自己的主機要允許什麼樣的連線服務以及連接上什麼樣的主機。 若您要使用預設的出口節點政策的話,請參閱可能遭遇的問題,並且也建議您參閱由Mike Perry撰寫的將架設出口節點所可能遭遇的騷擾最小化

預設的出口節點政策會允許通往大多數熱門的網路服務的連線(例如普通網頁瀏覽),但是會限制某些可能被濫用的情況(例如電子郵件),或者是可能會讓洋蔥路由網路超載的連線(例如封鎖檔案分享協定的預設埠號)。 您可以透過編輯 torrc 檔案來變更出口策略。 如果您想要盡可能的避免被濫用的機會,可以將它設定為「reject *:*」。 這個設定值的意思是,您的中繼節點只會被用來轉送洋蔥路由網路內的連線,不會被用來轉接至外部的普通網站或網路服務。

如果您想要允許通往外部的網路連線的話,請確定您主機的域名解析功能正常(亦即可以正常轉譯網路位址)。 如果有某些網路資源是您的主機無法連接上的(例如您所在的網路防火牆會過濾阻擋),那麻煩請在您的出口節點政策裡,將它明確標注為拒絕,否則洋蔥路由的使用者將會連帶受到影響。

Tor 的使命是透過免費開源技術促進人權,使用戶能夠抵禦大規模監視和網路審查。 我們討厭有人將 Tor 用於邪惡目的,我們譴責濫用和利用我們的技術進行犯罪活動。

重要的是要了解犯罪意圖在於個人而不是他們使用的工具。 就像其他廣泛使用的技術一樣,Tor 可能被有犯罪意圖的個人使用。 And because of other options they can use it seems unlikely that taking Tor away from the world will stop them from engaging in criminal activity. At the same time, Tor and other privacy measures can fight identity theft, physical crimes like stalking, and be used by law enforcement to investigate crime and help support survivors.

分散式阻斷服務攻擊(DDoS)的原理,是仰賴著操控網路上數千臺電腦,同時針對受害者主機發動網路連線。 由於其目標是要癱瘓受害者的網路通訊,因此大多數情況下都會使用UDP封包,因為這種連線不需要執行交握程序或雙邊協調。

但是洋蔥路由並不會接受所有的IP封包,而是只接受資料結構正確的標準TCP資料封包,所以您是無法透過洋蔥路由發送UDP網路封包的。 (您也無法利用像是SYN等特製封包來發動阻斷服務攻擊。) 因此您是沒辦法透過洋蔥路由發動一般常見的分散式阻斷服務攻擊的,洋蔥路由不會允許對外部網站發動頻寬放大型攻擊: 洋蔥路由所轉送的每個位元組資料,都必須是由您的主機親自送出的。 因此總而言之,如果攻擊者所掌控的頻寬,真的多到能夠發動有效的分散式阻斷服務攻擊的話,那他其實也不需要使用洋蔥路由就能執行了。

首先,目前 Tor 的預設出口節點政策,會拒絕所有第25連接埠(SMTP)的網路連線。 所以在預設狀態下,要透過洋蔥路由發送垃圾郵件是行不通的。 某些中繼節點架設者是有可能會在他們的特定出口節點啟用第25連接埠,此時該電腦就會允許外送郵件通過,但是與其要這樣做,不如直接架設普通的開放郵件主機,完全不需要使用洋蔥路由。 所以簡而言之,利用洋蔥路由來發送垃圾郵件其實並不實用,因為幾乎所有的洋蔥路由節點都會拒絕轉送電子郵件。

當然,發送垃圾郵件並不是完全只靠寄送而已。 垃圾郵件發送者可以利用洋蔥路由連線到開放的HTTP代理伺服器(然後再轉接至SMTP伺服器),之後再連上某個有設計瑕疵的郵件發送腳本程式主機,進而用以控制他們的殭屍網路。也就是說,以非常迂迴隱密的方式去操控眾多已被入侵的電腦,並藉由它們來發送垃圾郵件。

這是很可恥的行為,但是那些垃圾郵件發送者其實早就都可以不使用洋蔥路由來完成這樣的任務。 並且請記得,許多較為刁鑽的通訊機制(像是特製UDP封包詐欺)在洋蔥路由裡是無法使用的,因為只有依照正確規格所組建的TCP連線封包才能夠通行。

Tor has implemented exit policies. 每個洋蔥路由中繼節點都可以設定自己的出口政策規則,用來指定要接受或者拒絕什麼樣的外接連線。 因此每個中繼節點的架設者都能夠依據自身的狀況進行評估,以便決定自己的主機要允許什麼樣的連線服務以及連接上什麼樣的主機。 我們還有一個專門的團隊,網路健康團隊,負責調查不良中繼節點的行為並將它們從網路中排除出去。

值得注意的是,雖然我們可以打擊某些類型的濫用行為,例如網路中的不良中繼,但我們無法查看或管理使用者在網路上的行為,這是設計使然。 This design overwhelmingly allows for beneficial uses by providing human rights activists, journalists, domestic violence survivors, whistleblowers, law enforcement officers, and many others with as much privacy and anonymity as possible. Learn more about our users and Tor's beneficial use cases here.

如果您架設允許出口連線的 Tor 中繼節點(例如使用預設的出口政策),那很有可能遲早會有人主動找上門。 濫用的檢舉投訴可能會有多種不同的態樣,舉例來說:

  • 有人透過您的主機連上Hotmail服務,並且寄送了勒索信函給某公司,而聯邦調查局就寄了封很有禮貌的電子郵件給您,此時您只要跟他們解釋說您是洋蔥路由中繼節點的架設者,他們就會說「喔,好吧。」,然後就沒有您的事了。[80埠號]
  • 有人會利用洋蔥路由連上谷歌社群並張貼垃圾廣告,並且向您的網路服務供應商寄發檢舉信函,指控說您惡意違反服務條款,企圖想要逼迫您撤除洋蔥路由主機。[80埠號]
  • 有些人會連上IRC網路並進行惡意騷擾,您的網路服務供應商則會寄發通告,說您的電腦可能被惡意程式入侵或遭受分散式阻斷服務攻擊。[6667埠號]
  • 有人可能透過洋蔥路由下載了馮迪索的電影,而您的網路服務供應商則會收到侵犯智慧財產權的通告,此時可以參考電子前哨基金會提供的洋蔥路由針對侵權通告知回覆範本,其中就有詳細說明,您的網路服務供應商無須理會該些通告也不會有法律責任。[任何埠號]

有些服務供應商對於洋蔥路由出口節點其實是相對較友善的,您可以參閱這篇有關網路服務供應商評價的維基貼文

若您需要針對各種不同的濫用檢舉信函的覆文範本,可以參考我們的範本集。 若您希望盡可能的減少被濫用的機率,可以參考最不會被騷擾的架設出口節點秘訣以及採用限縮型出口政策

您也可能會發現,有些網站會封鎖您的 Tor 中繼節點所使用的IP位址。 不論您的中繼節點是採用什麼樣的出口政策,這種情況都有可能會發生,因為有些組織似乎不知道也不在乎洋蔥路由內建的出口政策機制。 (如果您有多餘未使用的IP位址,或許可以考慮將它用來架設洋蔥路由中繼節點。) 總而言之,建議您不要使用自己家裡的網路連線服務來架設洋蔥路由中繼節點。

您可以參閱這裡所收錄的範本,都是專門用於回覆網路服務供應商的通告。

有時候惡意人士會利用 Tor 在IRC頻道中搗亂。 這樣的結果會導致特定IP位址被暫時封鎖(在IRC裡的術語稱為「klines」),因為網路管理員正試圖將搗亂者踢出網路。

這樣的結果也突顯出了IRC系統在設計上的先天性缺陷: 因為他們預設認為每個IP位址都會對應到一個特定人士,所以封鎖該IP位址就可以封鎖那個人。 而實際上的情況並非如此-許多惡意搗亂者會輪流使用成千上萬的開放代理伺服器來連線,有時還會用被入侵的電腦作為跳板。 因此整個IRC網路系統在這個節點封鎖戰役中正節節敗退,基於這種先天設計上的安全性缺陷,導致於這種家庭代工式的反濫用策略如雨後春筍般的發展(這與防毒軟體市場有異曲同工之妙)。 而洋蔥路由網路只不過是這場戰役中的冰山一角而已。

從另一方面而言,對於IRC伺服器的管理員來說,安全性其實並非是全有或全無的二元抉擇。 要是能夠快速的反制任何惡意搗亂行為,仍然有可能讓惡意攻擊者因為成功機率降低而打退堂鼓。 況且對於絕大多數的IP位址來說,在某個特定的時間點連上IRC網路時也確實是代表了某個特定人士。 但是也有特別的例外,像是NAT網路閘道即是。 儘管說封鎖開放式代理伺服器的策略是一場節節敗退的戰役,但是若針對特定的惡意擾亂者進行足夠長時間的封鎖,也還是能夠讓他因為失去興趣而停止騷擾行為。

但是真正根本性的解決方案,還是要在應用程式層級設置認證系統,以使正常的使用者可以進入使用服務,而惡意擾亂者則會被拒於門外。 這個方案會需要一些人為因素(例如正常使用者才知悉的密碼),並非單靠分析網路傳輸的封包資料就能達成。

當然,並不是所有的IRC網路都會封鎖 Tor。 畢竟還是有少數的普通IRC使用者會透過洋蔥路由連上線,通常是為了不讓自己在真實世界裡的身份被揭露。 因此IRC網路的管理員必須要去衡量,為了防堵惡意擾亂者而去封鎖掉數以百萬計的IP位址所失去的,是否比得上善意的洋蔥路由用者所能帶來的貢獻。

若您發現被封鎖的話,請聯繫其網路管理員並解釋您的情況。 他們有可能根本還不知道有洋蔥路由這種科技,或者是沒有發現他們封鎖的其實是洋蔥路由的出口節點。 若您跟他們解釋過後,他們依然堅持認為 Tor 應該被封鎖的話,那您可以考慮改換另一個言論自由較開放的網路空間。 或許也可以邀請他們來irc.oftc.net上的#tor頻道聊聊,他們對於我們的負面刻板印象可能會有所改變。

最後,如果您發現某個IRC網路有封鎖洋蔥路由,或是封鎖某個洋蔥路由的出口節點,麻煩請協助將它補充至洋蔥路由之IRC封鎖追蹤器,以讓大家可以交流資訊。 至少有個IRC網路會查詢該頁面,以便將不經意封鎖的出口節點解封。

儘管說洋蔥路由不易用於發送垃圾郵件,但是仍有些過度熱情的黑名單收集者會認為,像洋蔥路由這種開放式網路都是危機四伏,時常有人會企圖跨越網路服務的安全政策或繞徑,以對被害人進行勒索。

若您的伺服器管理員決定要使用這些黑名單並以阻擋內收郵件的話,您可以試著跟他們解釋洋蔥路由以及其出口節點政策的設計與原理。

我們很遺憾您做了這樣的決定。 在有些情況下,網路服務封鎖匿名使用者確實是有其道理。 但是在很多情況下,除了禁止使用者以較安全的方式存取服務外,其實還有更簡單的方式可以解決您的問題。

首先,您可以先從應用程式的層面思考看看,是否有方式可以將正常的使用者與惡意擾亂者區隔開來。 舉例來說,您的網站或許有些類似發表貼文的功能區域,可以僅開放給已註冊登入的使用者存取。 要取得即時更新的洋蔥路由IP位址其實很容易,您可以藉此將連線到您的網站的 Tor 訪客區隔出來。 如此一來,您可以設置多層次的存取控制,而不需要將他們完全封鎖。

舉例來說,在Freenode的IRC網路裡曾經出現過一群惡意搗亂者,時常藉由轉移話題的方式來製造麻煩,但是自從管理人員決定將該服務裡所有的洋蔥路由使用者自動掛上「匿名使用者」的標記後,那群惡意搗亂者因為無法再混入普通使用者群裡作亂,因此只好轉用其他像是開放式代理伺服器或者殭屍網路等方式。

再來,請您也思考一下目前每天都有成千上萬的使用者選擇洋蔥路由來確保自身資料,例如他們想要在日常網路活動過程中,避免瀏覽的相關資料被廣告行銷公司取得。 對於另外有些人而言,使用洋蔥路由則是他們突破區域防火牆封鎖的唯一方式。 有些 Tor 使用者連上您的網路服務,純粹只是想要進行正當合理的活動而已。 因此您必須要斟酌考慮是否要全面封鎖洋蔥路由網路,因為這代表著您也會失去這些使用者以及未來可能的普通使用者,對您的付出與貢獻。 (大部分的人其實平常都沒有注意到,自己的網路服務裡有多少洋蔥路由的使用者,通常都要到有無禮的搗亂者出現時,才會發現到他們的存在。)

此時此刻您也必須要先思考一個問題,那就是對於客戶群龐大的網路服務,也常有大量的使用者透過極少數的幾個IP位址連上您的服務的現象。 從這方面來看,其實洋蔥路由跟AOL網路服務供應商是沒什麼差別的。

最後,也請您別忘了 Tor 的中繼節點都有個別的出口政策。 有許多 Tor 的中繼節點,是完全禁止對外出口連線的。 且可能有許多允許出口連線的中繼節點,也都已經設定拒絕通往您的網路服務的連線。 若您想要封鎖洋蔥路由的節點的話,希望您能先分析各個節點的出口政策,並只封鎖那些仍然允許連上您的服務的節點就好。但您也必須要知道的是,各個節點的出口政策是有可能會變動的(我們網路裡的總節點清單也是)。

若您還是堅持決定要這麼做的話,我們有提供洋蔥路由出口中繼節點清單以及以DNS為基礎的可查詢清單

(有些系統管理員會依照組織的政策規定或濫用者的行為模式,把整個區段的IP位址都封鎖掉,同時也有些管理員會要求其所有的使用者,都必須要透過洋蔥路由才能使用其服務。 這些腳本程式同樣也可以用來作為白名單。)

洋蔥路由開發人員無法追蹤鎖定任何洋蔥路由的使用者。 用來確保 Tor 匿名性的保護機制,同時也會使我們無法釐清許多事情的真實狀況。

我們有些支持者建議我們重新設計 Tor,以便在裡面加入後門。 這個想法其實會有兩個嚴重的問題。 第一,這種作法本質上會太過弱化整個系統的安全。 擁有一個可以將使用者的活動關聯起來的中央主管機構,會讓各式各樣的攻擊有機可趁,而要能夠妥適的管理這樣的機構所需的制度,其成本太過龐大且也無法做到完美。 其次,反正壞人也不會因此被抓,因為他們將使用其他手段來確保匿名性(盜取身份,破壞電腦並將其作為跳點等)。

意思也就是說,作為網站的擁有者,必須對自身提供的服務進行保護防止被入侵破解,這些惡意行為可能來自任何地方。 這是要使用網際網路所必須做的付出。 您必須要隨時保護自身的網路安全,危險可能會從任何地方出現。 追蹤與強化監控並非不是網路濫用的解決方案。

但您也必須要知道,這並非意謂 Tor 是絕對安全的。 傳統的檢警調單位偵辦手法對於洋蔥路由來說,仍然很有實用性,例如犯案動機與手段調查、嫌疑犯訊問、寫作風格分析、內容技術分析、臥底行動、鍵盤側錄等等實體的偵查行動。 洋蔥路由專案計畫也很樂意與執法單位等機構合作,這包括協助進行相關教育訓練,以便使其人員能夠以安全隱密的方式利用洋蔥路由軟體進行案件偵查,進而能夠在網路上隱藏其偵辦活動。

Tor Project沒有能力去管控或追查某個.onion位址的擁有者或其所在位置。 所謂的.onion位址是某個洋蔥服務的網路位址。 以.onion結尾的名稱其實是一個洋蔥服務的描述符。 它是被自動生成的名稱,可以被架設在網路上任何一個洋蔥路由中繼節點或客戶端程式上。 洋蔥服務的設計是用來防止網站及訪客得知對方的身份或所在位置。 這種洋蔥服務的設計也意味著.onion站台的擁有者與其所在位置是被完全隱藏的,即使是我們也無法得知。

但是請記得這並不代表洋蔥服務是堅不可摧的。 傳統的檢警調單位偵辦手法對於洋蔥服務來說仍然很管用,例如犯案動機與手段調查、嫌疑犯訊問、寫作風格分析、內容技術分析、臥底行動、鍵盤側錄等等實體的偵查行動。

若您是想要通報有兒童受虐的內容,或許可以考慮通報至國家失蹤與受虐兒童中心,該單位主要負責指揮調度全國各地針對兒童色情的調查行動:http://www.missingkids.com/。 我們不會去查閱您所通報的連結。

我們對於濫用者問題向來都很嚴肅的對待。 社運人士以及執法單位都會使用 Tor來偵辦濫用事件,也會用來支援被害的生還者。 我們也都會密切與他們合作,以使他們可以了解如何利用洋蔥路由來協助他們的任務。 有些時候,當有發生技術性錯誤的時候,我們也會幫他們糾正。 因為有些倖存的被害人不一定會受到憐憫同情,反而是會遭受到污名化的傷害,因此若要尋求同樣遭遇者的支持與互助,是需要使用有隱私保護機制的科技才能達成的。

我們之所以會拒絕審查過濾 Tor 或在裡面加入後門,並不是因為我們漠不關心。 我們拒絕這樣做的原因,是因為弱化洋蔥路由的保護機制對於兒童受虐或人口販運等行為的防堵是有害無益的,並且也會讓受害者失去網路上的安全空間。 同時犯罪者依然能夠利用殭屍網路、竊得的行動電話、盜取的帳號、郵遞包裹系統、腐敗的公務人員或任何新興科技,以進行非法交易活動。 他們對於新科技的使用是屬於先鋒者。 有鑑於此,若立法者認為單純仰賴封鎖過濾就足以解決問題的話,會是非常危險的想法。 我們的期許是要為中止兒童受虐盡一份心力,而不是去幫助政客藉由隱藏事實來獲取政績。 貪腐問題對於社會的傷害更是尤其嚴重,請參閱聯合國的這篇貪腐問題在人口販運所扮演的角色報告書。

最後很重要的一點,當成年人以兒童之名通過實施相關法規政策。 若兒童無法以成年人的身份發表自己的意見的話,他們還會感謝我們嗎? 萬一他們正嘗試要揭露某個政府的錯誤,以便保護其他兒童呢?

Tor Metrics

實際上我們並不是去逐使用者計數加總,而是依據客戶端程式週期性去對目錄主機發送中繼節點清單的更新請求統計資料為基礎,再以間接的方式去推估而得。

不會,但是我們可以看到哪些目錄主機會回報,然後再進而推估網路中的總使用者數量。

我們是先假定每個客戶端程式每天平均會發送10次這樣的請求。 因為 Tor 客戶端程式若以24/7全天候處於上線狀態時,平均每天會發送15次這種請求,但是並非所有客戶端程式都會24/7全天候上線,因此我們選定10作為平均值。 然後就只要把目錄主機的請求數量統計除以10,即視為是使用者人數。 從另一方面來看,我們是假定每個這樣的請求都代表一個客戶端程式上線了十分之一天的時間,也就是2個小時又24分鐘。

是從過去一天內所收集到的資料裡估測出來的平均同時線上人數,我們無法得知這裡面有多少不同的使用者。

沒有,中繼節點都是每24個小時才把請求連線記錄以國家別分類並聚合統計後,才會回報給我們。 若要針對每小時的使用者人數進行統計的話,我們需要收集的資料會太過精細,這樣有可能讓使用者暴露於風險之中。

那我們就把那幾個使用者都算成一個,因為我們實際上是在計算客戶端程式數量,但是對於大部分人來說,將它說程式使用者會比較直觀易懂,這也是為什麼我們這裡會以使用者來取代客戶端程式的說法。

目錄主機會解析出IP位址的國碼,並將資料聚合後回報,這也是為什麼洋蔥路由軟體會預載GeoIP資料庫的原因。

目前很少橋接中繼站會回報傳輸以及IP版本的相關資訊,我們也考慮要預設使用OR協定以及IPv4。 等到有較多的橋接中繼站回報這些資料時,這項統計數據的精確度就會提高。

中繼節點或橋機中繼站通常是每24個小時才會回報一次資料,該回報時間點可能在一天之中的任何時刻。
但有時候中繼節點或橋接中繼站會在該時間區間結束後18個小時,才將資料回報。
我們將最近兩天內的數據資料從圖表中切除的原因,是想要避免讓最近的變化趨勢受到演算法的計算偏差影響。

通常只有當我們確信該使用者人數資料已經不會再有大幅度變動時,才會將它發佈出來。 但是仍有可能某個目錄主機在我們發佈後才回報資料,因此造成圖表資料會有微幅度的變動。

我們確實是擁有在該時間點以前的描述子相關歷史資料庫存,但是那些描述子並沒有包含估測使用者數量所需要的資料。 請下載這個tarball檔以取得更多資訊:

Tarball

針對直接連上線的使用者,我們把所有之前未被涵蓋的目錄主機都囊括進來了。 而且我們現在也使用了那些只用於回覆目錄請求的位元組資料歷史記錄,這會比只單純使用位元組歷史資料做通盤計算還要來的精確。

喔,這個就說來話長了,我們有寫了一篇長達13頁的技術報告書來說明我們決定拋棄舊有估測方式的原因。
簡而言之:在舊有的估測方法裡,我們統計到了錯誤的指標,現在的新方法所估算的數值才是正確的。

我們目前使用以異常事件為基礎的審查過濾偵測系統,目的在於觀測過往幾天的使用者數量估測值,並預估未來幾天的使用者數量。 當實際的數值偏高或偏低時,表示可能有網路審查過濾活動發生。 請參閱我們的技術報告書以了解更多細節。

Little-t-tor

Attention: These instructions are meant for installing tor the network daemon i.e. little-t-tor. For instructions on installing Tor Browser, refer to Tor Browser user manual.

Admin access: To install Tor you need root privileges. Below all commands that need to be run as root user like apt and dpkg are prepended with '#', while commands to be run as user with '$' resembling the standard prompt in a terminal. To open a root terminal you have several options: sudo su, or sudo -i, or su -i. Note that sudo asks for your user password, while su expects the root password of your system.

Debian / Ubuntu

Do not use the packages in Ubuntu's universe. In the past they have not reliably been updated. That means you could be missing stability and security fixes.

  1. Configure Tor package repository

Enable the Tor Project APT repository by following the instructions.

  1. Package installation

    # apt install tor

Fedora

  1. Configure Tor Package repository

Enable the Tor Project's RPM package repository by following the instructions.

  1. Package installation

    # dnf install tor

FreeBSD

  1. Package installation

    # pkg install tor

OpenBSD

  1. Package installation

    # pkg_add tor

macOS

  1. Install a package manager

There are two package manager on OS X: Homebrew and Macports. You can use the package manager of your choice.

To install Homebrew follow the instructions on brew.sh.

To install Macports follow the instructions on macports.org/install.php.

  1. Package installation

If you are using Homebrew in a Terminal window, run:

# brew install tor

If you are using Macports in a Terminal window, run:

$ sudo port install tor

Arch Linux

  1. To install the tor package on Arch Linux, run:
# pacman -Syu tor

DragonFlyBSD

  1. Bootstrap pkg

DragonFlyBSD's daily snapshots and releases (starting with 3.4) come with pkg already installed. Upgrades from earlier releases, however, will not have it. If pkg is missing on the system for any reason, it can be quickly bootstrapped without having to build it from source or even having DPorts installed:

# cd /usr
# make pkg-bootstrap
# rehash
# pkg-static install -y pkg
# rehash

1.1 Recommended steps to setup pkg

Here, it will be similar to what we have on a FreeBSD system, and we are going to use HTTPS to fetch our packages, and updates - so here we also need an extra package to help us out (ca_root_nss).

Installing the ca_root_nss package:

# pkg install ca_root_nss

For fresh installations, the file /usr/local/etc/pkg/repos/df-latest.conf.sample is copied to /usr/local/etc/pkg/repos/df-latest. The files ending in the ".sample" extension are ignored; pkg(8) only reads files that end in ".conf" and it will read as many as it finds.

DragonflyBSD has 2 packages repositories:

  • Avalon (mirror-master.dragonflybsd.org);
  • Wolfpond (pkg.wolfpond.org).

We can simply edit the URL used to point out the repositories on /usr/local/etc/pkg/repos/df-latest and that's it! Remember to use pkg+https:// for Avalon.

After applying all these changes, we update the packages list again and try to check if there's already a new update to apply:

# pkg update -f
# pkg upgrade -y -f
  1. Package installation

Install the tor package:

# pkg install tor

NetBSD

  1. Setup pkg_add

Modern versions of the NetBSD operating system can be set to use pkgin, which is a piece of software aimed to be like apt or yum for managing pkgsrc binary packages. We are not convering its setup here, and opt to use plain pkg_add instead.

# echo "PKG_PATH=http://cdn.netbsd.org/pub/pkgsrc/packages/NetBSD/$(uname -m)/$(uname -r)/All" > /etc/pkg_install.conf
  1. Package installation

Install tor NetBSD's package:

# pkg_add tor

Void Linux

To install the tor package on Void Linux, please run:

# xbps-install -S tor

Installing Tor from source

  1. Download latest release and dependencies

The latest release of Tor can be found on the download page.

If you're building from source, first install libevent, and make sure you have openssl and zlib (including the -devel packages if applicable).

  1. Install Tor

    tar -xzf tor-0.4.3.6.tar.gz; cd tor-0.4.3.6

    ./configure && make

Now you can run tor as src/app/tor (0.4.3.x and later), or you can run make install (as root if necessary) to install it into /usr/local/, and then you can start it just by running tor.

注意:以下教學是關於驗證洋蔥路由的原始程式碼。 請依照正確步驟來驗證洋蔥路由瀏覽器的數位簽章

簽署數位簽章是用來確保套裝軟體是來自其開發者且沒有被竄改過的過程。 底下我們會說明為何驗證洋蔥路由原始程式碼很重要,以及如何驗證您所下載到的跟我們提供的是完全一致未被篡改。

我們下載頁面上的每個檔案都附帶兩個檔案,標記為“校驗和”和“簽名”,其名稱與軟體套件相同,副檔名分別為“.sha256sum”和“.sha256sum.asc”。

.asc 檔將驗證 .sha256sum 檔案(包含套件的校驗和)沒有被篡改。一旦簽名被驗證有效(見下面的方法),套件的完整性就可以用以下方法驗證:

$ sha256sum -c *.sha256sum

這些檔案用於驗證你所下載的正是我們希望你得到的檔案。 一般來說,可以通過右擊 “簽名”和“校驗和”鏈接並選擇“另存為”選項來下載檔案,不過這可能因瀏覽器而異。

例如,tor-0.4.6.7.tar.gz配有tor-0.4.6.7.tar.gz.sha256sum.asc。 有些範例檔案的名稱不會跟您所下載的檔名完全相同。

我們將告訴你如何在各個不同作業系統上,驗證下載好檔案的數位簽章。 請注意數位簽章上壓印的日期就是該套裝軟體被簽署的時間。 因此每當檔案被更新的時候,就會產生一個壓有不同日期的新的數位簽章。 只要您有驗證過數位簽章,就不用擔心上述有可能改變的數位簽章日期。

安裝GnuPG

首先,開始驗證數位簽章前,您需要先安裝好 GnuPG。

Windows系統使用者:

如果您是使用Windows系統的話,請下載Gpg4win並且執行安裝程序。

您會需要在Windows的命令提示字元模式cmd.exe中,輸入幾道指令才能驗證數位簽章。

macOS 使用者:

若您是使用MacOS系統的話,您可以安裝GPGTools

您會需要在終端機模式(在「應用程式」裡)輸入幾道指令,才能夠進行數位簽章驗證。

GNU/Linux使用者:

若您是GNU/Linux系統的使用者的話,那您的系統中應該已經有安裝GnuPG程式了,這是在大多數GNU/Linux系統的封裝發行版中會預載的軟體。

若要驗證其數位簽章,您需要在命令列模式輸入幾道指令。 這個方式會隨著您所使用的系統發行版不同而有所差異。

取得洋蔥路由開發人員的金鑰

下面的密鑰可以對 tarball 簽名。不要期望都有簽名,這可能取決於誰來發布。

可通過上述鏈接獲得密鑰,或通過:

$ gpg --auto-key-locate nodefault,wkd --locate-keys ahf@torproject.org
$ gpg --auto-key-locate nodefault,wkd --locate-keys dgoulet@torproject.org
$ gpg --auto-key-locate nodefault,wkd --locate-keys nickm@torproject.org

這應該顯示類似結果(對於 Nickm):

gpg: key FE43009C4607B1FB: public key "Nick Mathewson <nickm@torproject.org>" imported
gpg: Total number processed: 1
gpg:               imported: 1
pub   rsa4096 2016-09-21 [C] [expires: 2025-10-04]
      2133BC600AB133E1D826D173FE43009C4607B1FB
uid           [ unknown] Nick Mathewson <nickm@torproject.org>
sub   rsa4096 2016-09-23 [S] [expires: 2025-10-04]
sub   rsa4096 2016-09-23 [E] [expires: 2025-10-04]

如果您有看到錯誤訊息的話,那就表示有地方做錯了,您必須要先找出問題才能夠繼續往後的步驟。 或者是也可以利用其他方式(使用公開金鑰)章節介紹的方式來匯入金鑰。

在匯入金鑰之後,您可以將它儲存成檔案(以金鑰指紋作為識別):

$ gpg --output ./tor.keyring --export 0x2133BC600AB133E1D826D173FE43009C4607B1FB

這道指令會把金鑰儲存成檔案並放置於./tor.keyring路徑中,即目前所在工作目錄。 如果執行此道指令後./tor.keyring仍然不存在,那就表示有地方出錯了,您必須要先釐清並解決該問題才能繼續。

驗證數位簽章

要驗證所下載的套件簽名,需要下載相應的 .sha256sum.asc 簽名檔和 .sha256sum ,並通過命令要求 GnuPG 進行驗證。

底下範例假設您將該二檔案存放於「下載」資料夾中。 請注意,此處的指令中都是使用範例檔名,跟您所實際下載取得的檔名不會相同:您下載的可能不是第9.0版,而且也可能不是英文(美式)版本。

Windows系統使用者:

gpgv --keyring .\tor.keyring Downloads\tor-0.4.6.10.tar.gz.sha256sum.asc Downloads\tor-0.4.6.10.tar.gz.sha256sum

macOS 使用者:

gpgv --keyring ./tor.keyring ~/Downloads/tor-0.4.6.10.tar.gz.sha256sum.asc ~/Downloads/tor-0.4.6.10.tar.gz.sha256sum

對於 BSD/Linux 用戶:

gpgv --keyring ./tor.keyring ~/Downloads/tor-0.4.6.10.tar.gz.sha256sum.asc ~/Downloads/tor-0.4.6.10.tar.gz.sha256sum

該命令的結果應該產生這樣的結果(取決於簽名用的哪個密鑰):

gpgv: Signature made Mon 16 Aug 2021 04:44:27 PM -03
gpgv:                using RSA key 7A02B3521DC75C542BA015456AFEE6D49E92B601
gpgv: Good signature from "Nick Mathewson <nickm@torproject.org>"

如果此時出現「No such file or directory」的錯誤訊息的話,那就表示您在先前的步驟執行有誤,或者是您忘記將指令中的檔名修改成您實際下載取得的檔案名稱。

您可能會需要多了解GnuPG的使用方式。

驗證校驗和

現在我們驗證了校驗和的簽名,接著需要驗證套件的完整性。

Windows系統使用者:

certUtil -hashfile tor-0.4.6.10.tar.gz.sha256sum SHA256

macOS 使用者:

shasum -a 256 tor-0.4.6.10.tar.gz.sha256sum

對於 BSD/Linux 用戶:

sha256sum -c tor-0.4.6.10.tar.gz.sha256sum

我們仍未開展的另類可行設計方案

不行,您不能夠信任網路所選出的路徑。 因為惡意的中繼節點可以藉機將您的連線流量導入他的同夥所架設的節點中。 這樣就會使惡意人士有能力監控到您完整連線的兩個端點了。

這項做確實是會因為下列幾項原因而讓實用性大增: 可以讓洋蔥路由更輕易的處理較新的網路協定,像是VoIP網路語音串流。 可以避免要求每個應用程式都必須走SOCKS介面。 出口節點也不再需要去為每個出口連線配置檔案描述子。

這是我們目前努力的方向,而幾個較困難的挑戰是:

  1. IP網路封包會揭露作業系統的特徵。 我們會需要處理IP層的網路封包正規化,以防堵像是TCP特徵值分析之類的攻擊。 有鑑於TCP堆疊層的多元性與複雜性,在加上裝置特徵值分析攻擊的考量,目前最好的作法應該會是在作業系統的使用者權限層級載送自己的TCP堆疊。

  2. 應用程式層級的串流資料仍須經過淨化。 我們仍然需要像是Torbutton之類的使用者端的應用程式。 因此它並不只是單純的捕捉封包並在IP層進行匿名化處理而已。

  3. 有些通訊協定仍然會洩漏資訊。 舉例來說,我們必須要重新開發DNS請求模組,以便讓相關請求可以送到無法被識別關聯的DNS伺服器,而不是直接送網使用者的網路服務供應商的預設伺服器。因此,我們就必須要知悉我們所傳送的網路連線是哪種通訊協定。

  4. 目前DTLS(資料包傳輸層安全協定)已經無人使用,而IPsec又是個龐然大物。 一旦我們選定了某個傳輸層的機制,就必須要設計一個全新的端對端洋蔥路由協定,以防堵標記攻擊或者是其他與匿名性或完整性有關的問題,因為我們必須要允許封包丟失與重送等機制。

  5. 對特定的IP封包賦予不同的出口政策就意謂著要開發一套安全的入侵偵測系統(IDS)。 我們的中繼節點架設者告訴我們說,出口政策機制的設計是他們會願意架設 Tor 節點的主要原因之一。 在出口政策機制裡加入入侵偵測系統無疑會增加洋蔥路由的安全性複雜度,且有鑑於大量有關入侵偵測系統研究領域的論文,這個策略也不可能無效。 由於洋蔥路由只允許傳輸有效的TCP資料串流,杜絕了許多可能的濫用問題(例如特定的IP包裝特製的惡意封包以及IP洪氾。) 若要允許傳送IP封包的話,那出口政策就會便得更加重要。 我們也必須要以更精實的形式將個節點的出口政策呈現在洋蔥路由目錄中,以便讓客戶端程式得以預測哪些節點能夠轉送它們的網路封包。 客戶端程式也必須在選定出口節點的時候,就能夠精準預測在該工作階段中會需要傳送的網路封包型態!

  6. 洋蔥路由的內部命名空間需要重新設計。 我們目前支援洋蔥服務的「.onion」位址的方式,是在請求通過 Tor 客戶端程式時,攔截捕捉該位址。 若要在IP層去處理這項工作,必須要再設計一個位於洋蔥路由與本地端DNS解析器間更加複雜的介面。

假使能夠讓中繼節點維護者直接在出口政策裡做像是reject www.slashdot.org的設定(或是封鎖其他網站的IP位址),完全不需要去查詢該網域中使用了哪些IP位址的話,那當然是最好不過得事了。

然而,這樣子是會有兩個問題。 第一個是,使用者仍然是可以繞過這些封鎖。 例如說,他們的 Tor網路連線,可以直接針對IP位址來發送請求而非主機名稱。 這個意思就是說,節點維護者還是必須要查出該網域中的所有IP位址才行。

第二個問題是,這樣的設計會讓針對特定網站的審查過濾攻擊變成可能。 例如當洋蔥路由節點管理員針對www1.slashdot.org進行封鎖時,那如果有攻擊者去篡改洋蔥路由中繼節點的DNS,或者將該網域名稱解析出的IP位址置換成某個主流新聞網站,此時該洋蔥路由中繼節點就會變成是在封鎖該新聞網站了。

若將每個洋蔥路由使用者都設計成中繼節點的話,是可以將整個網路擴充到足以容納我們的所有使用者,並且架設自己的洋蔥路由中繼節點亦可強化匿名性。 然而,並非每個洋蔥路由使用者都能夠成為優良的中繼節點,舉例來說,在那些在有防火牆過濾封鎖的區域網路中,或是透過數據機連上網等網路環境的主機執行 Tor 程式的話,它們並沒有辦法正常的轉送他人的網路流量。 為這些客戶端程式提供服務,是與對所有人提供有效的匿名保護同等關鍵,因為許多洋蔥路由使用者的網路環境都會受到這類的侷限,若將這些客戶端程式囊括進來的話,能夠有效擴大整個網路的匿名集合。

有鑑於此,我們也同時也鼓勵洋蔥路由使用者去架設中繼節點,因此我們的方向是將中繼節點的架設與維運工作盡可能的簡化。 在過去幾年我們也已經在簡化設定方面有了許多進展,現在 Tor 程式可以自動偵測其所在的網路環境以及可用的頻寬。

要達成此目標必須經過四個階段的工作:

  • 第一個階段的工作,是要將可用頻寬自動估算的機制再強化,使其推估結果能夠更精準。 或許切換到UDP傳輸會是最簡單的解決方式,然而事實並非是這麼單純。

  • 第二個階段則是,要想辦法提昇可擴充性,這包括對於網路(如何能夠不用要求所有洋蔥路由中繼節點必須與其他所有節點連通),以及對於目錄(如何能夠不用要求所有洋蔥路由使用者取得所有洋蔥路由中繼節點資訊)。 這類的變動可能會對目前的匿名保護機制造成巨大的衝擊。 細節可參考挑戰這篇論文的第5章節。 再次強調,採用UDP傳輸是會有幫助的。

  • 第三階段的工作,我們仍需要更深入研究一種情境的風險,就是在允許攻擊者發動網路流量通過您的中繼節點時,您又同時發動自己的匿名連線的情況下。 有三份不同的研究論文提出了幾個方法,可以藉由發動網路連線通過幾個預選的中繼節點,即可藉由觀測該些連線的流量悸動來識別出其他迴路所使用的中繼節點。 在洋蔥路由的環境中,只要中繼節點本身不要同時扮演客戶端程式的功能,那這類的堵塞攻擊法其實並不可怕。 但是今天如果我們要鼓勵更多的客戶端程式啟用中繼節點功能的話(不論是橋接中繼站還是普通的中繼節點),那就必須要先深入了解這種威脅模型的風險,進而去降低風險程度。

  • 第四階段的工作,我們會需要提供一些誘因,以鼓勵更多人願意為他人轉送網路流量,甚至是成為出口節點。 這是我們目前想到的誘因

還請您盡可能的協助!

Mullvad 瀏覽器

Mullvad Browser is Tor Browser without the Tor Network - that allows anyone to take advantage of all the privacy features Tor created. 如果想要使用可信的 VPN 連線該瀏覽器,他們可以輕易地實現。

該瀏覽器“現成”的配置和設定將遮蔽許多參數和功能,它們通常用於從個人裝置提取資訊,包括字型、渲染的內容和一些硬體 API 。 預設情況下,Mullvad 瀏覽器啟用隱私模式,遮蔽第三方跟蹤器和 cookie。

該瀏覽器是免費和開源的,由 Tor Project 和 Mullvad VPN 合作開發。 它由 Mullvad 釋出,可以在他們的網站下載。

Mullvad Browser is free and open-source software that connects to the internet (if you use it together with Mullvad VPN) through the encrypted VPN tunnels and VPN servers of Mullvad. 該瀏覽器可以使用或不使用 VPN,但要確保使用可信的 VPN 供應商。 除了將用戶連接到網際網路的方式(Tor 網絡與可信 VPN 連接)外,這兩個瀏覽器差異非常小,更多是終端用戶的個人偏好和使用情況。

As a benefit of connecting to the internet using the Tor network, various Tor specific features are closely integrated with our own browser that Mullvad Browser does not offer, including:

  • 迴路隔離與新身份整合
  • 訪問洋蔥服務(比如,洋蔥網站、Onion-Location 重定向、洋蔥驗證和 SecureDrop整合)
  • 內置審查規避,並通過Tor 瀏覽器的連接設置和連線助手,提供獨特的用戶體驗

我們這次合作的目的是為各種用戶提供更多的線上隱私選擇(例如,最大限度減少指紋識別、防止可關聯性)。

如果正在尋找一個增強隱私的瀏覽器解決方案以連線到信任的 VPN ,那麼應該使用 Mullvad 瀏覽器。 其預設設定和功能是為了對抗大型科技公司通常採用的大規模監控、資料探勘和跟蹤、或其他侵犯隱私的行為。

While Mullvad Browser offers similar privacy protections to Tor Browser, it is best suited for the threat model of corporate mass-surveillance by big tech companies.

Unlike other browsers on the market, Mullvad Browser's business model does not rely on capitalizing on users' behavioral data. Mullvad 通過銷售他們的 VPN 賺錢,而不是銷售瀏覽器的用戶數據。

Mullvad 瀏覽器由 Tor Project 開發,該機構在開發和部署免費開源的隱私保護技術領域具有良好信用。這些技術,如 Tor 瀏覽器、洋蔥服務、Tor 網絡等,幫助數百萬來自風險社區的人捍衛了他們在網上的隱私和匿名。

對於任何支援要求,請發郵件至support@mullvad.net。 目前,使用者支援僅支援電子郵件。

多年來,Mullvad 一直是 Tor 社區的一部分。 他們是 Tor Project 會員計劃 紫洋蔥級別會員(最高級別),並且是 Tor Project 會員計劃的創始成員。

當 Mullvad 聯繫我們共同開發一個瀏覽器時,我們答應了,因為我們這兩個機構在某些方面具有相同的價值觀,即增強隱私技術的廣泛地應用和突破大規模監視。

Mullvad Browser fills a gap in the market for those who want to run a privacy-focused browser as good as Tor Browser but with a trusted VPN instead of the Tor Network. 這種合作關係有助於爲網絡瀏覽提供更多免費的隱私選擇,同時挑戰了利用用戶數據的商業模式。 這個瀏覽器展示了一種可能性:開發免費的技術,優先保護使用者的隱私。 在網際網路隱私和自由方面,Mullvad 擁有與 Tor 相同的價值觀,同時致力於普及性的隱私增強技術,使得大規模監控無法實現。

與 Mullvad 的聯合項目有助於解決 Tor 瀏覽器的遺留代碼問題,並能夠提供專門的資源來進行必要的改進,以使 Tor 和 Mullvad 瀏覽器都能受益。 在過去的幾年裏,Tor Project 推出了許多措施來增加我們技術的採用,並對產品的可用性進行了重大改進

不,Tor 瀏覽器將繼續存在。 我們知道,世界各地數以萬計的用戶依靠 Tor 瀏覽器和 Tor Project 提供的其他解決方案,來安全地連接網際網路,匿名瀏覽和規避審查制度。 因此,Tor 瀏覽器將繼續存在。 繼續維護和改進 Tor 瀏覽器有很多理由,由於使用 Tor 網路,它仍是少數幾個線上匿名解決方案之一。 這種組合非常強大,有時,對於審查和監視的用戶來說,這是其所在地區自由和安全地訪問網際網路的少數選擇之一。 它對所有人免費,對於身處險境的人,這使其成為一種可獲得的解決方案。

The development of Mullvad Browser will actually help make Tor Browser stronger because it allows us to continue to address legacy issues and code, and fix vulnerabilities.

完全不是,正如我們過去 5 年所做的那樣,我們將繼續投入提高 Tor 瀏覽器的可用性,不斷發布新的版本,包括用戶體驗改進。 We are also working hard on bringing Tor Browser for Android up to par with the desktop version's features.

The development of Mullvad Browser has helped us address legacy issues and code, and fix vulnerabilities. 這並不會影響我們對 Tor 瀏覽器的關注和投入。

兩年前,我們開始了一個類似 VPN 應用程 式的項目,它能讓 Android 用戶連接到 Tor 網路。 我們知道,當用戶使用移動端時,那些在桌面通過瀏覽器連接的許多網站和服務會變成一個應用程式。 應對這種使用案例對我們來說很重要,因為在世界各地大多數人只使用移動設備連接網際網路,尤其是在南方世界和有風險的地區。 相對於連接到 Tor 網路,通過可信 VPN 連接網際網路,這一瀏覽器邁出了重要的一步,在關注隱私的免費瀏覽器領域提供了更多選項,並且以後我們的“類似 VPN”應用程式發行時,這對 Tor 瀏覽器也是有益的。

是的,以下是 Mullvad 瀏覽器預設的全部請求列表:

  • 瀏覽器更新(Mullvad)
  • Mullvad 瀏覽器擴充更新 (Mullvad)
  • Mullvad DoH (Mullvad)
  • NoScript/Ublock Origin 更新 (Mozilla)
  • 憑證 & 域名更新 (Mozilla)
  • Ublock Origin 過濾器列表(各種列表)