如何在 Ubuntu VPS 上设置 Tor Middle/Guard 中继

本文为机器翻译
展示原文

我们现在都知道 Tor 是什么。无论您知道它是一种对抗不公正审查制度的工具,还是您打开在线购买毒品的特殊浏览器,它在过去十年中的使用越来越广泛,并且它仍然是绕过政府防火墙和在运行时保持匿名等重要事情的强大工具家庭服务器。

在这篇文章中,我将简要概述洋葱路由器(是的,这就是 TOR 代表的含义)在不同场景下的工作方式,以及如何帮助保护和分散 Tor 网络,同时帮助它保持抗审查性,以及专用带宽来提高性能,而不会牺牲您自己的安全或隐私。

我将把本指南的重点放在从 VPS 重新设置上。您可以使用便宜的服务,例如 Vultr 提供的每月 6 美元的选项,而不会占用家庭网络的带宽。此外,运行 Tor 中继会将您的 IP 地址暴露给公众,因为所有中继都存储在 Tor 中继目录中。大多数家庭互联网 IP 分配的动态特性也可能会降低中继的可靠性。

基本上,花 6 美元在 VPS 上运行它是值得的。

首先,必须做出一个非常重要的区别……

“中间”和“保护”中继与出口节点

Tor 具有三种类型的节点:保护(或入口)节点、中间节点和出口节点。

顾名思义,入口节点是您进入 Tor 网络的入口。无论您输入的是常规的旧 .com 域还是使用 .onion 域,您的流量都会首先通过入口节点进行路由。

中间节点同样是不言自明的。 Tor 通过在多个中继(通常是三个)之间弹跳您的流量来工作。这些由入口/保护节点、中间节点组成,并且取决于您是要访问常规“clearnet”还是“darknet”Tor 隐藏服务,出口节点(到 clearnet)或直接从您正在访问的站点的服务器的中间节点(隐藏服务)。

从技术上讲,入口/保护中继和中间中继是同一回事,但中继仅在激活一个月左右并且被网络评估为足够快后才用作入口。

如果您通过 Tor 访问一个普通的“clearnet”站点,您的流量将通过入口、中间和出口节点进行路由。如果你去一个 .onion 网站,你的流量仍然在 Tor 网络内路由,因此它不需要出口节点。

这是重要警告出现的地方!

绝对可以运行一个入口/中间节点,但不要运行一个出口节点,除非你完全理解所涉及的风险并已采取适当的法律建议。

这是一个非常重要的话题,甚至连 Tor 项目本身也有专门的页面来说明为什么你不应该在家里运行出口节点,指导你在支持 Tor 网络并可以保证的非营利或有限公司的情况下这样做你受到法律保护,如果你因为有人做了看起来像是来自你的 IP 地址的非法行为而遭到突袭怎么办。

幸运的是,如果您只设置一个 Tor 入口/中间中继并禁用所有出口流量,这根本不是问题。以上风险仅适用于出口节点。

这是因为使用标准的入口/中间节点,您只能在 Tor 网络中中继加密流量,没有流量会从您的 IP 或 VPS 的 IP 访问“clearnet”。您的中继将流量发送到由其他人运行的出口节点,或者如果用户正在访问 Tor 隐藏服务,它将在 Tor 网络内发送流量。

在任何一种情况下,Tor 电路的加密特性都意味着网络无法监控入口和中间中继,并且通过中继路由的流量不会附加到您的 IP 地址。

这就是本指南将涵盖的内容。如何在 Tor 网络中安全地设置入口/中间中继。如果在 VPS 上正确设置并有助于 Tor 网络的安全性、速度、去中心化和审查阻力,这对您来说几乎是零风险。

设置 VPS

使用 Debian 或 Ubuntu 启动基本 VPS。理想情况下,您应该使用 SSH 密钥而不是密码进行登录。您还应该将主机的防火墙规则设置为仅允许来自您自己的 IP 地址通过端口 22 的传入流量,这将使您的 IP 范围之外的人甚至无法尝试破解您的 SSH 登录。

重要提示:请确保您在这些主机防火墙规则中也允许来自任何地方(不仅仅是您的 IP)的 HTTPS(端口 443)!

Vultr 防火墙规则页面允许 SSH 仅接受来自您的 IP 的连接

VPS 本身的硬件甚至可以只有 1 个 vCPU 和 1GB RAM。这里要注意的最重要的部分是带宽。您每月至少需要几百 GB,理想情况下至少需要 1TB,如果超出部分收费,那应该是合理的。幸运的是,这些天带宽往往很便宜。

一些像 Digital Ocean 这样的主机甚至会“池化”你的带宽,所以如果你已经有一个 VPS 或其中的几个,并且他们分配的一些带宽未被使用,它可以被另一个人使用。

别担心,如果您想控制带宽使用,您可以在启用中继之前在配置中设置限制。

基本 VPS 配置

让 VPS 运行并通过 SSH 连接后的第一步是更新系统,将防火墙配置为仅允许 SSH 和 HTTPS,确保 apt 设置为通过 HTTPS 安装,然后重新启动:

 sudo apt update && sudo apt upgrade -y sudo apt install apt-transport-https sudo ufw allow ssh sudo ufw allow https sudo ufw enable sudo reboot

现在为了安全起见,我们只需要将服务器设置为自动更新:

sudo nano /etc/apt/apt.conf.d/50unattended-upgrades

只需删除updatesbackports行后面的// ,然后在默认行下方添加:

"TorProject:${distro_codename}";

它应该看起来像这样:

如果它看起来像这样你设置正确

现在只需向下滚动一点并确保将其设置为自动重启并启用自动清理选项以确保更新正常工作。您可以通过删除要启用Unattended-Upgrade选项之前的//来执行此操作,并确保在需要时将false更改为true

这些是您要启用的选项,它应该如下所示:

确保它重新启动以自动安装更新并清除不再需要的依赖项

现在按 ctrl + O 保存并按 ctrl + X 退出。

一旦完成,我们就可以直接开始设置 Tor 中继!

可选:设置域名

此时,您还可以通过在您的域上设置 A 和 AAAA 记录,将域或子域指向您的 VPS 的 IPv4 和 IPv6(如果支持)地址,就像您将任何其他 VPS 一样。

这将显示在 Tor 中继目录中,而不是主机的默认反向 DNS。这不是必需的,但最好将中继连接到您控制的域,这样更有条理,并且还可以让您选择提供一个网页,如果有人在浏览器中访问该 URL,则解释 Tor 是什么。

Vultr 也允许您在其端设置反向 DNS,无论是在启动 VPS 时还是稍后在设置选项卡中

大多数主机还应该允许您在其控制面板上将您的域设置为反向 DNS。这不能替代实际域的购买和设置记录。你应该两者都做。

安装 Tor 中继

一旦它重新启动并检查你正在运行的 Ubuntu 或 Debian 版本的代号,SSH 回到 VPS:

 lsb_release -c

例如,在当前的 Ubuntu LTS 上,这应该返回codename: jammy ,这在下一步中很重要。

现在我们创建 Tor 存储库文件:

 sudo nano /etc/apt/sources.list.d/tor.list

这应该创建一个新的空白文件。在其中,假设您的操作系统版本代号是jammy ,您可以将这两行粘贴到:

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

如果您的操作系统代号不同(例如 Debian 的buster ),请在上面的两行中用它替换jammy

现在只需添加 PGP 密钥,以便apt可以验证包:

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

最后,我们进行 Tor 服务器的实际安装:

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

完毕!

现在我们只需要配置它。

配置 Tor 中继

只需打开配置文件:

 sudo nano /etc/tor/torrc

您要确保取消注释(从中删除# )以下行:

 SocksPort 0 ORPort 443 Nickname whatevernameyouwant ExitPolicy reject *:* # no exits allowed ExitRelay 0

必须设置SocksPort 0才能使其作为中继正常工作。

默认情况下, ORPort可能会有所不同。如果此 VPS 未同时用作网络服务器,则将其更改为443是理想的选择。

Nickname可以是任何东西,但不要太长。它只能包含字母和数字,不能包含特殊字符或空格。如果您将名称设置得太长和/或放入空格或特殊字符,Tor 中继将拒绝启动,直到您更改名称。

最后但同样重要的是, ExitPolicy reject :行确保您的中继不会充当退出节点。确保你取消评论!它前面不应该有#!

ExitRelay 0选项已贬值,取而代之的是上面的ExitPolicy reject *:*选项,但它们不会相互抵消,因此您可以同时添加两者以确保双重效果。

以下是正确设置的一些屏幕截图。请记住,所有这些都已经存在,您需要做的就是删除要激活的位之前的#

SocksPort 0必须设置为中继模式工作

“仅用于继电器”部分:

如果这是专用 VPS,ORPort 443 是最兼容的,如果您没有设置域,您可以留下评论地址,设置昵称以识别您的中继

绝对确定您取消注释 no exits allowed 行,如下所示:

非常重要:确保取消注释 NO EXITS ALLOWED LINE!

选修的:

 Address yourdomain.com

如果您之前为 VPS 设置了域,请在此处输入。

 RelayBandwidthRate 100 KB # Throttle traffic to 100KB/s (800Kbps) RelayBandwidthBurst 200 KB # But allow bursts up to 200KB/s (1600Kbps)

如果您希望限制带宽速率,可以取消注释并调整以上内容。这被设置为每秒字节数,而不是每秒位数。如果需要,您可以在此处转换两者

取消注释以对每天通过中继的数据量设置硬限制:

 AccountingMax 4 GB AccountingStart day 00:00

或者,如果您更愿意设置每月最大带宽,请保留日行注释并取消注释这一行:

 AccountingStart month 3 15:00

这些设置的屏幕截图:

仅在您的 VPS 提供商要求时设置

现在按 ctrl + O 保存并按 ctrl + X 退出。

最后运行:

 sudo systemctl restart tor@default

就是这样,您的中继现在已经启动!

您可以通过等待几秒钟然后检查日志来验证它是否正常工作:

 sudo journalctl -xeu tor@default.service

像这样的消息意味着它正在工作:

 [your IP address:443] is reachable from the outside. Excellent. Publishing server descriptor.

如果同时启用了 IPv4 和 IPv6,您将看到两条类似的行。

最后一步:可选的 DDoS 保护

Tor 网络通常是 DDoS 攻击的目标。为了减轻这些对您的中继的影响,您可以安装一组 bash 脚本,这些脚本会自动更新并应用新的防火墙规则来动态阻止已知的僵尸网络。

首先确保你在你的主文件夹中:

 cd pwd

如果您不在主文件夹中,第一个命令会将您置于主文件夹中。第二个应该打印/home/[username]以确认您在您的主文件夹中。

现在让我们安装依赖项和脚本:

 sudo apt install ipset iptables curl wget https://raw.githubusercontent.com/Enkidu-6/tor-ddos/main/multi.sh wget https://raw.githubusercontent.com/Enkidu-6/tor-ddos/main/update.sh wget https://raw.githubusercontent.com/Enkidu-6/tor-ddos/main/refresh-authorities.sh wget https://raw.githubusercontent.com/Enkidu-6/tor-ddos/main/ipv4.txt wget https://raw.githubusercontent.com/Enkidu-6/tor-ddos/main/ipv6.txt

现在用nano打开ipv4.txt

 nano ipv4.txt

删除包括评论在内的内容,并按照以下格式输入您的 VPS 的实际 IPv4 地址,后跟端口(如果您完全按照上面的要求,则为 443):

 192.168.1.1:443

和以前一样按 ctrl + O 和 ctrl + X 保存并退出。

如果启用了 IPv6,请使用nano打开ipv6.txt并以这种格式重复上述操作:

 [abcd:efgh:1234:frfr:4002]:443

如果您没有 IPv6,只需擦除该文件,使其为空。

现在我们使 shell 脚本可执行:

 chmod a+x multi.sh chmod a+x update.sh chmod a+x refresh-authorities.sh

并以 root 权限运行multi.sh脚本来设置它:

 sudo ./multi.sh

它现在应该打印你的“mangle” ipset规则。如果是这样,它正在工作。

最后,设置一个crontab ,使其每天更新并在更新后服务器重新启动时恢复:

 (crontab -l ; echo "0 0 * * * $PWD/refresh-authorities.sh") | crontab -

如果您之前没有在此 VPS 上设置任何 cronjobs,则收到类似no crontab for [username]消息是正常的。不要再运行它。

您可以通过运行以下命令来确定它是否正常工作:

 crontab -l

如果它表明你是 gucci:

 0 0 * * * /home/[username]/refresh-authorities.sh

如果您需要手动更新这些规则,只需运行:

 sudo ./update.sh

完毕!

你做到了!

如果你走到这一步,干得好!你现在有一个 Tor 中继!

大约三个小时后,在Tor 中继目录上搜索你给中继的昵称应该会显示出来。索引后,连同 IP 地址等详细信息,您应该会看到标有“正在运行”和“有效”的徽章。

如果带宽字段为空且共识权重为 0,请不要担心。这对于一个全新的节点来说是正常的。 Tor 的这篇文章解释了在新中继在网络上完全活跃之前测试新中继的过程。

TL;DR 是他们在前三天不会看到太多流量,然后一旦网络更好地了解它拥有多少带宽,它将被分配一个等级并开始越来越多地用于中继。

由于您现在可能觉得自己像机器人先生,所以这里有一个令人作呕的曲目值得庆祝!

https://www.youtube.com/watch?v=WV-vdI2CzMc

做得好!

您现在正在帮助优秀的 Tor 项目保持安全、去中心化、快速和抗审查!

喜欢这个内容并想要更多?您可以在TwitterTelegramNostr上关注我!

在此处手动复制/粘贴我的 Nostr 公钥:

npub17rlc0emedw5xljztfqrmykjaacsx6ujvdas64zznjadrnhhwlavq4jjtgg

想给我小费吗?您可以使用“收集”按钮以 0.01 ETH的价格将此帖子作为 Optimism 的 NFT,或者通过xanny@getalby.com给我一些 sats。

您还可以在此处发送一些链上BTC :

bc1qkeadruclrsr793w9rnv8mexatcv3wsttvckutz

或者在这里发送一些XMR :

88LLuFL7QE94WtsaBHtpueZoYYT33f6KHNxaQ2fqPXEqXfwnfCty9Jq8GcKunfDnTAACawXgjdzyWWxFj1GrSUPdH1EMaJd

#保持性感

<订阅://>

<收集://>

Mirror
免责声明:以上内容仅为作者观点,不代表Followin的任何立场,不构成与Followin相关的任何投资建议。
喜欢
收藏
评论