Tor网站开发
1.Tor
需要用到的链接
1.Tor
代码
SocksPort 127.0.0.1:9050HiddenServiceDir D:\torHiddenServicePort 80 127.0.0.1:80
ExitPolicy reject *:*1、下载Tor

解压之后开启全局模式+网卡,运行tor.exe直至进度显示100%,然后关闭窗口

接下来在目录C:\Users\maluyao\AppData\Roaming\tor下面新建torrc的配置文件,复制配置:
SocksPort 127.0.0.1:9050
HiddenServiceDir E:\Serve\Tor
HiddenServicePort 80 127.0.0.1:80
ExitPolicy reject *:*关掉之后运行tor.exe就发现在E:\Serve\Tor\目录下出现三个新文件

打开hostname文件得到网址:

这就是tor域名
解析配置
SocksPort 127.0.0.1:9050
HiddenServiceDir E:\Serve\Tor
HiddenServicePort 80 127.0.0.1:80
ExitPolicy reject *:*它配置了三件事:
- 本机 SOCKS 代理
SocksPort 127.0.0.1:9050Tor 在本机回环地址开一个 SOCKS5 代理端口 9050,只允许本机程序连接(浏览器/客户端把代理指到127.0.0.1:9050就能走 Tor)。 - 开一个 Onion(隐藏服务)并把它转发到你本机 80 端口
HiddenServiceDir E:\Serve\Tor用于存放隐藏服务的密钥、状态文件,以及生成的.onion地址(会在这个目录里有个hostname文件)。HiddenServicePort 80 127.0.0.1:80把 onion 服务的 80 端口映射到你本机的127.0.0.1:80(也就是你电脑上跑的 Web 服务:IIS/nginx/Apache/自写服务等)。别人访问你的.onion,实际会被 Tor 转发到你本地 80。 - 不当出口节点
ExitPolicy reject *:*拒绝所有“出口”连接,所以这台 Tor 不会成为 Exit Node,只做客户端/中继(如果开了)/隐藏服务提供者。
参考
Onion Services 文档(v3)
https://community.torproject.org/onion-services/
torrc 配置项完整说明(官方手册)
https://support.torproject.org/tor-browser/features/onion-services/
https://support.torproject.org/tor-manual/
用 Tor Onion 做 Web 服务
https://community.torproject.org/onion-services/setup/
Onion Service 的安全建议:
https://support.torproject.org/onionservices/onionservices-security/
中继操作
Tor网络上的中继类型
所有类型的中继都很重要,但它们在技术要求和潜在法律影响方面各不相同。了解不同类型的中继,是判断哪一种适合你的第一步。
示例 Tor 电路: Tor 用户 → 守护中继 → 中间中继 → 出口中继 → 目标(例如 example.com)
使用桥接时:
Tor 用户 → 桥接中继 → 中间中继 → 出口中继 → 目标(例如 example.com)
守护中继与中间中继(也称为非出口中继)
守护中继是 Tor 电路中的第一个中继(跳点)。中继中继是在 Tor 电路中作为第二个跳点的中继。要成为守护中继,该中继必须稳定且速度快(上下行带宽至少 2MB/s),否则它将继续作为中继中继存在。
守护中继和中继中继通常不会收到滥用投诉。不过,所有中继都会被列入公开的 Tor 中继目录,因此可能会被某些服务封锁。这些服务包括对 Tor 工作方式存在误解,或是刻意想要审查 Tor 用户的服务,例如网上银行和流媒体服务。
非出口 Tor 中继所需的维护工作很少,带宽使用也可以在 Tor 配置中高度自定义。中继的所谓“出口策略”决定它是否允许客户端从该中继出网。非出口中继在其出口策略中不允许出网。
重要提示:如果你在家中使用单一的静态 IP 地址运行中继,并且担心你的 IP 会被某些在线服务封锁,可以考虑改为运行桥接或 Tor Snowflake 代理。这种替代方案有助于防止你的非 Tor 流量被误判为来自 Tor 中继而遭到封锁。
出口中继
出口中继是 Tor 电路中的最后一个中继,负责将流量发送到最终目的地。Tor 客户端所连接的服务(网站、聊天服务、电子邮件提供商等)看到的将是出口中继的 IP 地址,而不是真实的 Tor 用户 IP 地址。
在所有类型的中继中,出口中继面临的法律风险和责任最大。例如,如果某个用户通过你的出口中继下载了受版权保护的内容,作为运营者的你可能会收到 DMCA 通知。任何关于出口的滥用投诉都会直接指向你(通常通过你的托管服务商,取决于 WHOIS 记录)。一般来说,大多数投诉都可以通过模板信函相对轻松地处理。
由于运行出口中继伴随着较高的法律风险,你不应在家中运行 Tor 出口中继。理想的出口中继运营者通常隶属于某种机构,例如中继协会、大学、图书馆、黑客空间或隐私相关组织。这类机构不仅可以为出口中继提供更大的带宽,也更有条件处理滥用投诉或少见的执法机构询问。
桥接
Tor 网络的设计决定了 Tor 中继(守护、中继和出口)的 IP 地址是公开的。然而,政府或 ISP 阻断 Tor 的一种方式就是将这些公开的 Tor 中继 IP 地址加入封锁列表。Tor 桥接是网络中未列入公开 Tor 目录的中继,这使得 ISP 和政府更难封锁它们。
桥接对于处于高压统治环境下的 Tor 用户,或是希望增加一层安全性、担心有人会识别出他们正在连接公开 Tor 中继 IP 地址的人来说非常有用。包括中国和伊朗在内的一些国家已经找到了检测并封锁 Tor 桥接连接的方法。可插拔传输(https://support.torproject.org/tor-browser/circumvention/)是一种特殊的桥接,通过增加额外的混淆层来应对这一问题。
桥接相对容易运行,风险低、带宽需求也低,但对用户的影响却很大。桥接几乎不会收到滥用投诉,而且由于桥接不会被列为公开中继,也不太可能被主流服务封锁。
如果你只能在家庭网络中运行 Tor 节点,只有一个静态 IP,也无法提供大量带宽,桥接是一个非常好的选择——我们建议至少为你的桥接提供 1 Mbit/s 的带宽。
中继节点要求
Tor 中继的运行要求取决于中继类型以及其提供的带宽。
如果你不满足运行 Tor 中继或 obfs4 桥接的要求,运行一个 Snowflake 代理是捐献带宽、帮助用户绕过审查的一个很好的方式。
带宽与连接数
非出口中继应当能够处理至少 7000 个并发连接,这可能会压垮家用级路由器。如果你在数据中心的服务器(虚拟或独立)上运行 Tor 中继,一般不会有问题;如果是在家中、通过家用路由器运行,就需要自行测试路由器是否能够承受,或是否会出现故障。高速出口中继(≥100 Mbit/s)通常需要处理更多的并发连接(>100,000)。
建议中继至少为 Tor 提供 16 Mbit/s 的上行带宽和 16 Mbit/s 的下行带宽,越高越好。中继的最低要求是 10 Mbit/s。如果你的带宽低于 10 Mbit/s 但至少有 1 Mbit/s,建议运行支持 obfs4 的桥接。
每月出站流量
Tor 中继每月至少需要允许使用 100 GB 的出站流量(入站流量也需要同样的额度)。注意:在 10 Mbit/s 的连接下,这大约只相当于 1 天的流量。更多的流量(>2 TB/月)更好,也更推荐。
理想情况下,中继应运行在不限流量的套餐上,或至少包含每月 2 TB 或以上的流量。如果你使用的是计量流量套餐,可能需要在 Tor 配置中限制带宽或每月流量使用量。
公共 IPv4 地址
每个中继都需要一个公共 IPv4 地址——可以直接分配在主机上(推荐),也可以通过 NAT 和端口转发实现。
IPv4 地址不一定必须是静态的,但静态 IP 更理想。你的 IPv4 地址应至少在 3 小时内保持不变(如果变化频率更高,那么在那里运行中继或桥接意义不大,因为新的中继 IP 列表需要时间分发给客户端,而这个过程每小时只进行一次)。
额外的 IPv6 连接非常好,且推荐/鼓励,但不是硬性要求。这个要求通常不成问题(所有商业服务器至少都会提供一个 IPv4 地址)。
注意:每个公共 IPv4 地址最多只能运行 8 个 Tor 中继。如果你想运行超过 8 个中继,就需要更多的 IPv4 地址。
内存要求
速度低于 40 Mbit/s 的非出口中继至少需要 512 MB 内存。 速度高于 40 Mbit/s 的非出口中继至少需要 1 GB 内存。 对于出口中继,建议每个 Tor 实例至少配备 1.5 GB 内存。
磁盘存储
Tor 对磁盘空间需求不高。一个典型的 Tor 中继用于 Tor 相关数据的存储空间少于 200 MB(不包括操作系统本身)。
技术设置
本节介绍在不同操作系统上运行 Tor 中继所需程序的安装与配置。
这些步骤适用于对应操作系统的最新稳定版本;在 Ubuntu 上则适用于最新的 LTS 版本。
注意:对于某些操作系统,提供了 alpha 版本的软件包(包含尚未被认为稳定的新特性的 Tor 版本)。这些版本仅推荐给愿意测试前沿版本/新特性并提交漏洞报告的人使用。如果你希望以最少的精力运行一个中继,建议使用稳定版本。
在配置 Tor 之前需要明确的问题 你是想运行 Tor 出口中继,还是非出口中继(桥接 / 守护 / 中继)? 如果你要运行出口中继:你希望在出口策略中允许哪些端口?(允许的端口越多,通常意味着潜在的滥用投诉也越多。) 你希望为入站 Tor 连接使用哪个外部 TCP 端口?(即 “ORPort” 配置:如果你的服务器上该端口未被其他守护进程占用,推荐使用 443 端口。推荐 ORPort 443 的原因是,它通常是公共 Wi-Fi 网络中少数开放的端口之一。9001 端口也是另一个常用的 ORPort。) 你将在中继的 ContactInfo 字段中使用哪个电子邮箱地址?该信息将是公开的。 你希望为 Tor 流量分配多少带宽 / 每月流量? 服务器是否具备 IPv6 地址?
安装命令将以代码块形式给出,且必须以 root 权限执行。
请点击下方你想要托管的中继类型,并且不要忘记阅读“中继安装后事项与最佳实践”。
中继 / 守护中继
运行一个中继 / 守护中继
https://community.torproject.org/relay/setup/guard/
桥接
运行一个 obfs4 桥接,帮助受审查地区的用户连接到 Tor 网络
https://community.torproject.org/relay/setup/bridge/
出口中继
如何部署一个出口中继
https://community.torproject.org/relay/setup/exit/
中继安装后事项与最佳实践
了解中继安装完成后需要做什么
https://community.torproject.org/relay/setup/post-install/
Snowflake
运行一个 Snowflake 代理,帮助受审查地区的用户连接到 Tor 网络
https://community.torproject.org/relay/setup/snowflake/
WebTunnel 桥接
运行一个 WebTunnel 桥接,帮助受审查地区的用户连接到 Tor 网络
https://community.torproject.org/relay/setup/webtunnel/
洋葱服务
洋葱服务是指只能通过 Tor 浏览器访问的服务。运行洋葱服务可以让用户享受到 HTTPS 的所有安全保障,同时还能获得 Tor 浏览器带来的额外隐私优势。
怎么运行的
洋葱服务(Onion Services)是只能通过 Tor 访问的服务。运行一个洋葱服务,可以在享受 HTTPS 所提供的全部安全性的同时,额外获得 Tor 浏览器带来的隐私优势。
为什么使用洋葱服务? 洋葱服务为用户提供了多种隐私和安全方面的好处。
位置隐藏 洋葱服务的 IP 地址是受保护的。洋葱服务是在 TCP/IP 之上的一种覆盖网络,因此在某种意义上,IP 地址对洋葱服务来说甚至没有实际意义:在协议中它们根本不会被使用。
端到端身份认证 当用户访问某个特定的 .onion 地址时,可以确定其看到的内容只能来自该洋葱服务本身,不存在冒充的可能,而这在普通网络环境中通常无法保证。通常,访问一个网站并不意味着中间人没有将连接重定向到其他位置(例如 DNS 攻击)。
端到端加密 洋葱服务的流量从客户端到洋葱服务主机全程加密,相当于免费获得了强级别的 SSL/HTTPS。
NAT 穿透 你的网络是否被过滤,无法在防火墙上开放端口?这种情况可能发生在大学校园、办公室、机场,或几乎任何地方。洋葱服务不需要开放端口,因为它们可以穿透 NAT,只建立出站连接。
洋葱服务协议:概览 问题随之而来:要实现以上所有特性,需要一种什么样的协议?通常,人们连接到一个 IP 地址即可完成通信,但如果目标根本没有 IP 地址,该如何连接呢?
具体来说,一个洋葱服务的地址看起来像这样:
vww6ybal4bd7szmgncyruucpgfkqahzddi37ktceo3ah7ngmcopnpyyd.onion它看起来怪异且随机,是因为它实际上是洋葱服务的身份公钥。这也是我们能够实现上述安全特性的原因之一。
洋葱服务协议使用 Tor 网络,使客户端能够向服务进行自我介绍,然后通过 Tor 网络与该服务建立一个会合点(rendezvous point)。下面是这一过程的详细分解:
第一幕:洋葱服务如何设置引荐点
假设你所在城市的一家地方报纸决定搭建一个洋葱服务(使用 SecureDrop)来接收匿名线索。协议的第一步是,洋葱服务会联系多个 Tor 中继节点,请求它们作为其入口点,并建立长期连接。这些连接是匿名化的,因此服务器不会向入口点透露服务的具体位置。
洋葱服务将隐藏在 Tor 网络之后,并通过三跳 Tor 电路仅允许通过三个入口点进行访问,从而保护自身。
第二幕:洋葱新闻服务发布其描述符的地方
现在引荐点已经设立完毕,我们需要创造一种方式让客户能够找到它们。
为此,洋葱服务会组装一个洋葱服务描述符,其中包含其引荐点列表(以及“认证密钥”),并使用洋葱服务的身份私钥对该描述符进行签名。这里使用的身份私钥,正是编码在洋葱服务地址中的公钥所对应的私钥部分。
洋葱服务随后将这个已签名的描述符上传到 Tor 网络的一部分——分布式哈希表(DHT)中,以便客户端能够获取。上传过程同样通过匿名化的 Tor 电路完成,从而不会暴露洋葱服务的真实位置。
第三幕:客户想要访问洋葱服务
假设你想匿名地通过当地报纸的 SecureDrop 服务向其发送一些税务欺诈数据。你从公共网站或朋友那里找到了该报纸 SecureDrop 服务的洋葱地址。
第四幕:客户向洋葱服务机构自我介绍
前面所有步骤都只是为了配置洋葱服务,以便客户端可以访问它。现在让我们快进到实际客户端想要访问该服务的阶段。
在这种情况下,客户端拥有 SecureDrop 的洋葱地址并想要访问它,因此他们使用 Tor 浏览器连接到该服务。接下来,客户端需要访问步骤 2中的分布式哈希表,并请求 SecureDrop 洋葱服务的签名描述符。
第五幕:客户核实洋葱地址签名
当客户端收到签名描述符时,它会使用编码在洋葱地址中的公钥来验证描述符的签名。这提供了端到端的身份验证安全属性,因为我们现在可以确定该描述符只能由该洋葱服务生成,而不能由其他任何服务生成。
而在该描述符内部,包含了引介点信息,使客户端能够向 SecureDrop 的洋葱服务进行引介并建立连接。
第六幕:客户确定会面地点
在进行连接之前,客户端(在本例中是您)选择一个 Tor 中继并与其建立连接。客户端请求该中继作为其会合点,并向其提供一个“一次性密钥”,该密钥将用于会合过程。
第七幕:洋葱服务与客户的会面
引荐点会将您的详细信息(密钥和会合地址)传递给洋葱服务,洋葱服务会运行多个验证过程来决定您是否值得信赖。
第八幕:会面地点验证客户的秘密
洋葱服务通过匿名电路连接到会合点,并将“一次性密钥”发送给它。会合点进行最终验证,以匹配您和该服务发送的密钥字符串(该密钥字符串也来自您,但已通过该服务转发)。
汇合点只是简单地将(端到端加密的)消息从客户端转发到服务,反之亦然。
第九幕:洋葱服务与客户的会面
通常,客户端与洋葱服务之间的完整连接由 6 个中继组成:其中 3 个由客户端选择,第 3 个作为汇合点,另外 3 个由洋葱服务选择。这为该连接提供了位置隐藏功能。
最后,利用汇合点,在你和你所在报纸的 SecureDrop Onion 服务之间形成 Tor 电路。
设置你的洋葱服务
本指南将向你展示如何为你的网站搭建一个洋葱服务(Onion Service)。如果你想了解洋葱服务协议的技术细节,请参阅我们的洋葱服务协议页面。
第 0 步:准备一个可用的 Tor
在本指南中,我们假设你的机器上已经有一个可以正常运行的 Tor。要设置 Tor,请按照 Tor 安装指南进行操作。Tor 必须能够正确启动并运行,本指南才能生效。同时,你还需要知道 Tor 的配置文件所在位置。
第 1 步:搭建一个可用的 Web 服务器
第一步,你需要在本地搭建一个 Web 服务器,例如 Nginx、Apache,或你喜欢的其他 Web 服务器
第 2 步:配置 Tor 洋葱服务
下一步是打开 Tor 的配置文件(torrc),并进行相应配置来设置洋葱服务。根据你的操作系统和环境不同,Tor 的配置文件位置或内容可能会有所差异。
你需要在 torrc 文件中添加以下两行:
HiddenServiceDir /var/lib/tor/my_website/
HiddenServicePort 80 127.0.0.1:80HiddenServiceDir 用于指定一个目录,该目录中将包含你的洋葱服务所需的信息和加密密钥。你需要将其修改为一个 Tor 运行用户可读写的实际目录。
HiddenServicePort 用于指定一个虚拟端口(也就是访问你的洋葱服务时使用的端口)。在上述示例中,它表示所有访问洋葱服务 80 端口的流量,都会被转发到 127.0.0.1:80(也就是第 1 步中 Web 服务器监听的地址)。
提示:为了避免将洋葱服务暴露给本地网络,一个良好的实践是使用 Unix 套接字而不是 TCP 套接字来运行洋葱服务。你需要在 torrc 中添加以下两行:
HiddenServiceDir /var/lib/tor/my-website/
HiddenServicePort 80 unix:/var/run/tor/my-website.sock第 3 步:重启 Tor 并检查是否成功
现在保存你的 torrc 文件并重启 Tor:
systemctl restart tor当 Tor 启动时,它会自动创建你在 HiddenServiceDir 中指定的目录(如果该目录不存在)。
第 4 步:测试你的洋葱服务是否可用
要获取你的洋葱服务地址,请进入你设置的 HiddenServiceDir 目录,找到一个名为 hostname 的文件。该文件中包含了你新创建的 v3 洋葱服务的主机名。目录中的其他文件是你的洋葱服务密钥,务必要妥善保密。如果密钥泄露,其他人就可以冒充你的洋葱服务,使其被视为已泄露、不可信,甚至存在安全风险。
现在你可以使用 Tor 浏览器访问你的洋葱服务,你应该能看到第 1 步中设置的 HTML 页面。如果无法访问,请查看日志文件获取线索,并不断调整直到它能够正常工作。
需要注意的是,这样配置的洋葱服务,任何知道或发现该地址的人都可以访问。你也可以让洋葱服务启用身份验证,只有持有私钥的用户才能访问该服务。更多信息请参阅客户端授权相关文档( Client authorization)。
(可选)第 5 步:运行多个洋葱服务
如果你希望为同一个洋葱服务转发多个虚拟端口,只需添加更多的 HiddenServicePort 行即可。如果你希望在同一个 Tor 客户端上运行多个洋葱服务,只需再添加一个 HiddenServiceDir 行即可。之后的所有 HiddenServicePort 行都会对应最近的 HiddenServiceDir,直到你添加下一个 HiddenServiceDir 为止:
HiddenServiceDir /var/lib/tor/onion_service/
HiddenServicePort 80 127.0.0.1:80
HiddenServiceDir /var/lib/tor/other_onion_service/
HiddenServicePort 6667 127.0.0.1:6667
HiddenServicePort 22 127.0.0.1:22如果你在同一个 Web 服务器上运行多个洋葱网站,请记得编辑 Web 服务器的虚拟主机配置文件,并为每个网站添加对应的洋葱地址。例如,在 Nginx 中并使用 Tor 的 Unix 套接字时,配置可能如下:
server {
listen unix:/var/run/tor/my-website.sock;
server_name <你的洋葱地址>.onion;
access_log /var/log/nginx/my-website.log;
index index.html;
root /path/to/htdocs;
}运维安全(Operational Security)。
- Operational Security.
- Onion services best practices by Riseup Collective.
- OnionScan 一个用于检查你的洋葱网站是否泄露可能危及匿名性的工具,例如服务器 IP 地址。
最后,如果你计划长期运行该服务,建议在安全的位置备份 private_key 文件。
当你的洋葱网站运行起来之后,你可能还想部署Onion-Location,或使用 Docker、Heroku、Terraform、Ansible、stem 等工具来自动化管理洋葱服务。如果你有一个静态网站,但从未安装过 Nginx 或 Apache,另一个可以尝试的项目是 OnionShare,它通过图形界面引导配置,所需配置极少,更容易运行一个洋葱网站。
如何安装
https://community.torproject.org/onion-services/setup/install/
支持
tor
https://support.torproject.org/about-tor/
tor浏览器
https://support.torproject.org/tor-browser/
生态
评论
评论加载中……