最常见问题

强烈建议不要在 Tor 浏览器上安装新的附加组件,因为这可能会损害你的隐私和安全。

安装新的拓展可能会意外影响 Tor 浏览器,并使得你的 Tor 浏览器的浏览器指纹变得独一无二。 如果你的 Tor 浏览器副本拥有独特标记,你的浏览活动可以被反匿名并被追踪,即使你正在使用 Tor 浏览器。

简而言之,所有浏览器的设置与特性都会形成一个叫“浏览器指纹”的东西。 大多数浏览器不经意间为每一个用户创建独一无二的浏览器指纹,那可以被用来在全网追踪该用户。 Tor 浏览器经过专门设计,使其用户之间的指纹几乎相同(我们并不完美!)。 这意味着每一个 Tor 浏览器用户看起来都跟其他 Tor 浏览器用户一样,使得追踪一个单独的用户变得困难。

新的附加组件也有可能增加 Tor 浏览器遭到攻击的几率。 这可能会允许敏感信息被泄露或允许攻击者感染 Tor 浏览器。 甚至可能附加组件本身就被恶意设计用于监视你。

Tor 浏览器预安装了一个附加组件--NoScript--添加任何其他东西都可能使你去匿名化。

想要了解更多关于浏览器指纹的信息?在 Tor 的博客里有一篇文章介绍了有关它的全部信息。

毫无疑问,Tor 浏览器可以帮助人们访问所在地区被封锁的网站。 大多数时候,只需下载 Tor 浏览器,你就可以使用它去访问被屏蔽的网站。 对于网络受到严格审查地区,我们提供多种规避审查的选项,包括可插拔传输

更多信息,请参见Tor 浏览器用户手册中关于审查规避的部分

Tor 浏览器防止人们获知你访问过的网站。 有些机构,例如你的互联网服务提供商,也许会知道你正在使用 Tor 。不过他们将不会知晓你正在使用 Tor 做些什么。

通常,完美的匿名是不可能的,即使用 Tor 也一样。 不过,使用 Tor 以及不在线时,你可以做一些事来提升匿名性。

使用 Tor 浏览器以及特意配置为使用 Tor 的软件

在使用 Tor 时,它并不会保护计算机上所有的互联网流量。 只有当应用程序适当配置为使用 Tor 网络时,Tor 才对其互联网流量提供保护。

网页浏览:

文件分享:

填写网页表单时谨慎选择提供哪些信息

当你使用 Tor 浏览器浏览网站时,他们不知道你是谁或你的真实位置。 很遗憾,许多网站要求填写网页表单,获取了必需之外的个人信息。 如果你登录该网站,他们不知道你的位置,但知道你是谁。 此外,如果你填入了姓名、电子邮件、地址或电话等个人资料,对于该网站來说,你就不再是匿名了。 最好的防护措施就是,填写网页表单时保持警惕和谨慎。

不要在 Tor 上使用 BT

有检测发现,即使设置为使用 Tor,BT 文件分享软件仍忽视代理设置并进行直接连接。 即使只通过 Tor 进行连接,BT 下载软件仍常常在跟踪器 GET 请求中发出真实 IP 地址,因为其工作原理如此。 这样做,不仅 BT 流量和其他同时发送的 Tor 流量将去匿名化,还将拖慢整个 Tor 网络速度,影响所有人的使用。

不要启用或安装浏览器插件

Tor 浏览器将屏蔽 Flash、RealPlayer、Quicktime 等浏览器插件:它们可以被操纵来暴露你的 IP 地址。 同样,不推荐在 Tor 浏览器中安装其他附加组件或插件,因为它们可能绕过 Tor 或损害你的匿名性和隐私。

使用 HTTPS 版的网页

Tor 将对 Tor 网络进入流量与内部流量进行加密,但用户到最终目标网站的流量的加密取决于该网站本身。 为了确保网站进行私人加密, Tor 浏览器提供 HTTPS-Only 模式,可强制支持 HTTPS 的网站使用 HTTPS 加密。 然而,在网站上提交敏感信息时,你仍然应该留意浏览器的 URL 栏,确保显示挂锁洋葱图标,包含https://,并正确显示预期的网站名称。 请查看 EFF 的交互信息图,它解释了Tor 和 HTTPS 之间的关联

在线时不要打开通过 Tor 下载的文档

在外部应用程序自动打开文档之前,Tor 浏览器将提示用户。 不要忽略此警告。 在通过 Tor 下载文档时(尤其是 DOC 和 PDF 文件,除非使用 Tor 浏览器内置的 PDF 查看器),你应该非常小心。打开这些文档时,相关应用程序将下载其中所含的互联网资源,但是没有通过 Tor 网络。 这将泄露未使用 Tor 时你的 IP 地址。 如果必须处理通过Tor下载的文件,强烈建议使用断开连接的电脑,或者使用 dangerzone 来创建可以打开的安全 PDF 文件。 不管怎样,在任何情况下,同时使用BitTorrent 和 Tor 都是不安全的。

使用网桥或寻找同伴

Tor 试图防止攻击者获悉用户连接的目标网站。 然而,在默认情况下,它并不能防止互联网流量监视者获悉你在使用 Tor。 如果你在意上述情况,可配置 Tor 使用网桥,而不是直接连接到 Tor 网络以降低这种风险。 最终,最佳保护策略来自社会化的方法:附近 Tor 用户越多,他们的兴趣越多元,作为其中一员,你就越安全。 说服其他人也使用 Tor!

聪明一点,学习更多。 理解 Tor 能做什么以及不能做什么。 这份隐患清单并不完整,我们需要你的帮助以发现并记录所有问题

除非你知道如何配置 VPN 和 Tor 而不影响隐私,通常,我们不建议将这两者配合使用。

You can find more detailed information about Tor + VPN at our wiki.

当然可以!我们有一个运行 Tor 中继的机构列表。他们将乐于接受你的捐赠,并将其用于提升 Tor 网络的速度和匿名性。

这些机构和 he Tor Project, Inc并不一样,但我们仍认为这是一件好事。 它们的运营者来自 Tor 社区并且非常友好。

请注意,在匿名与性能之间有时需要权衡取舍。 Tor 网络的匿名部分来自多样性。如果你有能力运行中继,相对于捐赠,这将更有助于提升 Tor 的匿名性。 但是另一方面,通过大量的小额捐赠来支持几个较大的中继节点,从宽带规模经济效益上,这对于提升网络性能更为有效。 增加匿名和提升性能都是值得追求的目标,所以选择哪种方式都是非常有用的!

Tor 浏览器目前在Windows, LinuxmacOS 上可用。

这里是 Tor 浏览器的安卓版本,The Guardian Project 也提供了 Orbot app,以在你的设备上通过 Tor 的网络路由其他应用。

There is no official version of Tor Browser for iOS yet, though we recommend Onion Browser.

关于 Tor

Internet 通信基于存储转发模型,可以将其类比为传统邮件:数据以区块形式传输,称为 IP 数据报或数据包。 每个数据包都包含(发送者的)源 IP 地址和(接收者的)目标 IP 地址,类似普通信件,包含发件人和收件人的邮寄地址。 发送者与接收者之间包含多个路由器跃点,其中,每个路由器检查目标 IP 地址,并将数据包转发到靠近目标的下一跃点。 因此,在发送者和接收者之间的每个路由器都知道发送者在和接收者通信。 尤其是本地 ISP,更能够对你的网络活动建立完整的特征分析。 此外,互联网上每台可以看到你任何数据包的服务器,都可以对你的行为进行特征分析。

Tor 的目标在于,通过一系列代理转发你的流量,提高你的隐私。 你的通信经过多层加密,并通过 Tor 网络中多个跃点转发到最终的接收者。 有关该流程的更多细节,请查看可视化展示。 请注意,本地 ISP 只能观察到你正在与 Tor 节点通信。 同样,互联网上的服务器只能看见它们在与 Tor 节点联系。

一般来讲,Tor 的目标是解决三个隐私问题:

首先,Tor 阻止网站和其他服务获得你的位置,它们可用位置构建有关你的习惯和兴趣的数据库。 使用 Tor 时,你的互联网连接自身不会泄露你的信息,因此,现在你可以选择每个连接透露多少信息。

第二,对于本地流量监视者(如你的 ISP,或对你的住处 wifi 或路由器具有访问权限的人),Tor 防止他们监视你从何处获取何种信息。 另外,还能防止他们决定你能够获取和发布什么信息。如果你能访问 Tor 网络的任何部分,你就可以访问互联网上的任何站点。

第三,Tor 通过多个 Tor 中继转发你的连接,因此没有单个中继可以了解你在做什么。 由于这些中继由不同的个人或组织运行,分布式信任比之前的 一跳代理方式具有更高的安全性。

但是,请注意,在某些情况下 Tor 无法完全解决这些隐私问题:详见下方仍存在的攻击

如上所述,如果监听者能够同时监测你和目标网站(或你的 Tor 出口节点),对进出 Tor 网络时的流量进行计时关联是可能的。 Tor 并不能防御这样的威胁模型。

狭义上讲,请注意,如果审查者或执法机构能够获取部分网络的特定流量,通过观察两端的流量并进行计时关联,既有可能验证你与好友经常联系的猜想。 同样,仅对于怀疑目标正在互相通信的验证,这是有用的。 在大多数国家,这种怀疑比计时关联更容易获得搜查令。

此外,由于 Tor 重复使用多个 TCP 连接的线路,在特定出口节点非匿名和匿名流量有可能产生关联,所以应留意哪些应用程序在同时使用 Tor 网络。 也许最好是每个应用程序使用独立的 Tor 客户端。

“Tor” 这一名称可用于多个不同的组件。

Tor 是一个可在你的电脑上运行的程序,为你在互联网上浏览时提供保护。 世界各地志愿者搭建中继,组成分布式网络,用以转发你的通信,以此为你提供保护:防止互联网连接监视者知道你访问了什么网站,并防止网站获取你的地理位置。 这些由志愿者搭建的中继组成了所谓的Tor 网络。

大多数人通过 Tor 浏览器使用 Tor。它是一个基于 Firefox 浏览器开发的版本,并修复了许多隐私问题。 你可以在我们的关于页面了解更多信息。

Tor 项目是一个非盈利性(慈善)组织,它维护和开发 Tor 软件。

Tor 的全称是洋葱路由网络。 在 2001-2002 年,我们开始设计并部署新的下一代洋葱路由。每当我们提到正在搭建洋葱路由时,他们就会说“不错!哪一个洋葱路由?” 虽然洋葱路由已经成为大家熟悉的名词,Tor 实际上来自美国海军实验室 (Naval Research Lab) 的洋葱路由项目

(在德语和土耳其语,这个字还有特别的含义。)

注意:尽管最初来自缩写,Tor 不可以拼写为“TOR”。 只有首字母是大写的。 实际上,一些人常常将其拼错,据此可以推断,他们并未看过我们的网站,并且他们有关 Tor 的全部知识来自新闻上的报道。

不,Tor 不会移除。 你需要的另一个程序,它理解你的应用和协议,并且知道如何清除或“擦除”它发送的数据。 Tor 浏览器尽力确保应用层数据,如用户代理字符串,对所有用户保持相同。 对于用户在表单中输入的文本,Tor 浏览器无能为力。

代理提供商通常在互联网上搭建服务器,然后将其用于转发你的流量。 这是一种简单且易于维护的架构。 所有用户流量的进出都通过同一台服务器。 提供者可以对代理的使用进行收费,或者通过服务器上的广告来支付其成本。 在最简易的配置下,用户无需安装任何东西。 你只需要将你的浏览器指向他们的代理服务器。 如果不想要对自己的在线隐私和匿名进行保护,并且相信提供商不会做坏事,那么简单的代理算是不错的解决方案。 一些简单的代理,通过 SSL 保护你与代理之间的连接,防止本地窃听,比如在咖啡厅使用免费 wifi 的情况。

简易的代理提供商也可能会造成单点故障。 供应商知道你是谁以及你在网上浏览了什么。 他们可以看到你的流量通过他们的服务器。 在某些情况下,在你访问银行或电商网站时,他们转发你的加密流量时,甚至能够查看其中的内容。 你不得不信任你的供应商,相信他们不会监视你的流量,插入他们的广告并且记录你的个人信息。

Tor 至少通过三台不同服务器传输你的流量,之后将其发送到目的地。 由于三个中继中的每个节点都具有单独的加密层,互联网连接的监视者无法修改或读取你的 Tor 网络流量。 在 Tor 客户端(在你的计算机上)与世界各地的出口节点之间,你的流量是经过加密的。

第一台服务器是否知道我是谁?

大概不能。 在三台服务器中,第一台恶意服务器能够看到来自你计算机的加密 Tor 流量。 它仍然不知道你是谁,以及你正在用 Tor 做什么。 它仅仅能看到“这个 IP 地址正在使用 Tor”。 你仍然受到保护,避免该节点发现你是谁以及去哪个网站。

第三台服务器是否看到我的流量?

大概不能。 第三台恶意服务器能够看到你发送到 Tor 的流量。 它不知道谁发送的这些流量。 如果使用了加密传输(例如 HTTPS 协议),它仅能知道目标地点。 为了理解 Tor 和 HTTPS 如何互动,请查看Tor 和 HTTPS 可视化展示。

可以。

Tor 软件是自由软件。 这意味着,我们授予你对 Tor 进行再分发的权利,无论是否修改或收费。 你无需请求我们授予特定许可。

但是,如果想要分发 Tor 软件,你必须遵守我们的许可证规定。 根本上来说,Tor 软件任何部分的分发,都需包含我们的“许可证”文件。

不过,大多数咨询我们的人不仅想要分发 Tor 软件。 他们想分发 Tor 浏览器。 这包含 Firefox 延长支持版和 NoScript 扩展。 同时,你需要遵守这些程序的许可证规定。 这两个 Firefox 扩展都使用 GNU 通用公共许可证进行分发,而 Firefox 延长支持版分发使用的是 Mozilla 公共许可证。 遵守这些许可证规定的最简单方式:凡是包含这些组件的地方,同时包含相应源代码。

同时,应确保你的读者清楚地理解:什么是 Tor、谁是开发者以及提供(以及不提供)哪些功能。 请查看我们的商标常见问题来获取详细信息。

很多应用程序可以搭配 Tor 使用,但我们尚未对它们在应用层的匿名性进行足够的研究,无法对其安全设置提供建议。 在我们的维基页面上,社区成员创建了洋葱化特定应用程序的说明列表。 请补充这个列表,帮助我们保持它的准确性!

大多数人使用 Tor 浏览器,内含通过 Tor 安全浏览网页所需的全部功能。 不推荐其他浏览器与 Tor 一起使用,这样是危险的

Tor 绝对没有后门。

我们认识一些睿智的律师。他们指出,在美国(我们所在的法律管辖区),不太可能有人让我们添加后门。 如果真的有人要求这么做,我们将进行抗争,而且(律师说)我们很可能会赢。

我们绝对不会在 Tor 中放置后门。 我们认为,对于我们的用户而言,在 Tor 中内置后面将是极不负责任的;对于一般的安全软件而言,也将是一个恶劣的先例。 如果我们故意在我们的安全软件中设置了后门程序,那会使我们的专业名誉受损。 没有人再会信任我们的软件,而且理由充足!

尽管如此,仍然存在许多不易觉察的攻击。 可能有人冒充我们,或入侵我们的计算机,或其他类似的事情。 Tor 是开源项目,并且你应经常检查源代码(或至少查看上次发布的代码差异),以确认没有可疑的迹象。 如果我们(或者 Tor 的提供者)未提供源代码获取方式,其中定有蹊跷。 你还应该检查发布文件的 PGP签名,以确保没有人在软件发布网站上动手脚。

同时,Tor 可能出现意外漏洞并影响匿名。 我们定期查找匿名相关的漏洞并进行修复,请确保你的 Tor 是最新版本。

当攻击者能够监视信道两端时,与目前所有实用的低延迟匿名设计一样,Tor 就失效了。 例如,攻击者控制或监视你的 Tor 入口节点,同时控制或监视你访问的网站。 在这种情况下,学术界尚未找到一种实用的低延迟设计,能够可靠地阻止攻击者对两端的数量和计时信息进行关联。

那么,我们应该如何应对? 假设攻击者控制或监视 C 个中继。 假设共有 N 个中继。 如果你每次使用网络时都选择新的入口和出口中继,攻击者将能够对你的所有流量进行关联,概率大概是 (c/n)2 。 但是,对大多数用户来说,特征分析与全程跟踪一样糟糕:他们想要做的事情常常未引起攻击者的注意,并且攻击者关注一次和多次同样不可接受。 因此,选择太多随机的入口和出口,用户将没有机会避免这种攻击者的特征分析。

解决方法是“入口守卫”:每个 Tor 客户端随机选择几个中继作为入口点,并只使用这些中继作为第一跃点。 如果这些中继没有被控制或监视,攻击者就不可能赢,永远不可能,而用户将是安全的。 如果这些中继被监视或控制,攻击者将看到更多一部分用户流量,但用户特征仍然没有比以前更多。 因此,用户仍然有一些机会(大概 (n-c)/n)避免特征分析,而之前几率为零。

了解更多相关信息,可查看 An Analysis of Degradation of Anonymous ProtocolsDefending Anonymous Communication Against Passive Logging Attacks 以及 Locating Hidden Servers(特别推荐)。

另外,入口节点可能有助于预防有些攻击者:通过运行几个 Tor 节点,轻松列举所有 Tor 用户的 IP 地址。 (虽然无法获悉用户通信的目的地,但他们仍然可能仅凭一份用户名单就能做坏事。) 不过,在采用“目录守卫”之前,这一功能并不能真的发挥作用。

Tor 使用各种不同的密钥,有三个目标。1) 加密,以确保Tor 网络内的数据隐私;2) 身份认证,以便客户端知道他们是在与他们想要连接的中继进行通讯;3) 签名,以确保所有客户知道是同一组中继。

加密:首先,所有 Tor 连接使用 TLS 链接加密,因此观察者无法通过流量检测来查看指定数据包属于哪条线路。 此外,Tor 客户端与线路中的每个中继创建临时加密密钥;这些额外的加密层意味着只有出口中继可以读取来自客户端的数据包。 当线路结束时双方都将丢弃密钥,因此,记录流量并入侵中继获取密钥是无效的。

身份验证:每个 Tor 中继都有相应的解密公钥,称为“洋葱密钥 (onion key)”。 每个中继每四周轮换其洋葱密码。 当 Tor 客户端建立线路,在每一步都要求 Tor 中继证明其洋葱密钥的知识。 通过这种方式,线路的第一个节点不能欺骗线路上的其他节点。 由于 Tor 客户端选择连接线路,它可以确保实现 Tor “分布式信任”属性:线路上没有单个中继,能够同时知道客户端以及客户端的目的地。

协调:客户端如何得知哪些是中继,以及如何得知他们的密钥对于中继是否正确? 每个中继都有长期的签名公钥,称为“身份密钥”。 每个目录管理机构都另有一个“目录签名密钥”。 目录管理机构为所有已知中继提供已签名的列表,列出了每个中继的一组证书(由它们的身份密钥自签名),指定了它们的密钥、位置、退出策略等。 所以,除非对手可以控制大多数目录管理机构(截至 2022 年共有 8 个),否则无法欺骗 Tor 客户端使用其他 Tor 中继。

客户端如何知道谁是目录管理机构?

Tor 软件自带内置位置列表以及每个目录管理机构的公钥。 因此,唯一欺骗用户使用虚假 Tor 网络的方法是提供专门修改过的软件版本。

用户如何知道他们获得了正确的软件?

在分发源代码或者程序包时,我们使用 GNU Privacy Guard 进行数字签名。 请查看如何检查 Tor 浏览器签名的说明

为了确定它的签名真的来自我们,你需要亲自与我们见面,获得我们的 GPG 密钥指纹副本,或者你需要认识这样做过的人。 如果你担心这个级别的攻击,我们建议你参与安全社区并与成员互动。

只要线路工作正常,新的 TCP 流将重复使用同一 Tor 线路 10 分钟。 (如果线路发生故障,Tor 将立即切换到新线路。)

但请注意,单个 TCP 流(例如长时间 IRC 连接)一直使用同一线路。 对于单个流,不对线路进行轮换变动。 否则,随着时间的增加,可监视部分网络的对手将获得更多机会(而不是一次),来关联你与目标网站。

Tor 浏览器

数字签名是一个确保某个包由其开发人员生成并且未被篡改的过程。 下面我们将解释为什么这十分重要,以及如何验证你所下载的 Tor 浏览器是由我们创建的,而不是被某些攻击者所修改过的。

我们的下载页面上的每个文件都附有一个标有 “签名”的文件,其名称与软件包相同,扩展名为".asc"。这些 .asc 文件是它们的 OpenPGP 签名。 这些数字签名文件让你验证下载的文件是否就是我们希望你获取的文件。 这将由浏览器而异,但一般来说,你可以通过右键单击“签名”链接并选择“文件另存为”选项来下载该文件。

例如: torbrowser-install-win64-9.0_en-US.exe 是与 torbrowser-install-win64-9.0_en-US.exe.asc一起的。 这些是示例文件名,并不会与你所下载的文件名完全一致。

我们现在展示如何在不同的操作系统上验证下载文件的数字签名。 请注意数字签名是标注该包被签名的时间。 因此,每个新文件上传时,都会生成具有不同日期的新签名。 只要你验证了签名,就不必担心报告的日期可能有所不同。

安装 GnuPG

首先你需要安装 GnuPG 才能验证签名。

对于 Windows 的用户:

如果你使用 Windows, 下载 Gpg4win并运行其安装包。

为了验证签名,你需要在 Windows 命令行(cmd.exe)中输入一些命令。

对于 macOS 的用户:

如果你正在使用 macOS,你可以安装 GPGTools

为了验证签名,你需要在(“应用程序”下的)终端中输入一些命令。

对于 GNU/Linux 的用户:

如果你使用 GNU/Linux,那么可能在你的系统中已经安装了 GnuPG,因为大多数 Linux 发行版都预装了它。

为了验证签名,你需要在终端窗口中输入一些命令。如何进行此操作将取决于你的发行版。

获取 Tor 开发者密钥

Tor 浏览器团队已经为 Tor 浏览器发行版签名。 导入 Tor 浏览器开发者的签名密钥(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 验证你下载的文件。

下面的例子假设你已经下载了这样的两个文件到你的"下载"文件夹。 请注意,这些命令使用的是示例文件名,而你的文件名会有所不同:你下载的版本与 9.0 不同,且你可能没有选择英文(en-US)版本。

对于 Windows 的用户:

gpgv --keyring .\tor.keyring Downloads\torbrowser-install-win64-9.0_en-US.exe.asc Downloads\torbrowser-install-win64-9.0_en-US.exe

对于 macOS 的用户:

gpgv --keyring ./tor.keyring ~/Downloads/TorBrowser-9.0-osx64_en-US.dmg.asc ~/Downloads/TorBrowser-9.0-osx64_en-US.dmg

对于 GNU/Linux 的用户(如果你有32位的包,请将64改为32):

gpgv --keyring ./tor.keyring ~/Downloads/tor-browser-linux64-9.0_en-US.tar.xz.asc ~/Downloads/tor-browser-linux64-9.0_en-US.tar.xz

The result of the command should contain:

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

如果你得到包含 "No such file or directory"的错误信息,要么是前面的某个步骤出了问题,要么是你忘记了这些命令使用的是示例文件名,而你的文件名会与此不同。

Refreshing the PGP key

Run the following command to refresh the Tor Browser Developers signing key in your local keyring from the keyserver. This will also fetch the new subkeys.

gpg --refresh-keys EF6E286DDA85EA2A4BA7DE684E2C6E8793298290

解决方法(使用公钥)

如果你遇到了无法解决的问题,不妨下载并使用这个公钥来代替。或者,你还可以使用以下指令:

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

Tor 浏览器开发者密钥也可在 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 安装包中的默认设置也会为你在你的桌面上创建一个快捷方式,但请注意,你可能无意中取消了创建快捷方式的选项。

如果你在文件夹中找不到,请再次下载并注意询问你下载位置的提示。 选择一个你能简单记住的目录,下载完成后你能在选择的目录中看到 Tor 浏览器文件夹。

每当我们发布一个新的 Tor 浏览器稳定版本,我们都会写一篇博文,详细介绍其新功能和已知问题。 如果你的 Tor 浏览器在更新后开始出现问题,请查看 blog.torproject.org 有关最新稳定版本的 Tor 浏览器的帖子,以查看你的问题是否被列出。 如果你的问题没有被列出,请先访问 Tor 浏览器问题跟踪器 并创建一个 GitLab issue 以描述你所遇到的情况。

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

Our current list of supported languages is:

Language
ﻉﺮﺒﻳﺓ (ar)
Català (ca)
česky (cs)
Dansk (da)
Deutsch (de)
Ελληνικά (el)
English (en)
Español (es)
ﻑﺍﺮﺴﯾ (fa)
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)

Want to help us translate? Become a Tor translator!

你还可以安装并试用 Tor 浏览器 Alpha 测试版,来帮助我们测试即将正式发布的新语言版本。

没有,Tor 浏览器是开源且免费的软件。 任何声称是 Tor 浏览器且强迫你付费的浏览器均是假冒。 为确保你下载的是正版 Tor 浏览器,请访问我们的 Tor 浏览器下载页面。 下载后,你可以通过验证签名以确保你拥有官方版本的 Tor 浏览器。 如果你无法访问我们的网站,那么请访问审查部分,以获得有关下载 Tor 浏览器的其他方式的信息。

你可以在 frontdesk@torproject.org 上举报假冒的 Tor 浏览器

Tor 浏览器目前在Windows, LinuxmacOS 上可用。

这里是 Tor 浏览器的安卓版本,The Guardian Project 也提供了 Orbot app,以在你的设备上通过 Tor 的网络路由其他应用。

There is no official version of Tor Browser for iOS yet, though we recommend Onion Browser.

很不幸,我们目前还没有 Chrome OS 版本的 Tor。 你可以在 Chrome 操作系统上运行 Tor 浏览器安卓版本。 请注意:如果你在 Chrome 操作系统上使用 Tor 移动版,那么你只能浏览网站的移动版(而不是桌面版)。 然而,因为我们没有将软件针对 Chrome 操作系统进行修改,我们不能确定是否所有 Tor 浏览器安卓版的隐私保护功能会运行良好。

抱歉,我们没有官方支持 *BSD 系统上的 Tor 浏览器。 有一个叫做 TorBSD project 的项目,不过他们的 Tor 浏览器并没有得到官方支持。

使用 Tor 浏览器有时会比其他浏览器慢。 Tor 的网络每日有超过一百万的用户浏览,但只有6000多个中继站来路由所有的通信,所以服务器有时会因过载造成延迟。此外,根据我们的设计,你的通信是在世界各地的志愿者服务器上不断传输的,所以一些堵塞和网络延迟总是不可避免的会出现。 你可以通过运行你自己的中继或鼓励他人这样做来帮助提高网络速度。 想要获取更多深入的回答,请参阅 Roger 的话题博客文章Tor 的公开研究专题:2018年版关于网络性能的部分。 也就是说, Tor 比以前快的多了,你未必会注意到和其它浏览器相比的速度变化。

它们的名字很具有误导性,但“隐身模式”(或隐私模式)无法让你在互联网上匿名化。 它们在你关闭浏览器后删除你计算机上所有与你的浏览会话相关的信息,但是它们在隐匿你的网络痕迹方面毫无作为。 这表示一个窃听者可以和任何普通浏览器一样获取你的网络通信流量。

Tor 浏览器不仅提供了所有被遗忘的私人标签的特点,同时还隐藏了所有可以被用来观察网络活动轨迹的源 IP、浏览偏好和设备细节,给用户提供了一个真正的全过程隐蔽的私密浏览体验。

想要了解更多有关匿名模式和私人标签的局限性,请查阅 Mozilla 关于私密浏览常见的谣言一文。

有一些方法可以将 Tor 浏览器设置为你的默认浏览器,但这些方法不一定在所有操作系统中都有效。 Tor 浏览器做了大量工作使它和你的操作系统的其他部分相互隔离,且将其设置为默认浏览器的过程并不可靠。 这意味着一个网站有时会在 Tor 浏览器里加载,有时却会在其他浏览器里加载。这种操作十分危险而且可能暴露你的身份。

我们强烈推荐不要把 Tor 和 Tor 浏览器以外的浏览器搭配使用。 在其它浏览器中使用 Tor 可能会使你置于没有 Tor 浏览器提供的隐私保护的风险中。

你当然可以在使用 Tor 浏览器时使用其它的浏览器。 不过你应该清楚其他浏览器不能提供和 Tor 浏览器一样的隐私保护。 不过在切换浏览器时要多加小心,你也许会不小心在普通浏览器里执行要在 Tor 浏览器中执行的操作。

如果你同时使用 Tor 浏览器和其他浏览器,这不会影响 Tor 的安全性和私密性。

然而,请注意,当你同时使用 Tor 和另一个浏览器时,你的 Tor 活动可能会从其他浏览器被关联到你的非 Tor(真实)IP,只需将你的鼠标从一个浏览器移动到另一个。

或者你可能只是忘记了,不小心用那个非私密浏览器做了一些你本想在 Tor 浏览器中做的事情。

只有 Tor 浏览器的流量会通过 Tor 网络传输。 你操作系统上的其他程序(包括其他的浏览器)的连接不会使用 Tor 网络,也不会被保护。 需要单独配置来使用 Tor。 如果你想确保所有的通信都通过 Tor 的网络进行,请使用 Tail 实时操作系统。你只要用 USB 或是 DVD 就可以在几乎任意电脑上启动它。

我们不建议运行多个 Tor 浏览器实例,在很多平台中这样做可能会导致运行不正常。

Tor 浏览器使用 Firefox ESR 搭建, 所以属于火狐的问题可能会出现。 请确认你只有一个 Tor 浏览器在运行并且你的 Tor 浏览器安装在一个有正确权限的文件夹里。 如果你的电脑正在运行杀毒软件,请参阅我的杀毒/反恶意软件保护程序正阻止我使用 Tor 浏览器,这通常是导致此类问题的主要原因。

Tor 浏览器是 Firefox 的修改版本,专为与 Tor 一起使用而设计。 Tor 浏览器做了很多工作,例如加入强化隐私和安全的补丁。 虽然你可以同时使用 Tor 浏览器和其他的浏览器,但是同时使用其他浏览器会暴露你的身份信息。我们强烈建议你不要使用其他浏览器。 了解更多有关 Tor 浏览器的设计.

Tor 浏览器的书签可以导出、导入、备份、恢复以及从其他浏览器导入。 为了在 Tor 浏览器中管理你的书签,请访问:

  • 汉堡菜单 >> 书签 >> 管理书签 (在菜单下方)
  • 从我的足迹窗口的工具栏中,点击“导入和备份”

要导出书签

  • 选择“导出书签到 HTML”
  • 在导出书签文件的窗口中,选择一个保存文件的路径,文件名默认为 bookmarks.html。桌面通常是存放这些文件的好地方,但放在其他易于记住的位置都可以。
  • 点击保存按钮。导出书签文件的窗口将会关闭。
  • 关闭我的足迹的窗口。

你的书签现在已成功从 Tor 浏览器导出。 保存的书签 HTML 文件现在可以导入到另一个浏览器了。

要导入书签

  • 选择“从 HTML 导入书签”
  • 在导入书签文件的窗口中,转到要导入 HTML 书签的目录,并选择该文件。
  • 点击打开按钮。导入书签文件的窗口将会关闭。
  • 关闭我的足迹的窗口。

你所选中的HTML文件所包含的书签,都将被导入到Tor浏览器的书签收藏夹中。

如果你想备份

  • 选择备份
  • 将打开一个新窗口,你需要选择保存文件的位置。该文件具有 .json 扩展名。

如果你想恢复

  • 选择 "恢复",然后选择你想恢复的书签文件。
  • 在弹出的窗口中点击 “确认”,恭喜你,你刚刚恢复了你的备份书签。

从其他浏览器导入数据

可以从 Firefox 导入书签到 Tor 浏览器。在 Firefox 中,有两种方法可以导出和导入书签。HTML文件或JSON文件。 从浏览器导出数据后,按照上述步骤将书签文件导入到你的 Tor 浏览器。

注意:目前,在 Android 版 Tor 浏览器中, 没有好的方法来导出和导入书签。Bug #31617

当你打开Tor浏览器时,你可以导航到汉堡菜单("≡"),然后点击“设置”,最后点击边栏的“连接”。 在该页面底部,点击“查看 Tor 日志”旁边的“查看日志”按钮。 你能看见一个把日志拷贝到剪切板的选项,然后你就可以将其粘贴到文字编辑器或邮件客户端。

另外,在 GNU/Linux 上可通过终端直接查看日志:打开 Tor 浏览器目录,使用以下命令启动 Tor 浏览器:

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

或将日志保存到文件(默认:tor-browser.log)

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

默认模式下 Tor 浏览器大致用200px x 100px的倍数来打开一个新的窗口以避免屏幕尺寸留下指纹。 其策略是使所有用户看起来都一样,这样就更难识别个别用户。 这种方式将持续生效,直到用户重新设定窗口的尺寸(例如最大化窗口或进入全屏模式)。 Tor 浏览器也为此配备了指纹跟踪防御技术,其名为Letterboxing,由 Mozilla 开发并于 2019 年公布。 它的工作原理是为浏览器窗口添加白色边距,使窗口尽可能地接近用户所需的尺寸,同时使所有用户的屏幕尺寸都是几个相同的类型,防止他们因此被识别出来。

简而言之,这项技术使某些屏幕尺寸的用户变多,使根据屏幕尺寸识别用户变得更加困难,因为许多用户的屏幕尺寸相同。

letterboxing

毫无疑问,Tor 浏览器可以帮助人们访问所在地区被封锁的网站。 大多数时候,只需下载 Tor 浏览器,你就可以使用它去访问被屏蔽的网站。 对于网络受到严格审查地区,我们提供多种规避审查的选项,包括可插拔传输

更多信息,请参见Tor 浏览器用户手册中关于审查规避的部分

有些网站无法分辨普通 Tor 用户和机器人,因而屏蔽了 Tor 用户的访问。 我们能让网站解封 Tor 用户的最成功的手段是让用户直接联系网站管理员。 这么做也许能解决你的问题:

“嗨!我正在使用 Tor 浏览器访问 xyz.com ,不过似乎你们并没有允许 Tor 用户访问。 我建议你重新考虑这个决定;Tor 被世界各地的人用来保护隐私和对抗审查。 封锁 Tor 用户意味着也可能封锁了希望在专制国家自由的浏览互联网的用户,希望隐藏自己避免被发现的研究人员、记者、举报人和社会活动家,或只是希望不被第三方跟踪的普通人。 请采取强硬立场支持数字隐私和互联网自由,以及允许 Tor 用户访问 xyz.com,谢谢。”

另外,银行等比较敏感的网站经常进行地区范围的屏蔽(例如如果你平时只在某个特定的国家使用他们的服务,从其他国家进行访问时你的账号可能就会被冻结)。

如果你不能连接到洋葱服务器,请查阅我无法访问 X.onion!

Tor 浏览器会让你的网络活动看起来像是来自于世界各个不同地区的网络连接。 有时候某些像是银行或电子邮件服务的网站会认为你的帐号被他人盗用了,因此自动将你的帐号锁定。

要解决此情况的唯一方式是利用网站服务提供的帐号恢复功能,或直接向该网站服务的提供业者说明你的情况。

如果你所使用服务的提供商支持比基于 IP 的验证更安全的双因素认证选项的话,你也许能规避这种场景。 联系你的服务提供商询问它们有没有支持双因素验证。

有时你无法在 Tor 浏览器中使用重度依赖 JavaScript 的网站的某些功能。 最简单的修复方法是单击“安全”图标(屏幕右上角的灰色小盾牌),然后单击“更改...” 把安全级别设置为“标准”。

大多数杀毒软件或恶意程序防护软件允许用户将某些进程列入 “白名单”,否则这些进程将被阻止。 请打开你的杀毒软件或恶意程序防护软件,在设置中寻找 “白名单”或类似的东西。 接下来,执行以下步骤:

  • Windows
    • firefox.exe
    • tor.exe
    • obfs4proxy.exe (如果你使用网桥)
    • snowflake-client.exe
  • 对于 macOS
    • Tor 浏览器
    • tor.real
    • obfs4proxy (如果你使用网桥)
    • snowflake-client

最后,重启 Tor 浏览器。 这应该能解决你遇到的问题。 请注意,卡巴斯基之类的杀毒软件可能会在防火墙层面封锁 Tor。

一些杀毒软件在 Tor 浏览器启动时会提示有恶意软件。 如果从我们的主站或使用 GetTor 下载 Tor 浏览器,并进行验证,那么这些都是误报,无需担心。 一些杀毒程序会将没有被大量用户浏览过的文档认定为可疑文件。 为了确保你下载的 Tor 程序是由我们创建并且没有被某些攻击者修改,你可以验证 Tor 浏览器的签名。 你可能还想允许某些进程 以防杀毒软件阻止访问 Tor 浏览器。

你的网络可能屏蔽了 Tor 网络。你应尝试使用网桥。 Tor 浏览器内置了一些网桥,只需几个步骤即可启用。 如需使用可插拔传输,请在首次启动 Tor 浏览器时点击“配置连接”。 在“网桥”部分,找到选项“选择 Tor 浏览器内置网桥”,然后点击“选择内置网桥”。 从菜单中,选择任一想用的可插拔传输

选择可插拔传输工具之后,向上滚动并点击“连接”,保存设置。

或者,如果正在运行 Tor 浏览器,请点击汉堡菜单 (≡) 中的“设置”,然后点击侧边栏中的“连接”。 在“网桥”部分,找到选项“选择 Tor 浏览器内置网桥”,然后点击“选择内置网桥”。 从菜单中选择任一想用的可插拔传输。关闭标签页时,你的设置将自动保存。

如果需要其他的网桥,你可以从网桥站点获取。 关于网桥的更多信息,请参阅 Tor 浏览器用户手册

导致 Tor 浏览器连接失败的最常见问题之一,就是系统时钟错误。 请确认你的系统时钟和时区设置正确。 If this doesn't fix the problem, see the Troubleshooting page on the Tor Browser manual.

有时,当你在 Tor 浏览器上使用 Gmail 时,谷歌会弹出一个提示窗口,提醒你你的账户有可能被盗用了。 这个提示窗口列出了一系列近期在世界范围内被用于登录你账户的 IP 地址和地点。

总而言之,这是一个误报:由于你使用了 Tor 的服务,谷歌会看见多个来自不同地点的登录,所以它希望确认是真实的账号持有者在登录这个账户。

虽然这可能是使用 Tor 的服务带来的意外影响,但这并不意味着你可以彻底忽视这些警告。 这有可能是一个误报,也有可能是真的有人劫持了你的谷歌 cookie,从而盗用了你的账户。

通过直接操控你的计算机,或者监视你的网络通讯,都可以盗取你的cookie。 理论上来说,只有直接在你的电脑上操作,才有可能使你的系统陷入危险,因为毕竟 Gmail 和类似的服务应该只会通过 SSL 协议来传送cookie。 然而不幸的是,在实践中,情况要比这复杂得多

而且,如果有人真的窃取了你的谷歌 cookie,他们最终可能会从不寻常的地方登录(当然他们也可能不会)。因此,总而言之,既然你使用的是 Tor 浏览器,那么谷歌使用的这种安全措施对你来说就没那么有用,因为它总是误报。你必须使用其他方法,比如看看账户上是否有什么东西看起来很奇怪,或者看看最近登录的时间戳,想一想你是否真的在那些时间登录过。

最近,Gmail 的用户可以在他们的账户上开 两步验证来增添一层安全保障。

这是一个已知的、断续出现的问题;它并不意味着谷歌认为 Tor 是间谍软件。

当你使用 Tor 的时候,你正和其他数千名用户共同使用着出口中继。Tor 的用户会在当许多人短时间内同时使用谷歌搜索时看见这条提示。当谷歌看见一个 IP 地址(就是你恰好正在使用的这个出口中继)有大量通信流量时,会认为是有人在试图“爬取”他们的网站,于是会把这个 IP 地址的访问速度暂时地放慢。

你可以尝试“该站点新建线路”,从一个不同的 IP 地址访问该网站。

另一个可能的解释是,谷歌试图检测某些向它发送异常查询的间谍软件或病毒。它记录那些发出异常询问的 IP 地址(但并没有意识到它们是 Tor 的出口中继),然后对任何来自那些 IP 地址的网络链接发出警告,声称它最近的查询记录是病毒感染的结果。

我们认为,谷歌没有特意地针对 Tor 的使用进行删除或拦截。那些声称计算机被病毒感染的错误信息应该在短时间内会消失。

十分不幸,有些网站要求 Tor 用户填写验证码,我们对此无能为力。 最有效的方法往往是联系网站管理员,告诉他们验证码给像你一样的用户带来的不便。

谷歌用地理定位来确定你现在身处何处,以便给你提供更好的个性化体验。这包括了提供它认为你正在使用的语言,以及根据你的搜索呈现不同的结果。

如果你真的想看英文版的 Google,你可以点击提供此内容的链接。不过我们认为这是 Tor 的一项特性,而不是漏洞——互联网并非处处相同,实际上,根据你所在的位置,它看上去确实有所不同。 此功能使人们想起了这一事实。

请注意,谷歌搜索 URL 时将键值对作为参数,其中一个参数名称是“hl”。如果你将“hl”设置为“en”,那么无论你的请求被发送到哪个谷歌服务器,谷歌都将用英语返回搜索结果。更改后的链接可能如下所示:

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

另一个方法是直接使用你的国家代码来访问谷歌。这可以是google.be,google.de,google.us等等。

使用 Tor 浏览器时,没人能看见你在浏览的网站。 不过你的网络提供商或网络管理员也许可以发现你在使用 Tor,但他们无法知道你浏览的具体网站。

Tor 浏览器防止人们获知你访问过的网站。 有些机构,例如你的互联网服务提供商,也许会知道你正在使用 Tor 。不过他们将不会知晓你正在使用 Tor 做些什么。

DuckDuckGo 是 Tor 浏览器的默认搜索引擎。 DuckDuckGo 既不追踪用户,也不存储用户的任何搜索信息。了解更多关于 DuckDuckGo 隐私政策

Tor 浏览器6.0.6及之后版本使用 DuckDuckGo 作为内置搜索引擎。 我们之前在 Tor 浏览器上使用的 Disconnect 现在暂时没有获取谷歌搜索结果的权限。 因为 Disconnect 更像是一个允许用户在不同搜索引擎间来回切换的元搜索引擎,它转而提供了 Bing 的搜索结果,但 Bing 的搜索结果质量往往并不理想。 DuckDuckGo 不记录、收集或共享用户的个人信息或搜索历史,因此最能保护你的隐私。 大多数其他搜索引擎会存储你的搜索记录以及其他信息,例如时间戳、你的 IP 地址和你的帐户信息(如果你已登录)。

请查阅 DuckDuckGo 支持门户。 如果你认为这是 Tor 浏览器的问题,请向我们的问题跟踪器汇报。

Tor 浏览器有两种方法改变你的中继线路 —— “新建身份”和“为该站点使用新 Tor 线路”。 这两个选项都位于汉堡菜单("≡")。 你也可以在 URL 栏中的网站信息菜单内访问“新线路”选项,并通过点击屏幕右上方的闪光小扫帚图标访问“新建身份”选项。

新建身份

如果想要防止用户的前后浏览活动被关联,该选项非常有用。

运行此功能将会关闭所有已经打开的浏览器窗口及标签页,清除所有的浏览器 Cookie 与历史记录等个人信息,并且为后续所有的网络连接创建新的洋葱路由回路。

Tor 浏览器会提示你所有的活动和下载会被终止,在你点击“新建身份”时考虑这一点。

Tor 浏览器菜单

该站点新建 Tor 线路

这个选项在出口节点无法访问你请求的网站或显示不正常时会有用。 选择它会在新的 Tor 线路上加载当前标签页。

在其它标签或窗口打开的相同的网站会在重新加载后使用新的线路。

这个选项不会清除任何私密信息或者取消关联你的活动,也不会影响你当前与其它网站的连接。

该站点新建 Tor 线路

运行 Tor 浏览器不会使你成为网络中的一个中继节点。 这意味着你的电脑不会用于中继其他人的流量。 如果你想搭建一个中继,请查阅我们的 Tor 中继指南

这是 Tor 的正常操作。 你连接的中继回路中的第一个节点通常被称为“入口节点”或是“中转节点"。 它是一个快速且稳定的节点,并且将会在你的中继回路中维持两到三个月,用来抵挡破解匿名攻击。 其余的中继会在你每次访问新网站时改变,这三个 Tor 中继会一起提供完整的隐私保护。 想了解更多关于安全中继站如何工作的信息,请参阅 entry guard 上的这篇博客文章和这篇论文

Tor 浏览器中,每一个新的域名会分配到一条独立的线路。 Tor 浏览器的设计与应用文档更深入地解释了这项设计背后的思考。

强烈不推荐自行修改 Tor 线路。 让 Tor 选择路由会给你带来最高的安全性,修改中继节点可能会破坏你的匿名性。 如果你只想访问只在某些国家或地区提供的服务,你可能更应该去使用 VPN 而不是 Tor。 请注意,VPN 和 Tor 在隐私属性上是有区别的,但是 VPN 可以解决一些区域限制问题。

警告: 千万不要遵循任何让你手动编辑你的torrc 文件的建议/教程! 这样做会使攻击者通过对 torrc 的恶意配置来破坏你的安全性和匿名性。

Tor使用一个叫做 torrc 的文本文件来存储有关于Tor的设置。 默认设置应该能在大多数的Tor用户那里正常工作(因此出现以上警告)。

请按照下方对应你的操作系统的指示找到你的 Tor 浏览器的 torrc

在 Windows 或 Linux 上:

  • torrc 在你的 Tor 浏览器目录里的 Browser/TorBrowser/Data/Tor 目录中可以找到。

在 macOS 中:

  • torrc~/Library/Application Support/TorBrowser-Data/Tor 目录里可以找到。
  • 注意:“资源库”文件夹在较新版 macOS 中是隐藏的。想要在“访达”中打开该文件夹,请选择“前往”中的“前往文件夹…”。
  • 然后在窗口中输入 ~/Library/Application Support/ 并点击“前往”。

在修改你的 torrc 之前关闭Tor 浏览器,否则Tor 浏览器可能会擦除你的修改。 当命令模式选项启动 Tor 时,Tor 浏览器会覆盖掉一些其他选项。

请查看 torrc 示例文件来获取关于常用配置的建议。 想了解其他可供你使用的配置选项,请看 Tor 操作指南页。 记住,在 torrc 中所有以 # 开头的行都会被视为注释并且不会影响 Tor 的配置。

强烈建议不要在 Tor 浏览器上安装新的附加组件,因为这可能会损害你的隐私和安全。

安装新的拓展可能会意外影响 Tor 浏览器,并使得你的 Tor 浏览器的浏览器指纹变得独一无二。 如果你的 Tor 浏览器副本拥有独特标记,你的浏览活动可以被反匿名并被追踪,即使你正在使用 Tor 浏览器。

简而言之,所有浏览器的设置与特性都会形成一个叫“浏览器指纹”的东西。 大多数浏览器不经意间为每一个用户创建独一无二的浏览器指纹,那可以被用来在全网追踪该用户。 Tor 浏览器经过专门设计,使其用户之间的指纹几乎相同(我们并不完美!)。 这意味着每一个 Tor 浏览器用户看起来都跟其他 Tor 浏览器用户一样,使得追踪一个单独的用户变得困难。

新的附加组件也有可能增加 Tor 浏览器遭到攻击的几率。 这可能会允许敏感信息被泄露或允许攻击者感染 Tor 浏览器。 甚至可能附加组件本身就被恶意设计用于监视你。

Tor 浏览器预安装了一个附加组件--NoScript--添加任何其他东西都可能使你去匿名化。

想要了解更多关于浏览器指纹的信息?在 Tor 的博客里有一篇文章介绍了有关它的全部信息。

Flash 在Tor 浏览器中被关闭,并且我们推荐你不要打开它。 我们认为 Flash 在任何浏览器上都是是极不安全的 —— 它可以轻易盗取你的个人信息或者给你安装恶意软件。 幸运的是,大多数网站、设备,还有其它浏览器都正在淘汰 Flash。

如果你使用 Tor 浏览器,你可以在连接设置中设置你的代理地址、端口和认证信息。

如果你以另一种方式使用 Tor,你可以在你的 torrc 文件中设置代理信息。查看手册页面中的HTTPSProxy配置选项。如果你的代理需要认证,请参阅HTTPSProxyAuthenticator选项。认证的例子:

  HTTPSProxy 10.0.0.1:8080
  HTTPSProxyAuthenticator myusername:mypass

我们目前只支持 Basic auth,但如果你需要 NTLM 认证,你可能会发现档案中的这个帖子很有用。

关于使用 SOCKS 代理,请参见Socks4ProxySocks5Proxy,以及手册页面中的相关 torrc 选项。使用已认证的 SOCKS 5 代理可能看起来就像这样:

  Socks5Proxy 10.0.0.1:1080
  Socks5ProxyUsername myuser
  Socks5ProxyPassword mypass

如果你的代理服务器只允许你接入特定的端口,请查看被防火墙阻挡的客户,获悉如何限制你的 Tor 浏览器接入的端口。

请查阅 HTTPS Everywhere 常见问题. 如果你认为这是 Android 版 Tor 浏览器的问题,请向我们的问题跟踪器汇报。

Tor 浏览器 11.5 版本起,桌面版默认启用 HTTPS-Only 模式,且 HTTPS Everywhere 不再与 Tor 浏览器捆绑在一起使用。

如果你的防火墙是通过阻止端口工作的,那么你可以告诉 Tor 在你启动 Tor 浏览器时只使用这些端口。 你也可以通过在你的 torrc 配置文件中添加 "FascistFirewall 1"来添加你的防火墙所允许的端口。 默认情况下,当你设置这个选项时,Tor 假设你的防火墙只允许 80 端口和 443 端口(分别为 HTTP 和 HTTPS)。 你可以用 FirewallPorts torrc 选项选择一组不同的端口。 如果你想更加精细地控制,你也可以使用 ReachableAddresses 配置选项,例如:

ReachableDirAddresses *:80
ReachableORAddresses *:443

因为禁用 JavaScript 会让很多网站无法工作, Tor 浏览器内置的 NoScript 默认允许 JavaScript。 默认禁用 JavaScript 造成的不便过于严重,也许会让大多数用户直接放弃使用 Tor 。 原则上来说,我们不仅想让 Tor 浏览器尽可能安全,还想让大多数人都可以使用。所以按照目前状态, Tor 浏览器会继续默认启用 JavaScript。

对于想要在所有的 HTTP 网站上默认关闭 JavaScript 的用户,我们建议你更改 Tor 浏览器中“安全级别“的选项。 这可以通过导航安全图标(屏幕右上角的灰色小盾牌),然后单击“更改...”来完成。 “标准”级别允许 JavaScript,“更安全”级别阻止 HTTP 站点上的 JavaScript,而“最安全”级别则完全阻止 JavaScript。

可以。Tor 可以被配置为另一台机器上的客户端或中继器,并允许其他机器能够连接到它以实现匿名化。 这在一个许多计算机希望有一个与世界其他地方相通的匿名网关的环境中是最有用的。 然而,请注意,通过这种配置,你的私人网络内的任何人(存在于你和 Tor 客户端/中继之间)都可以看到你正在发送的明文流量。 在你到达 Tor 中继之前,你并没有匿名化。 正因为如此,如果你是你的域名的控制者,而且你知道一切都被封锁了,你就没事,但这种配置可能不适合大型私人网络,因为安全是重中之重。

配置很简单,按照下面的例子编辑你的 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

在这之后,你的客户端在他们各自的网络/子网会指定一个 socks 代理,地址和端口是你指定的 SocksListenAddress。 请注意,SocksPort 配置选项只给出了 localhost(127.0.0.1)的端口。 当设置你的 SocksListenAddress(es) 时,你需要提供端口与地址,如上所示。 如果你对强迫所有传出的数据通过中央 Tor 客户端/中继,而不是服务器只是一个可选的代理感兴趣,你可能会发现 iptables 程序(用于*nix)很有用。

默认情况下,你的 Tor 客户端只监听从本地主机连接的应用程序。 来自其他计算机的连接会被拒绝。 如果你想在与 Tor 客户端不同的电脑上的应用程序配置 Tor,你应该编辑你的 torrc 来定义SocksListenAddress 0.0.0.0,然后重新启动(或唤醒)Tor。 如果你想更高级一些,你可以在防火墙上配置你的 Tor 客户端,以绑定你的内部 IP,但不绑定你的外部 IP。

请查阅 NoScript 常见问题. If you believe this is a Tor Browser issue, please report it on our bug tracker.

移动版 Tor

尽管Tor 浏览器安卓版和Orbot都很棒,他们有着不同的用途。 Android 版 Tor 浏览器与桌面版的 Tor 浏览器相似,但是它运行在你的移动设备上。 它是一个使用 Tor 网络的一站式浏览器,并试图尽可能做到匿名化。 另一方面,Orbot 是一个代理,使你能够通过 Tor 网络发送你的其他应用程序(电子邮件客户端,即时通讯应用程序等)的数据;Orbot 的一个版本也内置于 Android 版 Tor 浏览器内,并使其能够连接到 Tor 网络。 然而你不能使用这个版本来用除 Tor 浏览器以外的其他应用发送数据。 根据你所想使用 Tor 网络的方式,这其中的一个或两个都可能是一个很好的选择。

它将会,_很快_可用。 同时,你还可以启用守卫计划的第三方库,来使用 F-Droid 下载安卓的 Tor 浏览器。

学习如何向 F-Droid 添加第三方库

对于 iOS,推荐使用开源的 Onion Browser。该应用使用 Tor 网络,而且由与 Tor Project 密切合作的人员开发。 但是,Apple 要求 iOS 上的浏览器使用 Webkit ,因此 Onion Browser 无法提供与 Tor 浏览器相同的隐私保护。

了解更多有关 Onion Browser 的消息。 在 App Store 中下载 Onion Browser。

守卫计划对 Orbot(以及其他隐私保护的软件)的安卓版本进行维护。你可以在守卫计划官网上获得更多详细信息。

没错,这是一个特地为安卓设计的 Tor 浏览器版本。你只需要安装安卓版本的 Tor 浏览器就可以在你的安卓设备上运行 Tor 了。

守卫计划提供了一个叫 Orbot 的应用,帮助你在安卓设备上用 Tor 的网络路由其他应用。然而如果你只需要用 Tor 来浏览网络的话,那么安装一个安卓版本的 Tor 浏览器就足够了。

目前还没有支持在老式 Windows Phones 上运行 Tor 浏览器的方法,但如果是较新的 Microsoft 品牌/推广的手机,可以按照 Android版 Tor 浏览器的相同步骤进行。

连接 Tor

如果连接出现问题,将弹出错误信息,可选择“复制 Tor 日志到剪贴板”选项。 然后粘贴 Tor 日志到文本文件或者其他格式的文档。

如果你没有看到这个选项,打开 Tor 浏览器,找到汉堡菜单("≡"),然后点击“设置”,最后点击侧栏的“连接”。 在该页面底部,点击“查看 Tor 日志”旁边的“查看日志”按钮。

另外,在 GNU/Linux 上可通过终端直接查看日志:打开 Tor 浏览器目录,使用以下命令启动 Tor 浏览器:

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

或将日志保存到文件(默认:tor-browser.log)

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

应看到以下常见的日志错误(在 Tor 日志中查找以下信息):

常见日志错误 #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")

如果 Tor 日志显示以上类似信息,这表示连接 SOCKS 代理失败。 如果你的网络设置需要 SOCKS 代理,请确保正确输入代理详情。 如果不需要 SOCKS 代理,或者不确定,请尝试不用 SOCKS 代理连接 Tor 网络。

常见日志错误 #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.

如果 Tor 日志显示以上类似信息,这表示 Tor 无法连接到 Tor 线路的第一个节点。 这可能表示,你所用的网络受到了审查。

请尝试通过网桥连接,这应该能解决问题。

常见日志错误 #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)

如果 Tor 日志显示以上类似信息,这表示 Tor 无法完成与目录服务器的 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 日志显示以上类似信息,这表示你的系统时钟出错。 请确保系统时钟设置正确,包括正确的时区,然后重启 Tor。

导致 Tor 浏览器连接失败的最常见问题之一,就是系统时钟错误。 请确认你的系统时钟和时区设置正确。 If this doesn't fix the problem, see the Troubleshooting page on the Tor Browser manual.

代理服务器出错存在多种原因。 出现该错误时,请尝试以下一项或多项操作:

  • 如果你安装了杀毒软件,它可能干扰 Tor 服务,请禁用杀毒软件并重启 Tor 浏览器。
  • 不应将 Tor 浏览器文件夹从初始位置移动至其他地方。 如果已移动,请将其还原。
  • 检查连接端口。尝试与当前所用不同的端口,如 9050 或 9150。
  • 如果以上方法都无效,重新安装浏览器。这一次,请确保将 Tor 浏览器安装到新目录,而不是覆盖之前已安装的浏览器。

如果错误仍然存在,请与我们联系

If you cannot reach the onion service you desire, make sure that you have entered the 56-character onion address correctly; even a small mistake will stop Tor Browser from being able to reach the site. 如果你仍然无法访问这个洋葱服务,请稍后重试。 有可能是网络连接有出现暂时性阻碍,或者是该网站的管理员在没有提示的情况下关闭了网站。

You can also ensure that you're able to access other onion services by connecting to DuckDuckGo's onion service.

审查

如果你无法通过我们的网站下载 Tor 浏览器,你可以通过 GetTor 获取一份 Tor 浏览器的副本。 GetTor 是一项通过不同方式自动回复最新版 Tor 浏览器下载链接的服务。这些链接由不同处所托管,例如 Dropbox 、Google Drive 和 GitHub. You can request via email or Telegram bot https://t.me/gettor_bot. You can also download Tor Browser from https://tor.eff.org or from https://tor.calyxinstitute.org/.

给 gettor@torproject.org 发送一封电子邮件。 在邮件的正文中,写上你的操作系统的名称(如 Windows 、macOS 或 Linux)。 GetTor 将回复一封电子邮件,其中包含 Tor 浏览器的下载链接、加密签名(用于验证下载的文件)、用于签名的密钥指纹以及软件包的校验和。 你也许需要选择“32 位”或“64 位”版本:这和你的电脑有关,你可能需要查阅你电脑的说明书或与制造商联系来了解更多信息。

Twitter 的 GetTor 目前正在维护中。请使用电子邮件代替。

毫无疑问,Tor 浏览器可以帮助人们访问所在地区被封锁的网站。 大多数时候,只需下载 Tor 浏览器,你就可以使用它去访问被屏蔽的网站。 对于网络受到严格审查地区,我们提供多种规避审查的选项,包括可插拔传输

更多信息,请参见Tor 浏览器用户手册中关于审查规避的部分

如果连接出现问题,将弹出错误信息,可选择“复制 Tor 日志到剪贴板”选项。 然后粘贴 Tor 日志到文本文件或者其他格式的文档。

如果你没有看到这个选项,打开 Tor 浏览器,找到汉堡菜单("≡"),然后点击“设置”,最后点击侧栏的“连接”。 在该页面底部,点击“查看 Tor 日志”旁边的“查看日志”按钮。

另外,在 GNU/Linux 上可通过终端直接查看日志:打开 Tor 浏览器目录,使用以下命令启动 Tor 浏览器:

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

或将日志保存到文件(默认:tor-browser.log)

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

应看到以下常见的日志错误(在 Tor 日志中查找以下信息):

常见日志错误 #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")

如果 Tor 日志显示以上类似信息,这表示连接 SOCKS 代理失败。 如果你的网络设置需要 SOCKS 代理,请确保正确输入代理详情。 如果不需要 SOCKS 代理,或者不确定,请尝试不用 SOCKS 代理连接 Tor 网络。

常见日志错误 #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.

如果 Tor 日志显示以上类似信息,这表示 Tor 无法连接到 Tor 线路的第一个节点。 这可能表示,你所用的网络受到了审查。

请尝试通过网桥连接,这应该能解决问题。

常见日志错误 #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)

如果 Tor 日志显示以上类似信息,这表示 Tor 无法完成与目录服务器的 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 日志显示以上类似信息,这表示你的系统时钟出错。 请确保系统时钟设置正确,包括正确的时区,然后重启 Tor。

网桥指未在 Tor 公共目录里列出的 Tor 中继节点。

这意味着,屏蔽 Tor 网络的政府或 ISP 无法彻底屏蔽所有网桥。 对于暴虐政权下的用户或者想要更多安全性的人们,网桥非常有用,因为他们担心有人会发现自己在使用 公开的 Tor 中继 IP 地址。

网桥不过时普通的中继,只是配置稍有不同。 请参阅如何运行网桥以获取相关指南。

一些国家,包括中国和伊朗,已经找到探测和屏蔽 Tor 网桥的方法。 Obfsproxy网桥通过增加一层混淆来解决这个问题。 运行 obfsproxy 网桥需要一些额外的软件包和配置。 更多信息,请参阅可插拔传输页面。

Snowflake 是 Tor 浏览器提供的可插拔传输根据,用于突破网络审查。 和 Tor 网桥一样,当普通 Tor 连接被屏蔽时,用户可以借助 Snowflake 访问开放互联网。 在 Tor 浏览器中使用 Snowflake 非常容易,类似于切换到新的网桥。

这个系统由三个部分组成:运行 Snowflake 代理的志愿者,想要连接到互联网的 Tor 用户,以及向用户分发 Snowflake 代理的中转站。

如果愿意帮助受审查用户,志愿者可在常规浏览器上搭建临时代理。请查看怎么使用 Snowflake?

Snowflake 使用非常有效的域名前置技术,可连接由成千上万的志愿者运营的 Snowflake 代理服务器。 这些临时的轻量代理易于搭建。相对于之前的技术,Snowflake 更容易进行扩展。

对于受到被审查的用户,如果你的 Snowflake 代理被屏蔽,中转站将自动为你寻找新的代理。

如果你对技术细节和规范感兴趣,请参阅 Snowflake 技术概述项目页面。 有关 Snowflake 的其他讨论,请访问 Tor 论坛并关注 Snowflake 标签

在所有平台的 Tor 浏览器稳定版中,都可以使用 Snowflake:Windows、macOS、GNU/Linux 和 Android。 你也可以在 iOS 上的 Onion Browser来使用 Snowflake。

如果第一次运行桌面版 Tor 浏览器,你可以在启动屏幕上点击“配置连接”。 在“网桥”部分,找到选项“选择 Tor 浏览器内置网桥”,然后点击“选择内置网桥”。 From the menu, select 'Snowflake'. 选择 Snowflake 之后,向上滚动并点击“连接”以保存你的设置。

在浏览器内,你可以点击汉堡菜单("≡"),然后点击“设置”并打开“连接”。 Alternatively, you can also type about:preferences#connection in the URL bar. 在“网桥”部分,找到选项“选择 Tor 浏览器内置网桥”,然后点击“选择内置网桥”。 From the menu, select 'Snowflake'.

如果你的互联网连接没有受到审查,你应考虑安装 Snowflake 扩展,以帮助受审查网络中的用户。 当你在普通浏览器上运行 Snowflake 时,你将作为代理,提供用户到 Tor 网络入口节点之间的连接。运行 Snowflake 你就是这么简单。

附加组件

首先确认你已启用 WebRTC。 然后你可以安装这个 Firefox 附加组件Chrome 扩展程序,这将使你成为 Snowflake 代理。 它还可以显示,在过去 24 小时内你帮助了多少人。

网页

在启用 WebRTC 的浏览器中: 如果不想在浏览器中添加 Snowflake,你可以访问 https://snowflake.torproject.org/embed ,并点击按钮以选择成为代理。 如果想要继续运行 Snowflake 代理,请勿关闭那个页面。

中国用户需额外步骤绕过防火长城连接到 Tor 网络。

To get an updated version of Tor Browser, try the Telegram bot first: https://t.me/gettor_bot. If that doesn't work, you can send an email to gettor@torproject.org with the subject "windows", "macos", or "linux" for the respective operating system.

After the installation, Tor Browser will try to connect to the Tor network. If Tor is blocked in your location, Connection Assist will try to automatically connect using a bridge or Snowflake. But if that doesn't work, the second step will be to obtain a bridge that works in China.

在中国使用 Tor 有三种选项:

  1. Snowflake使用临时代理连接到 Tor 网络。 It's available in Tor Browser and other Tor powered apps like Orbot. 你可以从 Tor 浏览器的内置网桥菜单中选择 Snowflake。
  2. 未公开的私密 obfs4 网桥:找到我们的 Telegram 机器人 @GetBridgesBot 并发送 /bridges 来获取网桥。 Or send an email to frontdesk@torproject.org with the phrase "private bridge cn" in the subject of the email. 如果你懂些计算机技术,可以自己在中国境外搭建并运行 obfs4 网桥。 需要注意的是,通过 BridgeDB 获取的网桥以及 Tor 浏览器内置的 obfs4 网桥,很可能无法使用。
  3. meek-azure:能让你伪装成访问微软的网站,而不是 Tor。 不过,因带宽限制这种网桥连接较慢。 你可以在 Tor 浏览器的内置网桥下拉菜单中选择 meek-azure。

如果以上某个选项无法使用,请查看 Tor 日志并尝试其他方法。

If you need help, you can also get support on Telegram https://t.me/TorProjectSupportBot and Signal.

你的网络可能屏蔽了 Tor 网络。你应尝试使用网桥。 Tor 浏览器内置了一些网桥,只需几个步骤即可启用。 如需使用可插拔传输,请在首次启动 Tor 浏览器时点击“配置连接”。 在“网桥”部分,找到选项“选择 Tor 浏览器内置网桥”,然后点击“选择内置网桥”。 从菜单中,选择任一想用的可插拔传输

选择可插拔传输工具之后,向上滚动并点击“连接”,保存设置。

或者,如果正在运行 Tor 浏览器,请点击汉堡菜单 (≡) 中的“设置”,然后点击侧边栏中的“连接”。 在“网桥”部分,找到选项“选择 Tor 浏览器内置网桥”,然后点击“选择内置网桥”。 从菜单中选择任一想用的可插拔传输。关闭标签页时,你的设置将自动保存。

如果需要其他的网桥,你可以从网桥站点获取。 关于网桥的更多信息,请参阅 Tor 浏览器用户手册

有些网站无法分辨普通 Tor 用户和机器人,因而屏蔽了 Tor 用户的访问。 我们能让网站解封 Tor 用户的最成功的手段是让用户直接联系网站管理员。 这么做也许能解决你的问题:

“嗨!我正在使用 Tor 浏览器访问 xyz.com ,不过似乎你们并没有允许 Tor 用户访问。 我建议你重新考虑这个决定;Tor 被世界各地的人用来保护隐私和对抗审查。 封锁 Tor 用户意味着也可能封锁了希望在专制国家自由的浏览互联网的用户,希望隐藏自己避免被发现的研究人员、记者、举报人和社会活动家,或只是希望不被第三方跟踪的普通人。 请采取强硬立场支持数字隐私和互联网自由,以及允许 Tor 用户访问 xyz.com,谢谢。”

另外,银行等比较敏感的网站经常进行地区范围的屏蔽(例如如果你平时只在某个特定的国家使用他们的服务,从其他国家进行访问时你的账号可能就会被冻结)。

如果你不能连接到洋葱服务器,请查阅我无法访问 X.onion!

HTTPS

简单来说:你可以使用 Tor 浏览普通的 HTTPS 网站。

HTTPS 连接被用于确保计算机网络中的通信安全。 你可以在这里阅读更多有关 HTTPS 的信息。 Tor浏览器的 HTTPS-Only 模式自动将成千上万的网站从未加密的"HTTP "切换到更私密的"HTTPS"。

Tor 浏览器防止窃听者获知你访问过的网站。 不过,出口节点和出口节点与目标网站之间的监听者能看到通过 HTTP 协议传输的未加密的内容。 如果你访问的网站使用了 HTTPS,你的流量在离开出口节点时是加密的,不会被窃听者看到。

下方的可视化图例呈现了使用和未使用 Tor 浏览器和 HTTPS 加密连接时,哪些数据对网络监听者是可见的:

  • 点击“Tor”按钮显示:在使用 Tor 时网络监听者可看到哪些数据。该按钮变绿表示 Tor 已启动。
  • 点击“HTTPS”按钮显示:在使用 HTTPS 时网络监听者可看到哪些数据。该按钮变绿表示 HTTPS 已启动。
  • 两个按钮都是绿色时,你可以看到在两种功能同时启动的状态下,哪些数据对于网络监听者可见。
  • 两个按钮都是灰色时,你可以看到在两种功能都没有启动的状态下,哪些数据对于网络监听者可见。



潜在可见数据
Site.com
正在访问的网站。
用户名/密码
用于身份验证的用户名和密码。
数据
正在传输的数据。
位置
计算机用于访问网站的网络位置(公网 IP 地址)。
Tor
无论是否使用 Tor。

中继运营人员

我们旨在让搭建一个Tor 中继简单而又边界:

  • 如果中继有时下线,这并没有关系。 目录系统会迅速注意到这一点,并停止发布该中继。 但请试图确保这并不会太频繁地发生,因为当中继断连时,正在使用该中继进行的连接也会断开。
  • 每个 Tor 中继服务器都有一个出口法规则,它详细规定了中继服务器应该同意什么样的外部连接,或是拒绝什么样的外部连接。 如果你不喜欢允许别人的流量经由你的中继出口,你可以设置成仅允许从其他 Tor 中继的连接。
  • 你的中继服务器会被动地估计并公布它最近的带宽容量,所以高带宽的中继服务器会比低带宽服务器吸引更多的用户。因此,拥有低带宽中继服务器也是有用的。

当一个出口被错误地配置了,或是一个恶意出口,它会被分配给损坏出口标志。这会让 Tor 避免将那个中继服务器作为出口。事实上,有着这个标志的中继服务器就相当于不存在。 如果你有了这个旗帜标志,那么说明我们在从你的出口节点路由通信时发现了问题或可疑活动,但无法联系上你。请与问题中继服务器团队 取得联系,这样我们才能整治问题。

关于如何用你的 NAT/路由设备进行端口转发的指导,参见 portforward.com

如果你的中继在内网运行,你需要设置端口转发。 转发 TCP 连接取决于系统,但配有防火墙的客户端 FAQ 条目提供了一些关于如何做的例子。

另外,这里也有一个说明如何在 GNU/Linux 下使用 iptables 操作的例子:

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

如果你有不同的(连接到互联网的)外部接口,你可能需要改动"eth0"。 因为你可能只有一个(除了环回接口)所以这应该不难找。

Why Relay Load Varies

Tor manages bandwidth across the entire network. It does a reasonable job for most relays. But Tor's goals are different to protocols like BitTorrent. Tor wants low-latency web pages, which requires fast connections with headroom. BitTorrent wants bulk downloads, which requires using all the bandwidth.

We're working on a new bandwidth scanner, which is easier to understand and maintain. It will have diagnostics for relays that don't get measured, and relays that have low measurements.

Why does Tor need bandwidth scanners?

Most providers tell you the maximum speed of your local connection. But Tor has users all over the world, and our users connect to one or two Guard relays at random. So we need to know how well each relay can connect to the entire world.

So even if all relay operators set their advertised bandwidth to their local connection speed, we would still need bandwidth authorities to balance the load between different parts of the Internet.

What is a normal relay load?

It's normal for most relays to be loaded at 30%-80% of their capacity. This is good for clients: an overloaded relay has high latency. (We want enough relays to so that each relay is loaded at 10%. Then Tor would be almost as fast as the wider Internet).

Sometimes, a relay is slow because its processor is slow or its connections are limited. Other times, it is the network that is slow: the relay has bad peering to most other tor relays, or is a long distance away.

Finding Out what is Limiting a Relay

Lots of things can slow down a relay. Here's how to track them down.

System Limits

  • Check RAM, CPU, and socket/file descriptor usage on your relay

Tor logs some of these when it starts. Others can be viewed using top or similar tools.

Provider Limits

  • Check the Internet peering (bandwidth, latency) from your relay's provider to other relays. Relays transiting via Comcast have been slow at times. Relays outside North America and Western Europe are usually slower.

Tor Network Limits

Relay bandwidth can be limited by a relay's own observed bandwidth, or by the directory authorities' measured bandwidth. Here's how to find out which measurement is limiting your relay:

  • Check each of the votes for your relay on consensus-health (large page), and check the median. If your relay is not marked Running by some directory authorities:
    • Does it have the wrong IPv4 or IPv6 address?
    • Is its IPv4 or IPv6 address unreachable from some networks?
    • Are there more than 2 relays on its IPv4 address?

Otherwise, check your relay's observed bandwidth and bandwidth rate (limit). Look up your relay on Metrics. Then mouse over the bandwidth heading to see the observed bandwidth and relay bandwidth rate.

Here is some more detail and some examples: Drop in consensus weight and Rampup speed of Exit relay.

How to fix it

The smallest of these figures is limiting the bandwidth allocated to the relay.

  • If it's the bandwidth rate, increase the BandwidthRate/Burst or RelayBandwidthRate/Burst in your torrc.
  • If it's the observed bandwidth, your relay won't ask for more bandwidth until it sees itself getting faster. You need to work out why it is slow.
  • If it's the median measured bandwidth, your relay looks slow from a majority of bandwidth authorities. You need to work out why they measure it slow.

Doing Your Own Relay Measurements

If your relay thinks it is slow, or the bandwidth authorities think it is slow, you can test the bandwidth yourself:

  • Run a test using tor to see how fast tor can get on your network/CPU.
  • 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.

你有两种添加至 torrc 的方法:

带宽率是指条件允许的情况下,最大的长时间传输带宽(字节每秒)。 For example, you might want to choose "BandwidthRate 10 MBytes" for 10 megabytes per second (a fast connection), or "BandwidthRate 500 KBytes" for 500 kilobytes per second (a decent cable connection). 最小的 BandwidthRate 是 75KB 每秒。

BandwidthBurst是一个字节池,用于满足短期流量高于 BandwidthRate 但长期平均流量低于 BandwidthRate 的需求。 如果最近还未达平均水平且在速率低但爆发高的情况下,就会出现长期平均的情况,同时在高峰期仍允许更多的流量 。 比如,如果你选择了“带宽突发传输率 500KBytes” 并应用到你的带宽率,那么你的网速就永运不会超过50万字节每秒;但如果你选择了一个更高的带宽突发传输率(如5 MBytes),它就会允许更多的数据通过,直到资源池已满。

如果你有非对称连接(上传小于下载),比如一个电缆调制解调器,你应该把带宽率设置为小于较小带宽(通常是上传带宽)。 否则,你可能会在最大带宽使用时丢包——你可能需要实验哪些值使你的连接通畅。 然后设置BandwidthBurst与BandwidthRate相同。

基于 Linux 系统的 Tor 节点提供了另外一种选择:他们会优先将Tor置于其他运行网络之下,因此他们的私人网络运作不会被 Tor 影响。 在 Tor 源码发行版的 contrib 目录中可以找到一个执行此操作的脚本

此外,还有一些休眠选项,你可以要求 Tor 在每个时间段只提供一定量的带宽(比如每月 100 GB)。这些在休眠条目中有所涉及。

请注意,带宽率和带宽突发传输率都是以字节而不是比特为单位的。

简而言之,它这样工作:

  • There is a primary ed25519 identity secret key file named "ed25519_master_id_secret_key". 这是最重要的一个,所以请确保你在安全的地方存有备份——这份文件十分敏感,应得到充分保护。 如果你手动生成它,Tor 会对它进行加密并在被要求时输入密码。
  • 一个叫"ed25519_signing_secret_key"的中期签名密钥已经被生成,供Tor 使用。 Also, a certificate is generated named "ed25519_signing_cert" which is signed by the primary identity secret key and confirms that the medium term signing key is valid for a certain period of time. 默认有效期为30天,但这个时长可以在torrc里通过设置" 签名密钥有效时间 N 天|周|月 "来自行调节。
  • There is also a primary public key named "ed25519_master_id_public_key", which is the actual identity of the relay advertised in the network. This one is not sensitive and can be easily computed from "ed5519_master_id_secret_key".

Tor will only need access to the medium term signing key and certificate as long as they are valid, so the primary identity secret key can be kept outside DataDirectory/keys, on a storage media or a different computer. 你不得不在中期签名密钥和认证过期前手动更新它们,否则中继服务器上的Tor 进程会在到期时立刻退出。

这个功能是可选的,你不需要使用它除非你想这么做。 If you want your relay to run unattended for longer time without having to manually do the medium term signing key renewal on regular basis, best to leave the primary identity secret key in DataDirectory/keys, just make a backup in case you'll need to reinstall it. 如果你想要使用这个特殊功能,请参考我们在这个话题上更详细的指南

如果你的中继才刚刚开始运行,请给它一些时间。 Tor 根据带宽权威机构的报告来决定使用哪个中继服务器。这些机构测量你的中继服务器的容量,并随着时间推移,引导更多的通讯流量至你的中继服务器,直到它达到最佳运载量。 一个新的中继服务器的生命周期在这个博客帖子 里解释的更为详尽。 如果你运行中继服务器已经有一段时间了,并仍然有疑问,那么请尝试在tor-中继服务器名单 上提问。

  • 不要使用 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 -
    
  • 运行下面的命令来检查签名并安装 tor:
     ‪$ sudo apt-get update
     ‪$ sudo apt-get install tor deb.torproject.org-keyring
    

On relay search we show an amber dot next to the relay nickname when it is overloaded. This means that one or many of the following load metrics have been triggered:

Note that if a relay reaches an overloaded state we show it for 72 hours after the relay has recovered.

假若发生节点过载,请执行以下步骤:

  1. https://status.torproject.org/ 的“Tor 网络”(Tor Network)分类检查任何已知问题。

  2. 考虑为你的系统调整 sysctl 优化网络,内存和 CPU 负载。

  3. 请考虑启用 MetricsPort 了解实际情况。

调整 sysctl 优化网络,内存和 CPU 负载

TCP port exhaustion

If you are experiencing TCP port exhaustion consider expanding your local port range. You can do that with

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

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

Keep in mind that tuning sysctl as described is not permanent and will be lost upon restart. You need to add the configuration to /etc/sysctl.conf or to a file in /etc/sysctl.d/ to make it permanent.

MetricsPort

To understand the well-being of Tor relays and the Tor network it is vital to provide and have access to relay metrics. Relay overload information has been added to relay descriptors since 0.4.6+ but it was not until Tor >= 0.4.7.1-alpha that an interface to the underlying relay metrics was available: the metrics port.

Enabling MetricsPort

Tor provides access to the metrics port via a torrc configuration option called MetricsPort.

It's important to understand that exposing the tor MetricsPort publicly is dangerous for the Tor network users, which is why that port is not enabled by default and its access has to be governed by an access policy. Please take extra precaution and care when opening this port, and close it when you are done debugging.

Let's assume you are the only user on a server that runs a Tor relay. You can enable the metrics port adding this to your torrc file:

MetricsPort 127.0.0.1:9035
MetricsPortPolicy accept 127.0.0.1

And then you will be able to easily retrieve the metrics with:

# curl http://127.0.0.1:9035/metrics

which are by default in a Prometheus format.

Note: every user on that server will be able to access those relay metrics in the example above. In general, set a very strict access policy with MetricsPortPolicy and consider using your operating systems firewall features for defense in depth.

For a more detailed explanation about MetricsPort and MetricsPortPolicy see tor's man page.

MetricsPort output

Here is an example of what output enabling MetricsPort will produce (we omitted any congestion control related metrics as we still need to stabilize that interface):

# 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

Let's find out what some of these lines actually mean:

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

When a relay starts seeing "dropped", it is a CPU/RAM problem usually.

Tor is sadly single threaded except for when the "onion skins" are processed. The "onion skins" are the cryptographic work that needs to be done on the famous "onion layers" in every circuits.

When tor processes the layers we use a thread pool and outsource all of that work to that pool. It can happen that this pool starts dropping work due to memory or CPU pressure and this will trigger an overload state.

If your server is running at capacity this will likely be triggered.

The ntor and ntor_v3 values will be the same at the moment which is a bug we need to fix.

tor_relay_exit_dns_error_total{...}

Any counter in the "*_dns_error_total" realm (apart from the one for successful queries) indicates a potential DNS related problem. However, we realized during the 0.4.7 release cycle that DNS errors are way too noisy and contain too many false positives to be useful for overload reporting purposes. We therefore don't use them anymore for that purpose starting with 0.4.6.9 and 0.4.7.4-alpha. However, we still keep DNS metrics around to give the relay operator insight into what is going on with their relay.

DNS timeout issues and errors only apply to Exit nodes.

tor_relay_load_oom_bytes_total{...}

An Out-Of-Memory invocation indicates a RAM problem. The relay might need more RAM or it is leaking memory. If you noticed that the tor process is leaking memory, please report the issue either via Tor gitLab or sending an email to the tor-relays mailing list.

Tor has its own OOM handler and it is invoked when 75%, of the total memory tor thinks is available, is reached. Thus, let say tor thinks it can use 2GB in total then at 1.5GB of memory usage, it will start freeing memory. That is considered an overload state.

To estimate the amount of memory it has available, when tor starts, it will use MaxMemInQueues or, if not set, will look at the total RAM available on the system and apply this algorithm:

    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)

To avoid an overloaded state we recommend to run a relay above 2GB of RAM on 64bit. 4GB is advised, although of course it doesn't hurt to add more RAM if you can.

One might notice that tor could be called by the OS OOM handler itself. Because tor takes the total memory on the system when it starts, if the overall system has many other applications running using RAM, it ends up eating too much memory. In this case the OS could OOM tor, without tor even noticing memory pressure.

tor_relay_load_socket_total

If the number of opened sockets is close to or the same as total sockets available then this indicates the relay is running out of sockets. The solution is to increase ulimit -n for the tor process.

tor_relay_load_tcp_exhaustion_total

These lines indicate the relay is running out of TCP ports.

Try to tune sysctl as described above.

tor_relay_load_global_rate_limit_reached_total

If this counter is incremented by some noticeable value over a short period of time, the relay is congested. It is likely being used as a Guard by a big onion service or for an ongoing DDoS on the network.

If your relay is still overloaded and you don't know why, please get in touch with network-report@torproject.org. You can encrypt your email using network-report OpenPGP key.

棒!如果你想允许几个中继来为网络贡献更多,我们很欢迎这样做。 但请不要在同一个网络上运行太多中继,因为分散与多样性是Tor 网络目标的一部分。

如果你真的决定要运行多个中继服务器,请打开每个中继服务器torrc上的“我的家庭”配置选项,列出在你控制下的所有中继服务器(用逗号隔开):

MyFamily $fingerprint1,$fingerprint2,$fingerprint3

每个指纹是40个字母组成的身份指纹(没有空格)。

这样的话,Tor 客户就会记住不要在单个环路里使用超过一个你的中继服务器。 如果你有这些计算机或其网络管理上的控制权,你就应该设置我的家庭,即使它们不全在同一个地理位置。

Tor has partial support for IPv6 and we encourage every relay operator to enable IPv6 functionality in their torrc configuration files when IPv6 connectivity is available. Tor 目前需要中继的 IPv4 地址,你不能在仅有 IPv6 的主机上运行 Tor 中继。

是的,你在一些攻击中确实能获得更好的匿名性。

最简单的例子是一个拥有一些数量Tor 中继的攻击者。 他们会看见一个来自你的连接,但他们不会知道这个连接是来自于你的电脑还是你的中继上的其他人。

有些情况下它爱莫能助:如果一个攻击者能观察你所有的通信往来,那么他很容易发现哪些连接被转发,哪些始于你。 (在这个情况下,他们仍然不知道你的目的地址,除非他们也在观察它们,但你的处境也不比一个普通客户端好。)

运行一个Tor中继也有一些坏处。 首先,我们只有几百个中继,而你恰好运行其中一个,这个事实对于攻击者来说是一个你把匿名看得很重要的信号。 第二,有一些更难以理解的攻击,并不通俗易懂或久经测试,涉及到利用你正在运行的中继的知识--例如,一个攻击者可能能够“观察”你是否在发送流量,即使他们不能实际观察你的网络,通过你的 Tor 中继转发流量并注意到流量时间的变化。

收益是否大于风险是一个开放的研究性问题。 很大程度上这取决于你最担心的攻击方式。 对于大多数用户来说,我们认为这是一种明智的举动。

Tor 通过询问计算机的主机名来猜测它的IP地址,然后解析那个主机名。人们往往在他们的 /etc/hosts 文件里有指向旧 IP 地址的旧条目。

如果那不能解决这个问题,你应该使用“地址”配置选项来具体说明你想选取的 IP 地址。如果你的计算机处于一个网络地址转换里,并只有一个内部IP地址,请查看以下关于如何进入动态IP地址的技术支持。

并且,如果你有许多地址,你可能也想要设置“OutboundBindAddress”,这样外部的连接就会来自你想要展示给世界的那个。

torrc文件里的会计选项让你能够明确规定你的中继服务器在一段时间内使用的最大流量。

    AccountingStart day week month [day] HH:MM

这详细规定了计数器应该在何时被重置。比方说,要想设置可供服务一星期的比特量(这在每周三上午10:00点会重置),你会使用:

    AccountingStart week 3 10:00
    AccountingMax 500 GBytes

这详细规定了你的中继服务器在一个计数周期内发送的最大数据量和接收的最大数据量。 当会计期间被(AcountingStart)重置后,AccountingMax 的计数器会被重置为0。

比如:假设你想要每天每个方向设置50GB的流量,那么计数器就应该在每天中午重置:

    AccountingStart day 12:00
    AccountingMax 50 GBytes

请注意,你的中继服务器不会在每个会计期间的一开始恰好被唤醒。 它会跟踪记录它在上一个时期里使用额度的速度有多快,并在新的时间间隔里选择一个随机的点唤醒。 这样我们就能避免数百个中继服务器在每个月的一开始就同时运行,结果在月末就没有服务器运行的情况发生。

相较于你的连接速率,如果你只能贡献一小部分带宽,我们推荐你使用日常账户,这样你就不会在每个月的第一天就把一整个月的额度全用光。 只要将你每月的限额除以30即可。你也可以考虑将流量限速,把你的额度覆盖更多的时间:如果你想要在每个方向提供X GB, 你可以将中继服务器的带宽率设为20*X KB. 比如,如果你每种方法都有50GB可提供,你也许要将你的中继服务器带宽率调为1000 KBytes: 这样你的中继服务器就总是可保持每天起码有一半的时间可以使用。

    AccountingStart day 0:00
    AccountingMax 50 GBytes
    RelayBandwidthRate 1000 KBytes
    RelayBandwidthBurst 5000 KBytes # 允许更高的短时流量但是保持平均

想了解更深入了解如何运行一个中继服务器,请参阅中继服务器设置指南

  • 出口节点是需求最大的一种中继服务器,但同时,它也面临着最大程度的法律曝光和风险(而且你不应该在你的家里运行它们)。
  • 如果你正考虑用最小代价运行一个中继,快速守卫中继也十分有用
  • Followed by bridges.

所有的传出连接必须被允许,这样每一个中继才可以与其他中继互相通讯。

在许多司法管辖区,Tor 中继服务器运行者是受公共承运人法律保护的,这条法律保护互联网服务提供者免受潜在的传播第三方内容的法律风险。 过滤某些流量的出口节点将丧失那些保护。

Tor促进了免费无干扰的网络访问。 出口中继不得过滤通过中继的互联网流量。 被检测到过滤流量的出口节点会被打上劣质出口的标签。

你是正确的,在大多数情况下,你的 Tor 中继服务器进一个比特就意味着要出一个比特,反之亦然。但也有几个例外:

如果你打开了你的 DirPort,那么 Tor 的客户端就会向你索要一份目录的拷贝。 他们发出的请求(一个 HTTP GET)十分的小,然而回复有时会非常大。 这应该能解释大多数你的“写入”比特量与“读取”比特量之间的不符。

当你以出口节点运行,并阅读了来自出口连接的几比特信息(比如一则即时信息或ssh连接),把它包裹成一个完整的512比特包以便在 Tor 网络里运输时,一个小小的例外会出现。

We're looking for people with reasonably reliable Internet connections, that have at least 10 Mbit/s (Mbps) available bandwidth each way. If that's you, please consider running a Tor relay.

Even if you do not have at least 10 Mbit/s of available bandwidth you can still help the Tor network by running a Tor bridge with obfs4 support. In that case you should have at least 1 MBit/s of available bandwidth.

很棒! 这就是我们实施出口政策的原因。

每个 Tor 中继拥有一条出口规则,用于指定允许或拒绝何种类型的出站连接通过该中继。 出口政策通过目录传送给 Tor 的客户,所以客户会自动避免挑选会拒绝退出到他们想要到达的目的地的出口中继服务器。 这样一来,每个中继服务器都可以决定服务,主人和它想让连接到达的网络,这些都基于滥用的可能性和它自身的状况。 Read the Support entry on issues you might encounter if you use the default exit policy, and then read Mike Perry's tips for running an exit node with minimal harassment.

默认的出口中继协议允许许多流行服务的获取权(如网页浏览),但出于滥用的潜在风险,限制了一些服务(如邮箱),还有一些是因为流量大小超出了 Tor 网络的承受范围(如默认文件共享端口)。 你可以通过编辑你的torrc文件来更改你自己的出口策略。 If you want to avoid most if not all abuse potential, set it to "reject *:*". 这个设置意味着你的中继服务器只会被用来中继 Tor 网络内部的通讯,而不是外部的网站连接或其他服务。

如果你确实允许任何出口连接,确保域名解析正常(也就是,你的电脑能正确解析网络地址)。 如果有任何你的计算机不能访问的资源(比如你被限制性防火墙或内容过滤器拦住了),请明确的在你的出口节点规定里驳回它们,否则其他 Tor 的用户也会被影响。

在升级你的 Tor 中继服务器,或把它转移到另一台计算机上时,重要的是保持同样的身份密钥(存储于你的数据词典里的"keys/ed25519_master_id_secret_key" and "keys/secret_id_key")。 给身份密钥进行备份,这样你就可以在未来修复中继服务器。这是我们推荐的确保中继服务器的名誉不被浪费的方法。

这意味着,如果你正在升级你的 Tor 中继服务器,且你没有更改torrc和数据词典,那么升级过程不会出现问题,你的中继服务器会继续使用相同的密钥。 如果你需要选择一个新的数据词典,请确保复制了你旧的keys/ed25519_master_id_secret_key and keys/secret_id_key。

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

Note: As of Tor 0.2.7 we are using new generation identities for relays based on ed25519 elliptic curve cryptography. 最终它们会取代老的 RSA 身份,来确保老版本的兼容性,但这不会立即发生。 直到那时,每个中继服务器都会有一个ed25519身份(身份密钥文件:keys/ed25519_master_id_secret_key)和一个 RSA 身份(身份密钥文件:keys/secret_id_key)。 你需要将两者都拷贝 / 备份,以便恢复你的中继服务器,更改你的数据词典或将中继服务器移植到另一台计算机上。

不要这么做。 如果司法部门察觉了你出口节点的数据流量,他们可能会没收你的电子设备。 出于这些原因,最好不要在你的家中或使用你家里的网络运行出口节点。

推荐在支持 Tor 的商业实体(例如某些 VPS 服务商 —— 译者注)上搭建 Tor 的出口节点。 你的出口节点有一个独立的 IP 地址,而且不会传输你的流量。 当然,你应该避免在你运行出口节点的电脑上存储任何敏感或与你有关的信息。

特别地,如果你正在使用Debian或Ubuntu,从 Tor 项目的存储库 里安装 Tor 会有许多好处。

  • Your ulimit -n gets set to 32768 high enough for Tor to keep open all the connections it needs.
  • 为 Tor 创建一个用户,所以 Tor 不需要root就能运行。
  • 一个启动脚本被包含在了里面,这样 Tor 就会在开机时自行启动。
  • Tor runs with --verify-config, so that most problems with your config file get caught.
  • Tor 可以捆绑低层级的接口,然后下放权限。

如果你允许了出口节点连接,那么人们通过你的中继服务器连接的一些服务就会连接回来,以收集更多关于你的信息。比如,一些 IRC 服务器会连接回你的identd接口来记录哪些用户建立了连接。(这实际上并不会奏效,因为 Tor 不知道这些信息,但他们还是会试一试。)此外,从你的节点出去的用户也许会吸引其他在 RC 服务器、网站等上的用户的注意,这些用户可能想要了解更多关于他们正在使用的这个中继服务器的主人的信息。

另一个原因是,在互联网上扫描公共代理的小组意识到有时 Tor 中继服务器会将它们的socks接口暴露给全世界。我们推荐你将socks接口只与本地网络捆绑。

在任何情况下,你都需要保持你的安全措施是最新的。在 Tor 中继服务器的安全措施 上阅读这篇文章以获得更多建议。

默认开放的端口如下,但请注意,中继运营者可以通过在 torrc 中配置或修改源代码以开放任何端口。 The default according to src/or/policies.c (line 85 and line 1901) from the source code release 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 *:*

BridgeDB 实施了六项机制以分发网桥:HTTPS, Moat, Email, Telegram, Settings 和 Reserved。 网桥运营者可以在中继搜索上查看他们的网桥正使用何种机制。 在表格中输入网桥的 <HASHED FINGERPRINT>,然后点击“搜索”。

运营者也可以选择他们的网桥使用何种分配方式。 要改变方式,请将 torrc 文件中的 BridgeDistribution 设置修改为以下之一:https,moat,email,telegram,settings,none,any。

阅读网桥安装后指南的更多内容。

Tor可以很好地处理使用动态IP地址的中继,这没有关系。 你只需要将你的torrc文件中的”Address“留空,然后 Tor 会猜出它来。

Tor 进程的两个客户和中继服务器功能都适用于在 AccountingMax带宽率里分配的参数。 因此你可能会发现,一旦你的 Tor 进入休眠,你就不能进行浏览了,而且在日志里会出现这样一条记录:

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

解决方案是运行两个Tor 进程——一个中继和一个客户端,每一个进程使用自己的配置。 做到这一点(如果你是从一个正在工作的中继服务器设置开始的话)的一种方法如下:

  • 在中继的Tor torrc文件中,将SocksPort设置为0.
  • 从torrc.样例中创建一个新的用户torrc 文件,并确保它与中继服务器使用的不是同一个登陆文件。 一种命名约定可以是 torrc.client 和 torrc.relay。
  • 修改 Tor 客户端和中继服务器启动脚本来包括-f /path/to/correct/torrc
  • 在 Linux/BSD/Mac OS X 系统中,将启动脚本改为Tor.clientTor.relay可以使系统配置的分离变得更轻松。

既然它现在是一名守卫了,客户们在其他地方使用它的频率变低了,但还没有许多客户将他们已有的守卫移走并把它当作守卫使用。 阅读这篇博客帖子 或名为 守卫的变迁:理解和改进Tor“入口守卫”选择的框架 的文档了解详情。

You can run a relay in Windows following this tutorials:

You should only run a Windows relay if you can run it 24/7. If you are unable to guarantee that, Snowflake is a better way to contribute your resources to the Tor network.

如果你的 Tor 中继服务器使用了比你预想中更多的记忆储存,这儿有几条减少足迹的贴士:

  • 如果你是 Linux 操作系统,你也许会在glibc的动态内存分配操作里遇到记忆储存碎片故障。 这就是说,当 or 将记忆储存释放回系统后,这些记忆储存的片段被分成了许多碎片,很难再被利用。 Tor 原始码是用 OpenBSD 的动态内存分配操作进行运输的,这个方法没有那么多的碎片故障(但代价是更高的 CPU 负荷)。 You can tell Tor to use this malloc implementation instead: ./configure --enable-openbsd-malloc.
  • 如果你正在运行一个高速中继服务器,这意味着你拥有许多 TLS 连接处于打开状态,你可能正有大量内存流失到了 OpenSSL 的内部缓冲储存器里(每个数据包 38KB+)。 我们已经给 OpenSSL 打过了补丁,来更激进地释放未使用的缓冲区记忆储存. 如果你升级到 OpenSSL 1.0.0或更新的版本,Tor 的构造进程会自动识别并使用这个特点。
  • 如果你仍然解决不了记忆存储加载的问题,不妨考虑一下减少你的中继服务器公布的带宽。 展示较少的带宽意味着你会吸引较少的用户,所以你的中继服务器的规模应该不会变得很大。 请查阅主页中的MaxAdvertisedBandwidth选项。

所有这些都说明,Tor 高速中继确实需要大量内存。高速出口节点占用500-1000 MB内存是不正常的。

洋葱服务

How do I know if I'm using v2 or v3 onion services?

You can identify v3 onion addresses by their 56 character length, e.g. Tor Project's v2 address:http://expyuzz4wqqyqhjn.onion/, and Tor Project's v3 address: http://2gzyxa5ihm7nsggfxnu52rck2vv4rvmdlkiu3zzui5du4xyclen53wid.onion/

If you're an onion service administrator, you must upgrade to v3 onion services as soon as possible. If you're a user, please ensure that you update your bookmarks to the website's v3 onion addresses.

What is the timeline for the v2 deprecation?

In September 2020, Tor started warning onion service operators and clients that v2 will be deprecated and obsolete in version 0.4.6. Tor Browser started warning users in June, 2021.

In July 2021, 0.4.6 Tor will no longer support v2 and support will be removed from the code base.

In October 2021, we will release new Tor client stable versions for all supported series that will disable v2.

You can read more in the Tor Project's blog post Onion Service version 2 deprecation timeline.

Can I keep using my v2 onion address? Can I access my v2 onion after September? Is this a backward-incompatible change?

V2 onion addresses are fundamentally insecure. If you have a v2 onion, we recommend you migrate now. This is a backward incompatible change: v2 onion services will not be reachable after September 2021.

What is the recommendation for developers to migrate? Any tips on how to spread the new v3 addresses to people?

In torrc, to create a version 3 address, you simply need to create a new service just as you did your v2 service, with these two lines:

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

The default version is now set to 3 so you don't need to explicitly set it. Restart tor, and look on your directory for the new address. If you wish to keep running your version 2 service until it is deprecated to provide a transition path to your users, add this line to the configuration block of your version 2 service:

HiddenServiceVersion 2

This will allow you to identify in your configuration file which one is which version.

If you have Onion-Location configured on your website, you need to set the header with your new v3 address. For technical documentation about running onion services, please read the Onion Services page in our Community portal.

I didn't see the announcement, can I get more time to migrate?

No, v2 onion connections will start failing nowish, first slowly, then suddenly. It's time to move away.

Will services start failing to be reached in September, or before already?

Already, introduction points are not in Tor 0.4.6 anymore, so they will not be reachable if relay operators update.

As a website administrator, can I redirect users from my v2 onion to v3?

Yes, it will work until the v2 onion address is unreachable. You may want to encourage users to update their bookmarks.

Are v3 onion services going to help in mitigating DDoS problems?

Yes, we are continuously working on improving onion services security. Some of the work we have in our roadmap is ESTABLISH_INTRO Cell DoS Defense Extension, Res tokens: Anonymous Credentials for Onion Service DoS Resilience, and A First Take at PoW Over Introduction Circuits. For an overview about these proposals, read the detailed blog post How to stop the onion denial (of service).

没错!我们洋葱服务的名单可以在 onion.torproject.org 上找到。

Onion-Location is a new HTTP header that web sites can use to advertise their onion counterpart. If the web site that you're visiting has an onion site available, a purple suggestion pill will prompt at the URL bar saying ".onion available". When you click on ".onion available", the web site will be reloaded and redirected to its onion counterpart. At the moment, Onion-Location is available for Tor Browser desktop (Windows, macOS and GNU/Linux). You can learn more about Onion-Location in the Tor Browser Manual. If you're an onion service operator, learn how to configure Onion-Location in your onion site.

An authenticated onion service is an onion service that requires you to provide an authentication token (in this case, a private key) before accessing the service. The private key is not transmitted to the service, and it's only used to decrypt its descriptor locally. You can get the access credentials from the onion service operator. Reach out to the operator and request access. Learn more about how to use onion authentication in Tor Browser. If you want to create an onion service with client authentication, please see the Client Authorization in the Community portal.

当浏览一项洋葱服务时,Tor 浏览器会在地址栏展示不同的洋葱图标,来表示当前网站的安全级别。

Image of an onion An onion means:

  • The Onion Service is served over HTTP, or HTTPS with a CA-Issued certificate.
  • The Onion Service is served over HTTPS with a Self-Signed certificate.

Image of an onion with a red slash An onion with a red slash means:

  • The Onion Service is served with a script from an insecure URL.

Image of an onion with a caution sign An onion with caution sign means:

  • The Onion Service is served over HTTPS with an expired Certificate.
  • The Onion Service is served over HTTPS with a wrong Domain.
  • The Onion Service is served with a mixed form over an insecure URL.

只能通过 Tor 访问的网站称作“洋葱服务”,它们以 .onion 结尾。 比如,DuckDuckGo 的洋葱站点是 https://duckduckgogg42xjoc72x3sjasowoarfbgcmvfimaftt6twagswzczad.onion/。 你可以用 Tor 浏览器访问这些网站。 因为洋葱服务并不能像普通的网站一样被索引,所以必须由网站所有者把洋葱服务的地址分享给你。

If you cannot reach the onion service you desire, make sure that you have entered the 56-character onion address correctly; even a small mistake will stop Tor Browser from being able to reach the site. 如果你仍然无法访问这个洋葱服务,请稍后重试。 有可能是网络连接有出现暂时性阻碍,或者是该网站的管理员在没有提示的情况下关闭了网站。

You can also ensure that you're able to access other onion services by connecting to DuckDuckGo's onion service.

洋葱服务允许人们匿名的访问和发表信息,包括架设匿名网站。

洋葱服务还被依赖于提供一系列的服务:去元数据式的聊天,文件共享,利用诸如SecureDrop洋葱共享 进行的记者之间的互动和资源共享,更安全的软件升级,和更安全的访问如 Facebook 这样网页的渠道。

These services use the special-use top level domain (TLD) .onion (instead of .com, .net, .org, etc.) and are only accessible through the Tor network.

洋葱图标

When accessing a website that uses an onion service, Tor Browser will show at the URL bar an icon of an onion displaying the state of your connection: secure and using an onion service.

To learn more about onion services, read How do Onion Services work?

其他

不推荐将 Tor 和 BitTorrent 一起使用。 更多详情,请看我们有关该话题的博客帖子

我们很抱歉,但这是你被恶意软件感染的现象。 Tor Project 并不是这个恶意软件的作者。不过恶意软件的作者希望你使用 Tor 浏览器来匿名的联系他们来交付赎金。

如果这是你第一次听说 Tor 浏览器,我们知道你可能会认为我们是坏人。

但请考虑我们的软件每天都被人权活动家,记者,国内暴乱幸存者,举报人,执法人员和其他许多人用于各种目的。不幸的是,我们的软件在保护这些人的同时也会被罪犯和恶意软件作者滥用。 Tor Project 没有支持也没有纵容以恶意的方式使用我们的软件。

目前路径的长度为 3 加上你的路径中敏感路径的数量。 是的,通常是三个,但如果你访问洋葱服务或是“.exit”地址时会增加。

因为会增加网络的负载而且(据我们所知)不会提供任何额外的安全性,所以我们不鼓励使用比默认设置更长的路径长度。 并且,使用长度超过3的线路会损害你的匿名性,首先这回让拒绝安全措施 的攻击变得更容易,其次,如果只有很少的用户的线路长度和你一样,你会很容易被区分出来。

Tor 开发者没有追踪 Tor 用户的手段。 Tor 具有避免恶意用户破坏匿名性的保护措施,这些措施也阻止了我们追踪用户。

抱歉, Tor Project 不提供虚拟主机服务。

Tor 被设计成通过防止被各种人(甚至是我们)监控和审查来抵御人权和隐私。 我们厌恶用 Tor 做糟糕的事情的人,但是我们并不能在剔除他们的同时,不伤害到人权活动者,记者,虐待后的幸存者们,以及其他用 Tor 做好事的人们。 虽然我们仅需要增加一些软件后门就可以阻止某些人使用 Tor 网络,但是这会导致我们的用户遭更容易受到专制政权和其他组织的攻击。

Tor 依靠全球用户和志愿者的支持,来协助我们改进相关软件和资源,因此你的反馈对我们(以及所有 Tor 用户)而言极具价值。

反馈模板

给我们发送反馈或者报告程序问题时,请尽量包含以下信息,越多越好:

  • Operating System you are using
  • Tor 浏览器版本
  • Tor Browser Security Level
  • 请详细叙述你遇到问题的过程和步骤,以便于我们重新还原你遇到的问题。(比如,“我打开了浏览器,输入了一个网页地址,点击了图标,然后我的浏览器就崩溃了。”)
  • 一张显示问题的截屏
  • 日志文件

如何与我们联系

有多种方式可以联系我们,请选择对你来说最方便的一种。

Tor Forum

We recommend asking for help on the Tor Forum. You will need to create an account to submit a new topic. Before you ask, please review our discussion guidelines. 目前,为了尽快获得回应,请使用英文书写。 If you found a bug, please use GitLab.

GitLab

首先,检查该缺陷是否已知。 你可以在 https://gitlab.torproject.org/ 上搜索并查看所有的问题。 想要新建问题,请申请新账户来访问 Tor Project 的 GitLab 实例,并找到正确的存储库来报告你的问题。 我们用 Tor 浏览器的问题跟踪器 跟踪所有与 Tor 浏览器有关的问题。 网站相关的问题应在网页问题跟踪器处提交。

Telegram

If you need help installing or troubleshooting Tor Browser and the Tor Forum is blocked or censored where you are, you can reach out to us on Telegram https://t.me/TorProjectSupportBot. A Tor support specialist will assist you.

WhatsApp

可发送文本消息我们的 WhatsApp : +447421000612 寻求协助。 该服务仅限文本消息,不支持视频和语音通话。

Signal

可发送文本消息到我们的 Signal : +17787431312 求助。 Signal 是一款免费且注重隐私保护的通讯应用。 该服务仅限文本消息,不支持视频和语音通话。 在信息发送后,支持人员将为你提供指引和帮忙,以便排除故障。

电子邮件

发送电子邮件至 frontdesk@torproject.org

在电子邮件的主题栏中,请简述你要报告的内容。 请使用更为明确的邮件主题(如“连接失败”“网站反馈”、“ Tor 浏览器反馈”、“需要网桥”),以便我们更容易理解并跟进你的问题。 如果电子邮件主题为空,有时将被视为垃圾邮件,导致我们没有看到你的邮件。

For the fastest response, please write in English, Spanish, and/or Portuguese if you can. 如果以上语言都不适合,请选择你想用的任何语言,不过请注意,由于需要通过翻译来理解你的消息,回复将需更长时间。

博客文章评论

You can always leave comments on the blog post related to the issue or feedback you want to report. If there is not a blog post related to your issue, please contact us another way.

IRC

You can find us in the #tor channel on OFTC to give us feedback or report bugs/issues. We may not respond right away, but we do check the backlog and will get back to you when we can.

了解如何连接到 OFTC 服务器.

邮件列表

For reporting issues or feedback using email lists, we recommend that you do so on the one that is related to what you would like to report. A complete directory of our mailing lists can be found here.

想要反馈或有关 Tor 浏览器、Tor 网络和 Tor 开发的其他项目的问题:tor-talk

想要反馈或有关我们网站的问题:ux

想要获得反馈或有关运行 Tor 中继服务器的问题: tor-relays

反馈有关 Tor 浏览器使用手册或支持网站的问题:tor-community-team

报告安全问题

If you've found a security issue, please email security@torproject.org.

If you want to encrypt your mail, you can get the OpenPGP public key for this address from keys.openpgp.org. Here is the current fingerprint:

  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

If you wish to participate in our bug bounty program, please be aware, submitting a security issue to a third-party website carries certain risks that we cannot control, as a result we'd prefer the report directly.

Even if your application is using the correct variant of the SOCKS protocol, there is still a risk that it could be leaking DNS queries. This problem happens in Firefox extensions that resolve the destination hostname themselves, for example to show you its IP address, what country it's in, etc. If you suspect your application might behave like this, follow the instructions below to check.

  1. Add TestSocks 1 to your torrc file.
  2. Start Tor, and point your program's SOCKS proxy settings to Tor's SOCKS5 server (socks5://127.0.0.1:9050 by default).
  3. Watch your logs as you use your application. For each socks connection, Tor will log a notice for safe connections, and a warn for connections leaking DNS requests.

If you want to automatically disable all connections leaking DNS requests, set SafeSocks 1 in your torrc file.

感谢你的支持! 你可以在我们的捐赠常见问题上找到更多信息。

要想在 Tor 上共享文件,onionShare 是个好的选择。 洋葱共享是一个开源、安全、匿名式收发文件的工具,使用的是 Tor 洋葱服务。 它的工作原理是:直接在你的计算机上开启网络服务器,并将其变成一个不可猜测的 Tor 网络地址以便访问,他人可以登陆 Tor 浏览器来从你这里下载文件,或者向你上传文件。 这不要求设置一个独立的服务器,使用第三方文件共享服务,或甚至是登陆账户。

不像邮件、Google Drive、DropBox、WeTransfer 或几乎其他任何一种人们通常用来发送文件的服务,当你使用洋葱共享时,你不需要授予任何公司你共享文件的访问权限。 只要你以一种安全的方式共享不可猜测的网络地址(比如用编码过的通信软件进行传输),除了你和与你共享的人以外没有人可以访问这些文件。

OnionShare由Micah Lee开发。

很多出口节点会设置成阻止 BitTorrent 一类的文件共享服务的流量。 特别地,BitTorrent 在 Tor 中是无法匿名的

不,在几次 beta 版之后,我们终止了 Tor Messenger 的支持。 即使现在没有那么多资源进行这项工作,我们依旧相信 Tor 可以和即时消息结合。 你也相信吗?联系我们

Vidalia 已经不再维护和支持。 Vidalia 提供的许多功能已经整合进了 Tor 浏览器中。

Tor 有不同的资金支持赞助,包括美国中央政府部分机构,私有募款机构和个人。 Check out a list of all our sponsors and a series of blog posts on our financial reports.

我们认为开诚布公地谈论我们的赞助商和资助模式是与社区保持信任的最佳方式。 我们一直在寻求更多的资金来源,尤其是基金会和个人。

A few things everyone can do now:

  1. Please consider running a relay to help the Tor network grow.
  2. Tell your friends! Get them to run relays. Get them to run onion services. Get them to tell their friends.
  3. If you like Tor's goals, please take a moment to donate to support further Tor development. We're also looking for more sponsors - if you know any companies, NGOs, agencies, or other organizations that want anonymity / privacy / communications security, let them know about us.
  4. We're looking for more good examples of Tor users and Tor use cases. If you use Tor for a scenario or purpose not yet described on that page, and you're comfortable sharing it with us, we'd love to hear from you.

Documentation

  1. Help localize the documentation into other languages. See becoming a Tor translator if you want to help out. We especially need Arabic or Farsi translations, for the many Tor users in censored areas.

Advocacy

  1. The Tor community uses the Tor Forum, IRC/Matrix, and public mailing lists.
  2. Create a presentation that can be used for various user group meetings around the world.
  3. Create a poster around a theme, such as "Tor for Human Rights!".
  4. Spread the word about Tor at a symposium or conference and use these Tor brochures as conversation starter.

There are a few reasons we don't:

  1. We can't help but make the information available, since Tor clients need to use it to pick their paths. So if the "blockers" want it, they can get it anyway. Further, even if we didn't tell clients about the list of relays directly, somebody could still make a lot of connections through Tor to a test site and build a list of the addresses they see.
  2. If people want to block us, we believe that they should be allowed to do so. Obviously, we would prefer for everybody to allow Tor users to connect to them, but people have the right to decide who their services should allow connections from, and if they want to block anonymous users, they can.
  3. Being blockable also has tactical advantages: it may be a persuasive response to website maintainers who feel threatened by Tor. Giving them the option may inspire them to stop and think about whether they really want to eliminate private access to their system, and if not, what other options they might have. The time they might otherwise have spent blocking Tor, they may instead spend rethinking their overall approach to privacy and anonymity.

不,我们不提供任何在线服务。 我们所有软件项目的清单可以在我们的 项目页面 里找到。

Tor 不会保留能识别用户身份的日志记录。 我们对于网络运转有一些措施,你可以在Tor 指数里查看。

关于 文档 媒体报道 工作 博客 新闻简报 联系方式 捐赠 支持 社区 最常见问题 关于 Tor Tor 浏览器 Tor Messenger 移动版 Tor GetTor 连接 Tor 审查 HTTPS 中继操作者 洋葱服务 Debian 仓库 RPM 仓库 替代设计方案 Little-t-tor 其他 有关滥用的常见问题 保持联系

保持联系

tor-project 频道是Tor的成员讨论和协调日常 Tor 工作的地方。它比 #tor 的成员数更少,但更专注于手头上的工作。我们也欢迎你加入这个频道。要想访问 #tor-project,你的昵称必须要注册并验证。

这是如何联系到 #tor-project和其他注册频道的方法。

注册你的昵称

  1. Log onto #tor. See How can I chat with Tor Project teams?

  2. 然后点击屏幕左上方的状态

  3. In the window at the bottom of the page, type: /msg nickserv REGISTER yournewpassword youremailaddress

  4. 按下 enter 键。

如果一切顺利,你会收到一条注册成功的信息。

系统可能会将你注册成你的昵称加上“_”,而不仅仅是你的昵称。

如果是这样的话,继续进行操作即可,但要牢记,你是“用户_”而不是“用户”。

每次登录 IRC,为了验证你已注册的昵称,请输入:

/nick yournick

/msg nickserv IDENTIFY YourPassWord

如何验证你的昵称

After registering your nickname, to gain access to the #tor-project and other protected channels, your nickname must be verified.

  1. Go to https://services.oftc.net/ and follow the steps in the 'To verify your account' section

  2. Go back to the IRC webpage where you are logged in and type:

    /msg nickserv checkverify

  3. Click ENTER.

  4. If all is well, you will receive a message that says:

*!NickServ*checkverify

Usermodechange: +R

!NickServ- Successfully set +R on your nick.
`

你的昵称验证成功!

现在,加入 #tor-project,你可以直接键入:

/join #tor-project 并点击确定。

你将会被允许进入频道。如果成功的话,祝贺你!

然而,如果你在某一步中遇到了问题,你可以在#tor channel中寻求帮助。

你可以通过点击IRC窗口左上方不同的频道名称,在频道之间来回切换。

For a long time, the Tor community has been running many day-to-day activities using the IRC network known as OFTC. IRC has worked out well for us, and our community on IRC has been evolving over the years with new people joining in and new channels appearing for specific needs in the organization.

Matrix bridge

The Tor community is opening up its day-to-day conversations by bridging our IRC community the Matrix network. For regular Tor users, it means that you can chat with us using a friendly App like Element. The #tor:matrix.org room or the #tor IRC channel are connected: whichever platform you chose, your message will be shared on both platforms.

To join the conversation with Tor contributors on Matrix, you need a Matrix account. Several providers can get you one. One of these is the Matrix.org Foundation, which allows people to register an account for free. You can register an account on app.element.io.

Once you have a Matrix account, you can either join the Tor Matrix Space to browse the Tor rooms, or directly join the #tor:matrix.org user support room.

OFTC IRC network

Alternatively, if you want to use IRC you can use OFTC's web IRC client:

  1. Open OFTC webchat

  2. 在空白处填入:

    昵称:可以使用任何昵称,但在 Tor 频道聊天时,请使用同一昵称 (nick)。如果昵称已使用,你将收到系统消息,请选择其他昵称。

    频道: #tor

  3. 点击“确定”

祝贺!你正在使用 IRC。

几秒过后,你会自动进入 #tor,这里可以与 Tor 开发者,中继运行者和其他社区成员聊天。也有人随便进入 #tor。

你可以在屏幕下方空白栏里输入问题。请你直接提问,不用先问是否可提问。

有人可能马上回复,也可能过一段时间(有些人可能在聊天室挂机,之后才会查看聊天记录)。

如果想和某人聊天,请以他们的昵称作为你评论的开头。通常他们将收到有人联系的通知。

OFTC often doesn't allow people to use their webchat over Tor. For this reason, and because many people end up preferring it anyway, you should also consider using an IRC client.

Tor 依靠全球用户和志愿者的支持,来协助我们改进相关软件和资源,因此你的反馈对我们(以及所有 Tor 用户)而言极具价值。

反馈模板

给我们发送反馈或者报告程序问题时,请尽量包含以下信息,越多越好:

  • Operating System you are using
  • Tor 浏览器版本
  • Tor Browser Security Level
  • 请详细叙述你遇到问题的过程和步骤,以便于我们重新还原你遇到的问题。(比如,“我打开了浏览器,输入了一个网页地址,点击了图标,然后我的浏览器就崩溃了。”)
  • 一张显示问题的截屏
  • 日志文件

如何与我们联系

有多种方式可以联系我们,请选择对你来说最方便的一种。

Tor Forum

We recommend asking for help on the Tor Forum. You will need to create an account to submit a new topic. Before you ask, please review our discussion guidelines. 目前,为了尽快获得回应,请使用英文书写。 If you found a bug, please use GitLab.

GitLab

首先,检查该缺陷是否已知。 你可以在 https://gitlab.torproject.org/ 上搜索并查看所有的问题。 想要新建问题,请申请新账户来访问 Tor Project 的 GitLab 实例,并找到正确的存储库来报告你的问题。 我们用 Tor 浏览器的问题跟踪器 跟踪所有与 Tor 浏览器有关的问题。 网站相关的问题应在网页问题跟踪器处提交。

Telegram

If you need help installing or troubleshooting Tor Browser and the Tor Forum is blocked or censored where you are, you can reach out to us on Telegram https://t.me/TorProjectSupportBot. A Tor support specialist will assist you.

WhatsApp

可发送文本消息我们的 WhatsApp : +447421000612 寻求协助。 该服务仅限文本消息,不支持视频和语音通话。

Signal

可发送文本消息到我们的 Signal : +17787431312 求助。 Signal 是一款免费且注重隐私保护的通讯应用。 该服务仅限文本消息,不支持视频和语音通话。 在信息发送后,支持人员将为你提供指引和帮忙,以便排除故障。

电子邮件

发送电子邮件至 frontdesk@torproject.org

在电子邮件的主题栏中,请简述你要报告的内容。 请使用更为明确的邮件主题(如“连接失败”“网站反馈”、“ Tor 浏览器反馈”、“需要网桥”),以便我们更容易理解并跟进你的问题。 如果电子邮件主题为空,有时将被视为垃圾邮件,导致我们没有看到你的邮件。

For the fastest response, please write in English, Spanish, and/or Portuguese if you can. 如果以上语言都不适合,请选择你想用的任何语言,不过请注意,由于需要通过翻译来理解你的消息,回复将需更长时间。

博客文章评论

You can always leave comments on the blog post related to the issue or feedback you want to report. If there is not a blog post related to your issue, please contact us another way.

IRC

You can find us in the #tor channel on OFTC to give us feedback or report bugs/issues. We may not respond right away, but we do check the backlog and will get back to you when we can.

了解如何连接到 OFTC 服务器.

邮件列表

For reporting issues or feedback using email lists, we recommend that you do so on the one that is related to what you would like to report. A complete directory of our mailing lists can be found here.

想要反馈或有关 Tor 浏览器、Tor 网络和 Tor 开发的其他项目的问题:tor-talk

想要反馈或有关我们网站的问题:ux

想要获得反馈或有关运行 Tor 中继服务器的问题: tor-relays

反馈有关 Tor 浏览器使用手册或支持网站的问题:tor-community-team

报告安全问题

If you've found a security issue, please email security@torproject.org.

If you want to encrypt your mail, you can get the OpenPGP public key for this address from keys.openpgp.org. Here is the current fingerprint:

  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

If you wish to participate in our bug bounty program, please be aware, submitting a security issue to a third-party website carries certain risks that we cannot control, as a result we'd prefer the report directly.

Debian 仓库

Yes, deb.torproject.org is also served through via an Onion Service: http://apow7mjfryruh65chtdydfmqfpj5btws7nbocgtaovhvezgccyjazpqd.onion/

Note: The symbol # refers to running the code as root. This means you should have access to a user account with system administration privileges, e.g your user should be in the sudo group.

如需使用 Apt over Tor(通过 Tor 网络的 apt),需要安装 apt transport 工具。

   # apt install apt-transport-tor

Then you need to add the following entries to /etc/apt/sources.list or a new file in /etc/apt/sources.list.d/:

   # For the stable version.
   deb [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] tor://apow7mjfryruh65chtdydfmqfpj5btws7nbocgtaovhvezgccyjazpqd.onion/torproject.org <DISTRIBUTION> main

   # For the unstable version.
   deb [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] tor://apow7mjfryruh65chtdydfmqfpj5btws7nbocgtaovhvezgccyjazpqd.onion/torproject.org tor-nightly-main-<DISTRIBUTION> main

Replace <DISTRIBUTION> with your Operating System codename. Run lsb_release -c or cat /etc/debian_version to check the Operating System version.

Add the gpg key used to sign the packages by running the following command at your command prompt:

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

Install tor and tor debian keyring

Now refresh your sources and try to install tor and tor debian keyring:

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

The Tor Project maintains its own Debian package repository. Since Debian provides the LTS version of Tor, this might not always give you the latest stable Tor version. Therefore, it's recommended to install tor from our repository.

在基于 Debian 的系统中,如何添加 Tor 软件包仓库?请查看以下指示:

Note: The symbol # refers to running the code as root. This means you should have access to a user account with system administration privileges, e.g your user should be in the sudo group.

Prerequisite: Verify the CPU architecture

The package repository offers amd64, arm64, and i386 binaries. Verify your operating system is capable of running the binary by inspecting the output of the following command:

  # dpkg --print-architecture

It should output either amd64, arm64, or i386. The repository does not support other CPU architectures.

Note: The package repository does not offer 32-bit ARM architecture (armhf) images (yet). You should either install the version Debian offers (make sure to check out Debian backports, too, as that one has often a more up-to-date Tor package), or build Tor from source.

1. 安装 apt-transport-https

To enable all package managers using the libapt-pkg library to access metadata and packages available in sources accessible over https (Hypertext Transfer Protocol Secure).

   # apt install apt-transport-https

2. Create a new file in /etc/apt/sources.list.d/ named tor.list. Add the following entries:

   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

If you want to try experimental packages, add these in addition to the lines from above:

   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

Replace <DISTRIBUTION> with your Operating System codename. Run lsb_release -c or cat /etc/debian_version to check the Operating System version.

Note: Ubuntu Focal dropped support for 32-bit, so instead use:

   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

Replace <ARCHITECTURE> with your system architecture (you found it earlier by writing dpkg --print-architecture).

Warning symptom, when running 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. Then add the gpg key used to sign the packages by running the following command at your command prompt:

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

4. 安装 tor 和 tor debian 密钥环

推荐使用我们提供的 Debian 软件包,以便保持签名密钥为最新。请使用以下命令安装:

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

不可以。 请勿使用来自 Ubuntu 的 universe 软件包。 In the past they have not been reliably updated. That means you could be missing stability and security fixes. Instead, please use Tor Debian repository.

Tor 的 RPM 软件包

The Tor Project maintains its own RPM package repository for CentOS and RHEL and Fedora.

Note: The symbol # refers to be running the code as root. That means you should have access to a user account with system administration privileges, e.g your user should be in the sudo group.

Here's how you can enable Tor Package Repository for both CentOS and RHEL and Fedora:

1. Enable epel repository (only for CentOS and RHEL)

‪# dnf install epel-release -y

2. Add the following to /etc/yum.repos.d/tor.repo

For CentOS or 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. Install the Tor package

Then you can install the latest Tor package.

‪# 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

滥用常见问题

很棒! 这就是我们实施出口政策的原因。

每个 Tor 中继拥有一条出口规则,用于指定允许或拒绝何种类型的出站连接通过该中继。 出口政策通过目录传送给 Tor 的客户,所以客户会自动避免挑选会拒绝退出到他们想要到达的目的地的出口中继服务器。 这样一来,每个中继服务器都可以决定服务,主人和它想让连接到达的网络,这些都基于滥用的可能性和它自身的状况。 Read the Support entry on issues you might encounter if you use the default exit policy, and then read Mike Perry's tips for running an exit node with minimal harassment.

默认的出口中继协议允许许多流行服务的获取权(如网页浏览),但出于滥用的潜在风险,限制了一些服务(如邮箱),还有一些是因为流量大小超出了 Tor 网络的承受范围(如默认文件共享端口)。 你可以通过编辑你的torrc文件来更改你自己的出口策略。 If you want to avoid most if not all abuse potential, set it to "reject *:*". 这个设置意味着你的中继服务器只会被用来中继 Tor 网络内部的通讯,而不是外部的网站连接或其他服务。

如果你确实允许任何出口连接,确保域名解析正常(也就是,你的电脑能正确解析网络地址)。 如果有任何你的计算机不能访问的资源(比如你被限制性防火墙或内容过滤器拦住了),请明确的在你的出口节点规定里驳回它们,否则其他 Tor 的用户也会被影响。

罪犯本来就能够去做坏事了。 由于愿意去违反法律,他们有很多选择,来获得比 Tor 更好的隐私工具。 他们可以窃取电话,用完后就将电话丢掉; 他们可以入侵韩国或者巴西的电脑,再使用这些电脑进行滥用活动; 他们能够利用间谍软件、病毒或者其他技术,控制世界各地数以百万计的 Windows 计算机。

Tor 的目的在于,为想要遵守法律的普通人提供保护。 现在只有罪犯才有隐私,这正是我们需要改变的。

Some advocates of anonymity explain that it's just a tradeoff — accepting the bad uses for the good ones — but there's more to it than that. 罪犯和其他坏人更有动机去学习如何更好的保持匿名,并且愿意花高价达成目的。 能够窃取和重用无辜受害者的身份(身份盗窃),使其更为容易。 另一方面,普通人没有时间和金钱来研究如何在网上获得隐私。 所有可能情景中,这是最坏的。

So yes, criminals can use Tor, but they already have better options, and it seems unlikely that taking Tor away from the world will stop them from doing their bad things. 同时,Tor 和其他隐私措施可以打击身份盗用、跟踪骚扰等实体犯罪活动。

通常,分布式拒绝服务 (DDoS) 攻击需要数千台计算机同时发送大量数据至受害者。 Since the goal is to overpower the bandwidth of the victim, they typically send UDP packets since those don't require handshakes or coordination.

But because Tor only transports correctly formed TCP streams, not all IP packets, you cannot send UDP packets over Tor. (也无法使用此类攻击的特殊形态,如 SYN flooding。) 因此,常见 DDoS 攻击不可能通过 Tor 网络实现。另外,Tor 不允许对外部站点进行宽带放大攻击: you need to send in a byte for every byte that the Tor network will send to your destination. 总之,如果控制了足够宽带的攻击者,可发起有效 DDoS 攻击,那不用 Tor 也可以攻击。

首先,默认的 Tor 出口策略拒绝所有传出端口 25 (SMTP) 的流量。 因此在默认情况下,通过 Tor 发送垃圾邮件是行不通的。 一些中继运营者可能在特定出口节点启用端口 25 。在这种情况下,该计算机将允许发出邮件。但是,那个人可以直接建立开放的邮件中继,完全无需使用 Tor。 简而言之,Tor 对发送垃圾邮件没有用处,因为几乎所有的 Tor 中继都拒绝投递邮件。

当然,这并非全是关于发送垃圾邮件。 Spammers can use Tor to connect to open HTTP proxies (and from there to SMTP servers); to connect to badly written mail-sending CGI scripts; and to control their botnets — that is, to covertly communicate with armies of compromised computers that deliver the spam.

很遗憾出现这种情况,但是要注意,即使没有 Tor,垃圾邮件也已经很多了。 Also, remember that many of their more subtle communication mechanisms (like spoofed UDP packets) can't be used over Tor, because it only transports correctly-formed TCP connections.

宏观来看,并不多。 从 2003 年 10 月这个网络开始运行,至今只受到过几次投诉。 当然,与所有关注隐私的网络一样,它也吸引一群恶意之人。 Tor's exit policies help separate the role of "willing to donate resources to the network" from the role of "willing to deal with exit abuse complaints", so we hope our network is more sustainable than past attempts at anonymity networks.

由于 Tor 浏览器也有很多正面应用,可以说,目前 Tor 在好坏之间取得了不错的平衡。

如果你运行的 Tor 中继允许出口连接(例如默认出口政策),大概可以确定,迟早会有人投诉。 滥用投诉可能有很多形式。比如:

  • 有人连到 Hotmail 服务,给某公司发信勒索。FBI 给你发了一封很礼貌的邮件,你解释你运行了一个 Tor 中继,接着他们说“哦,好吧”,然后就不管你的事了。【80号端口】
  • Somebody tries to get you shut down by using Tor to connect to Google groups and post spam to Usenet, and then sends an angry mail to your ISP about how you're destroying the world. [Port 80]
  • Somebody connects to an IRC network and makes a nuisance of himself. Your ISP gets polite mail about how your computer has been compromised; and/or your computer gets DDoSed. [Port 6667]
  • 有人使用 Tor 下载范·迪塞尔的电影,而你的 ISP 会收到 DMCA 删除通知。请参考 EFF 的 Tor DMCA 回复模板,它解释了你的 ISP 为什么可以忽视这些通知而不用负法律责任。[任何端口]

Some hosting providers are friendlier than others when it comes to Tor exits. For a listing see the good and bad ISPs wiki.

如需各种滥用投诉的回复模板,可以参考模板集。 You can also proactively reduce the amount of abuse you get by following these tips for running an exit node with minimal harassment and running a reduced exit policy.

你可能也会发现,在访问一些网络站点或服务时, Tor 中继的 IP 被屏蔽了。 无论出口政策如何,这都可能会发生,因为有些组织似乎不知道或不在乎 Tor 的 出口政策。 (如果你有多余且未使用的 IP,可考虑用来运行 Tor 中继。) 总的来说,不建议使用家庭网络的连接架设 Tor 中继。

有时,一些愚顽之人通过 Tor 在 IRC 频道捣乱。 This abuse results in IP-specific temporary bans ("klines" in IRC lingo), as the network operators try to keep the troll off of their network.

这种反应突显了 IRC 安全模型的根本缺陷: 他们假设 IP 地址对应一个特定的人,所以禁止 IP 地址就可以禁止这个人。 In reality, this is not the case — many such trolls routinely make use of the literally millions of open proxies and compromised computers around the Internet. The IRC networks are fighting a losing battle of trying to block all these nodes, and an entire cottage industry of blocklists and counter-trolls has sprung up based on this flawed security model (not unlike the antivirus industry). Tor 网络只是冰山一角而已。

另一方面,对于 IRC 服务器的管理员来说,安全性并不是全有或全无的事情。 By responding quickly to trolls or any other social attack, it may be possible to make the attack scenario less attractive to the attacker. 任何特定时间,在任何特定 IRC 网络上,大多数单独的 IP 地址等同于单独的个人。 也有例外,比如 NAT 网关可以作为作为特例来分配访问权限。 While it's a losing battle to try to stop the use of open proxies, it's not generally a losing battle to keep klining a single ill-behaved IRC user until that user gets bored and goes away.

但是,真正的办法是实施应用层认证系统,欢迎行为良好的用户进入,并拒绝行为恶劣的用户。 这需要基于某些人为属性(比如他知道密码),而不是基于数据包传输方式的某些属性。

当然,并不是所有的 IRC 网络都禁止 Tor 节点。 After all, quite a few people use Tor to IRC in privacy in order to carry on legitimate communications without tying them to their real-world identity. Each IRC network needs to decide for itself if blocking a few more of the millions of IPs that bad people can use is worth losing the contributions from the well-behaved Tor users.

如果你被屏蔽了,可以联系网络管理员并向其做出解释。 他们可能根本就不知道 Tor,或者不知道临时禁止的主机名是 Tor 出口节点。 If you explain the problem, and they conclude that Tor ought to be blocked, you may want to consider moving to a network that is more open to free speech. Maybe inviting them to #tor on irc.oftc.net will help show them that we are not all evil people.

最后,如果你发现 IRC 网络屏蔽了 Tor 或者单个 Tor 出口节点,请把这些信息补充到 Tor 浏览器 IRC 屏蔽跟踪器,以便大家可以分享交流。 至少有一个 IRC 网络会查询该页面,以 解除不经意间被屏蔽的出口节点。

Even though Tor isn't useful for spamming, some over-zealous blocklisters seem to think that all open networks like Tor are evil — they attempt to strong-arm network administrators on policy, service, and routing issues, and then extract ransoms from victims.

如果服务器管理员通过黑名单拒收邮件,你应与他们沟通,解释 Tor 以及 Tor 的出口政策。

听到你想要禁用 Tor,我们感到非常遗憾。 某些情况下,屏蔽匿名用户访问互联网服务是合理的。 不过,在很多情况下,可以采取更简单的方法来解决问题,同时允许用户安全地访问你的网站。

首先,思考是否可从应用层来区分正常用户和恶意捣乱者。 例如,只有已注册用户可访问某些网站内容或获取某些权限(如发布内容)。 It's easy to build an up-to-date list of Tor IP addresses that allow connections to your service, so you could set up this distinction only for Tor users. 如此一来,你可以实现分层访问而无需全站屏蔽。

For example, the Freenode IRC network had a problem with a coordinated group of abusers joining channels and subtly taking over the conversation; but when they labeled all users coming from Tor nodes as "anonymous users", removing the ability of the abusers to blend in, the abusers moved back to using their open proxies and bot networks.

其次,每天成千上万的用户仅仅因数据安全而选择 Tor,例如,在进行日常活动的同时,避免数据被广告公司收集。 还有其他人使用 Tor,因为这是唯一突破本地防火墙的方式。 此时此刻,可能某些 Tor 用户正在使用你的服务,进行正常的活动。 禁用 Tor 网络之后,你的服务将失去这些用户以及未来潜在的合法用户。你需要权衡这样做是否值得。 (通常,没有人去留意有多少优秀的 Tor 用户在使用他们的服务,直到出现一个粗鲁的用户,否则你永远不会注意到他们。)

此时,你应该问你自己,对于少数 IP 地址背后聚集大量用户的其他服务,你将如何处理? 从这个角度来看,Tor 与 AOL 并没有多少差别。

最后,请记得 Tor 中继具有单独的出口政策 。 很多 Tor 中继根本不允许出口连接。 许多允许出口连接的中继,可能已经禁止连接你的服务。 When you go about banning nodes, you should parse the exit policies and only block the ones that allow these connections; and you should keep in mind that exit policies can change (as well as the overall list of nodes in the network).

如果真的想要禁用 Tor 用户,我们提供 Tor 浏览器出口中继清单可查询的基于 DNS 的清单

(出于官方政策或某些滥用模式的原因,有些系统管理员屏蔽整个区段的 IP 地址,但也有管理咨询如何允许 Tor 出口中继,因为想要只允许通过 Tor 访问他们的系统。 这些脚本也可用于白名单。)

Tor 开发者没有追踪 Tor 用户的手段。 防止坏人破坏 Tor 匿名性的保护措施,同时也阻碍了我们弄明白发生了什么。

一些支持者建议我们重新设计 Tor,以便在里面加入后门程序 。 这个想法有两个严重的问题。 首先,从技术上来讲,这会大大弱化系统。 Having a central way to link users to their activities is a gaping hole for all sorts of attackers; and the policy mechanisms needed to ensure correct handling of this responsibility are enormous and unsolved. Second, the bad people aren't going to get caught by this anyway, since they will use other means to ensure their anonymity (identity theft, compromising computers and using them as bounce points, etc).

This ultimately means that it is the responsibility of site owners to protect themselves against compromise and security issues that can come from anywhere. This is just part of signing up for the benefits of the Internet. 不管危险可能来自何方,你必须要随时保护好自身的安全。 跟踪和强化监视并非防止滥用的解决方案。

但是要知道,这并不意味着 Tor 是绝对安全的。 Traditional police techniques can still be very effective against Tor, such as investigating means, motive, and opportunity, interviewing suspects, writing style analysis, technical analysis of the content itself, sting operations, keyboard taps, and other physical investigations. The Tor Project is also happy to work with everyone including law enforcement groups to train them how to use the Tor software to safely conduct investigations or anonymized activities online.

Tor Project 未托管与控制这些服务,也没有能力找到 .onion 地址的拥有者或所在位置。 .onion 地址是来自洋葱服务的地址。 以 .onion 结尾的名称是洋葱服务的描述符。 这是自动生成的名称,可以位于互联网上的任何 Tor 中继或客户端上。 Onion services are designed to protect both the user and service provider from discovering who they are and where they are from. 根据洋葱服务的设计,.onion 站点的拥有者和位置是隐藏的,即使我们也无法得知。

但请记得,这并不是说洋葱服务无懈可击。 Traditional police techniques can still be very effective against them, such as interviewing suspects, writing style analysis, technical analysis of the content itself, sting operations, keyboard taps, and other physical investigations.

If you have a complaint about child abuse materials, you may wish to report it to the National Center for Missing and Exploited Children, which serves as a national coordination point for investigation of child pornography: http://www.missingkids.com/. 我们不会查看你提交的链接。

对于滥用,我们的态度是认真严肃的。 活动人士以及执法部门使用 Tor 调查滥用行为,并为幸存者提供支持。 我们与他们一起合作,帮助他们了解如何使用 Tor 来协助他们的工作。 有些情况下,发生了技术错误,我们帮助纠正错误。 Because some people in survivors' communities embrace stigma instead of compassion, seeking support from fellow victims requires privacy-preserving technology.

我们拒绝在 Tor 中建立后门和审查,不是因为不关心。 我们拒绝降低 Tor 的安全和隐私功能,原因在于,实体世界中儿童虐待和人口贩卖的打击活动,将因此而受损,同时这样将移除受害者在网络上的安全空间。 同时,犯罪分子仍然能够获取僵尸网络、被盗的手机、窃取的帐号、邮政系统、快递员、腐败官员以及任何新兴交易技术。 他们是技术的早期使用者。 面对这种情况,政策制定者认为屏蔽或过滤能够解决问题,这是很危险的想法。 We are more interested in helping efforts to halt and prevent child abuse than helping politicians score points with constituents by hiding it. 腐败的危害尤其严重;请查看联合国对腐败在贩卖人口中的作用这一报告。

最后,当成人以儿童的名义制定政策时,儿童将要面对什么样的世界,考虑这一点至关重要。 如果儿童无法像成人一样安全地发表观点,他们会感谢我们吗? 如果他们试图揭露失责政府来保护其他孩子,将会如何?

Tor Metrics

We actually don't count users, but we count requests to the directories that clients make periodically to update their list of relays and estimate number of users indirectly from there.

No, but we can see what fraction of directories reported them, and then we can extrapolate the total number in the network.

We put in the assumption that the average client makes 10 such requests per day. A tor client that is connected 24/7 makes about 15 requests per day, but not all clients are connected 24/7, so we picked the number 10 for the average client. We simply divide directory requests by 10 and consider the result as the number of users. Another way of looking at it, is that we assume that each request represents a client that stays online for one tenth of a day, so 2 hours and 24 minutes.

Average number of concurrent users, estimated from data collected over a day. We can't say how many distinct users there are.

No, the relays that report these statistics aggregate requests by country of origin and over a period of 24 hours. The statistics we would need to gather for the number of users per hour would be too detailed and might put users at risk.

Then we count those users as one. We really count clients, but it's more intuitive for most people to think of users, that's why we say users and not clients.

No, because that user updates their list of relays as often as a user that doesn't change IP address over the day.

The directories resolve IP addresses to country codes and report these numbers in aggregate form. This is one of the reasons why tor ships with a GeoIP database.

Very few bridges report data on transports or IP versions yet, and by default we consider requests to use the default OR protocol and IPv4. Once more bridges report these data, the numbers will become more accurate.

Relays and bridges report some of the data in 24-hour intervals which may end at any time of the day.
And after such an interval is over relays and bridges might take another 18 hours to report the data.
We cut off the last two days from the graphs, because we want to avoid that the last data point in a graph indicates a recent trend change which is in fact just an artifact of the algorithm.

The reason is that we publish user numbers once we're confident enough that they won't change significantly anymore. But it's always possible that a directory reports data a few hours after we were confident enough, but which then slightly changed the graph.

We do have descriptor archives from before that time, but those descriptors didn't contain all the data we use to estimate user numbers. Please find the following tarball for more details:

Tarball

For direct users, we include all directories which we didn't do in the old approach. We also use histories that only contain bytes written to answer directory requests, which is more precise than using general byte histories.

Oh, that's a whole different story. We wrote a 13 page long technical report explaining the reasons for retiring the old approach.
tl;dr: in the old approach we measured the wrong thing, and now we measure the right thing.

We run an anomaly-based censorship-detection system that looks at estimated user numbers over a series of days and predicts the user number in the next days. If the actual number is higher or lower, this might indicate a possible censorship event or release of censorship. For more details, see our technical report.

Little-t-tor

Attention: These instructions are to verify the tor source code. Please follow the right instructions to verify Tor Browser's signature.

数字签名是一个确保某个包由其开发人员生成并且未被篡改的过程。 Below we explain why it is important and how to verify that the tor source code you download is the one we have created and has not been modified by some attacker.

Each file on our download page is accompanied by two files which are labelled "checksum" and "sig" with the same name as the package and the extension ".sha256sum" and ".sha256sum.asc" respectively.

The .asc file will verify that the .sha256sum file (containing the checksum of the package) has not been tampered with. Once the signature has been validated (see below on how to do it), the package integrity can be validated with:

$ sha256sum -c *.sha256sum

These files allow you to verify the file you've downloaded is exactly the one that we intended you to get. This will vary by web browser, but generally you can download this file by right-clicking the "sig" and "checksum" link and selecting the "save file as" option.

For example, tor-0.4.6.7.tar.gz is accompanied by 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,因为大多数 Linux 发行版都预装了它。

In order to verify the signature you will need to type a few commands in a terminal window. How to do this will vary depending on your distribution.

获取 Tor 开发者密钥

The following keys can sign the tarball. Don't expect them all, it can vary depending on who is available to make the release.

You can fetch the key with the links provided above or with:

$ 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

This should show you something like (for 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]

If you get an error message, something has gone wrong and you cannot continue until you've figured out why this didn't work. You might be able to import the key using the Workaround (using a public key) section instead.

导入密钥后,你可以将其保存到文件中(通过这里的指纹来识别它):

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

这条命令的结果是,密钥被保存在路径为./tor.keyring的文件中,也就是在当前目录中。 如果运行这个命令后./tor.keyring不存在,就说明出了问题,你不能继续操作,直到你弄清楚为什么会出现错误。

验证签名

To verify the signature of the package you downloaded, you will need to download the corresponding .sha256sum.asc signature file and the .sha256sum file itself, and verify it with a command that asks GnuPG to verify the file that you downloaded.

下面的例子假设你已经下载了这样的两个文件到你的"下载"文件夹。 请注意,这些命令使用的是示例文件名,而你的文件名会有所不同:你下载的版本与 9.0 不同,且你可能没有选择英文(en-US)版本。

对于 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

For BSD/Linux users:

gpgv --keyring ./tor.keyring ~/Downloads/tor-0.4.6.10.tar.gz.sha256sum.asc ~/Downloads/tor-0.4.6.10.tar.gz.sha256sum

The result of the command should produce something like this (depending on which key signed it):

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 的详细信息

Verifying checksum

Now that we validated the signatures of the checksum, we need to verify the integrity of the package.

对于 Windows 的用户:

certUtil -hashfile tor-0.4.6.10.tar.gz.sha256sum SHA256

对于 macOS 的用户:

shasum -a 256 tor-0.4.6.10.tar.gz.sha256sum

For BSD/Linux users:

sha256sum -c tor-0.4.6.10.tar.gz.sha256sum

我们(尚未)采用的替代设计方案

This would be handy for a number of reasons: It would make Tor better able to handle new protocols like VoIP. It could solve the whole need to socksify applications. Exit relays would also not need to allocate a lot of file descriptors for all the exit connections.

We're heading in this direction. Some of the hard problems are:

  1. IP packets reveal OS characteristics. We would still need to do IP-level packet normalization, to stop things like TCP fingerprinting attacks. Given the diversity and complexity of TCP stacks, along with device fingerprinting attacks, it looks like our best bet is shipping our own user-space TCP stack.

  2. Application-level streams still need scrubbing. We will still need user-side applications like Torbutton. So it won't become just a matter of capturing packets and anonymizing them at the IP layer.

  3. Certain protocols will still leak information. For example, we must rewrite DNS requests so they are delivered to an unlinkable DNS server rather than the DNS server at a user's ISP; thus, we must understand the protocols we are transporting.

  4. DTLS (datagram TLS) basically has no users, and IPsec sure is big. Once we've picked a transport mechanism, we need to design a new end-to-end Tor protocol for avoiding tagging attacks and other potential anonymity and integrity issues now that we allow drops, resends, et cetera.

  5. Exit policies for arbitrary IP packets mean building a secure Intrusion Detection System (IDS). Our node operators tell us that exit policies are one of the main reasons they're willing to run Tor. Adding an IDS to handle exit policies would increase the security complexity of Tor, and would likely not work anyway, as evidenced by the entire field of IDS and counter-IDS papers. Many potential abuse issues are resolved by the fact that Tor only transports valid TCP streams (as opposed to arbitrary IP including malformed packets and IP floods.) Exit policies become even more important as we become able to transport IP packets. We also need to compactly describe exit policies in the Tor directory, so clients can predict which nodes will allow their packets to exit. Clients also need to predict all the packets they will want to send in a session before picking their exit node!

  6. The Tor-internal name spaces would need to be redesigned. We support onion service ".onion" addresses by intercepting the addresses when they are passed to the Tor client. Doing so at the IP level will require a more complex interface between Tor and the local DNS resolver.

不可以,你不能信任网络选择的路径。 Malicious relays could route you through their colluding friends. This would give an adversary the ability to watch all of your traffic end to end.

Requiring every Tor user to be a relay would help with scaling the network to handle all our users, and running a Tor relay may help your anonymity. However, many Tor users cannot be good relays — for example, some Tor clients operate from behind restrictive firewalls, connect via modem, or otherwise aren't in a position where they can relay traffic. Providing service to these clients is a critical part of providing effective anonymity for everyone, since many Tor users are subject to these or similar constraints and including these clients increases the size of the anonymity set.

That said, we do want to encourage Tor users to run relays, so what we really want to do is simplify the process of setting up and maintaining a relay. We've made a lot of progress with easy configuration in the past few years: Tor is good at automatically detecting whether it's reachable and how much bandwidth it can offer.

There are four steps we need to address before we can do this though:

  • First, we still need to get better at automatically estimating the right amount of bandwidth to allow. It might be that switching to UDP transport is the simplest answer here — which alas is not a very simple answer at all.

  • Second, we need to work on scalability, both of the network (how to stop requiring that all Tor relays be able to connect to all Tor relays) and of the directory (how to stop requiring that all Tor users know about all Tor relays). Changes like this can have large impact on potential and actual anonymity. See Section 5 of the Challenges paper for details. Again, UDP transport would help here.

  • Third, we need to better understand the risks from letting the attacker send traffic through your relay while you're also initiating your own anonymized traffic. Three different research papers describe ways to identify the relays in a circuit by running traffic through candidate relays and looking for dips in the traffic while the circuit is active. These clogging attacks are not that scary in the Tor context so long as relays are never clients too. But if we're trying to encourage more clients to turn on relay functionality too (whether as bridge relays or as normal relays), then we need to understand this threat better and learn how to mitigate it.

  • Fourth, we might need some sort of incentive scheme to encourage people to relay traffic for others, and/or to become exit nodes. Here are our current thoughts on Tor incentives.

Please help on all of these!

It would be nice to let relay operators say things like reject www.slashdot.org in their exit policies, rather than requiring them to learn all the IP address space that could be covered by the site (and then also blocking other sites at those IP addresses).

然而,这样有两个问题。 首先,用户仍然能够绕过屏蔽。 比如,当从 Tor 网络退出时,他们可以请求 IP 地址而不是主机名。 也就是说,中继运营者仍然需要了解所有目标 IP 地址。

第二个问题是,它将允许远程攻击者屏蔽任意网站。 For example, if a Tor operator blocks www1.slashdot.org, and then some attacker poisons the Tor relay's DNS or otherwise changes that hostname to resolve to the IP address for a major news site, then suddenly that Tor relay is blocking the news site.

Mullvad Browser

The Mullvad Browser is Tor Browser without the Tor Network - that allows anyone to take advantage of all the privacy features Tor created. If people want to connect the browser with a VPN they trust, they can easily do so.

The browser's 'out-of-the-box' configurations and settings will mask many parameters and features commonly used to extract information from a person's device, including fonts, rendered content, and several hardware APIs. By default, Mullvad Browser has private mode enabled, blocks third-party trackers and cookies.

The browser is free and open-source and was developed by the Tor Project in collaboration with Mullvad VPN. It is distributed by Mullvad and can be downloaded on their website.

The 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. You can use it without or with any VPN, but you should make sure to use a VPN provider you can trust. Aside from the way that both browsers connect users to the internet (Tor network vs trusted VPN connection) the differences between both browsers are very small and come down to individual preference and use cases for the end-user.

As a benefit of connecting to the internet using the Tor network, various Tor specific features are closely integrated with our own browser that the Mullvad Browser does not offer, including:

  • Circuit isolation and the integration with new-identity
  • Access to Onion Services (i.e. onionsites, Onion-Location redirects, onion authentication, and SecureDrop integration)
  • Built-in censorship circumvention with a unique UX found in Tor Browser's connection settings and connection assist

Our objective with this collaboration is to provide more choice for online privacy (e.g., minimize fingerprinting and try to prevent linkability) to users at all levels.

You should use Mullvad Browser if you are looking for a privacy enhanced browser solution to connect with your trusted VPN. Its default settings and features are intended to combat mass surveillance, data mining and tracking, or other privacy violations that are commonly employed by big tech companies.

While the 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, the Mullvad Browser's business model does not rely on capitalizing on users' behavioral data. Mullvad makes money by selling their VPN, they are not in the business of selling user data from the browser.

Mullvad Browser was developed by the Tor Project who have a proven track record of building and deploying free and open-source privacy preserving technologies such as Tor Browser, Onion Services, the Tor network etc. that have helped millions of people from at-risk communities defend their right to privacy and anonymity online.

For any and all support inquiries, please email: support@mullvad.net. User support is currently only available via email.

Mullvad has been part of the Tor community for many years now. They are a Shallot Level member (highest membership tier) of the Tor Project membership program and have been a founding member of the Tor Project's Membership Program.

When Mullvad approached us to jointly develop a browser, we said yes because there is great value alignment between our two organizations in our efforts to make privacy-enhancing technologies more widely available and make mass-surveillance impractical.

The Mullvad Browser fills a gap in the market for those who want to run a privacy-focused browser as good as the Tor Browser but with a trusted VPN instead of the Tor Network. This partnership contributes to providing people with more free privacy options for web browsing while challenging the current business model of exploiting people's data. It demonstrates that it is possible to develop free technology solutions that prioritize the protection of user privacy. Mullvad shares the same values around internet privacy and freedom and is dedicated to making privacy-enhancing technologies more widely available and rendering mass-surveillance impractical.

This joint project with Mullvad has contributed to addressing legacy code issues for Tor Browser and allowed the allocation of dedicated resources to make necessary improvements that benefit both Tor and Mullvad Browsers. Over the last couple of years, the Tor Project has launched a number of initiatives to increase adoption of our technologies and made significant improvements to the usability of our own products.

No, Tor Browser is here to stay. We know that millions of users around the world rely on Tor Browser and other solutions that the Tor Project offers to safely connect to the internet, to browse anonymously online and to circumvent censorship. Therefore Tor Browser will continue to exist. There are a lot of reasons to continue to maintain and improve Tor Browser, it is still one of the few solutions that provides anonymity online because of its use of the Tor network. This combination is a powerful one and sometimes one of the few options that censored and surveilled users have in their region to freely and safely access the internet. This is also a free solution for all, making it an affordable solution for people at risk.

The development of the Mullvad Browser will actually help make Tor Browser stronger because it allows us to continue to address legacy issues and code, and fix vulnerabilities.

Not at all, we are continuing to invest on improving the usability of Tor Browser, as we have done in the last 5 years with major releases that included user experience improvements. We are also working hard on bringing the Tor Browser for Android up to par with the desktop version's features.

The development of the Mullvad Browser has helped us address legacy issues and code, and fix vulnerabilities. It has not affected our attention and dedication to Tor Browser.

Two years ago we started a project to bring a VPN-like app that connects to the Tor network for Android users. We know that many of the sites and services a user connects to via browser on desktop become an app when they are using the internet on mobile. It is important for us to address this use case as the majority of people around the world only use a mobile device to connect to the internet, especially those in the Global South and at risk situations. Offering a browser that connects to the internet with a trusted VPN as opposed to the Tor network is an important step in offering more alternatives when it comes to free privacy-focused browsers and can benefit Tor Browser in the future when our 'VPN-like' app has launched.

不要这么做。 Please contact the Mullvad Browser user support for any further questions: support@mullvad.net.

Yes, here are the full list of requests Mullvad Browser makes by default:

  • Browser update (Mullvad)
  • Mullvad Browser Extension update (Mullvad)
  • Mullvad DoH (Mullvad)
  • NoScript/Ublock Origin update (Mozilla)
  • Certificates & Domains update (Mozilla)
  • Ublock Origin filter lists update (various lists)