Tor,即洋葱路由器,是一个匿名网络,使用户能够通过加密其流量并通过一系列节点进行路由来匿名浏览互联网。这些节点可以由任何人运行,最后一个节点称为出口节点,负责将流量发送回常规互联网。运行 Tor 出口节点是为互联网的隐私和自由做出贡献的重要方式,但这需要一些技术专长和责任。在这篇博客文章中,我们将引导您完成托管 Tor 出口节点的过程。
步骤 0:部署前的考虑#
以下是一些需要考虑的事项:
- 法律考虑:在某些国家,托管 Tor 出口节点是非法的,您可能会因此面临法律后果。您应该研究您所在国家的法律,并确保托管 Tor 出口节点是合法的,然后再继续。
- 带宽和资源消耗:Tor 出口节点可能会消耗大量带宽,您需要有快速可靠的互联网连接来处理流量。如果您的托管计划有带宽上限,您可能还需要支付额外的带宽费用。
- 技术专长:托管 Tor 出口节点需要一些技术专长和 Linux 管理经验。您需要设置服务器,安装和配置 Tor 软件,并维护节点以确保其平稳运行。
- 与非法活动相关的风险:作为出口节点运营商,您可能会对通过您的节点传递的任何非法活动负责。虽然 Tor 旨在保护用户的匿名性,但并非万无一失,执法机构可能能够追踪活动回到您的节点。
- 声誉风险:托管 Tor 出口节点可能会吸引执法机构以及您的互联网服务提供商和其他组织的不必要关注和审查。在继续之前,考虑对您声誉的潜在风险是很重要的。
您可以托管三种类型的 Tor 节点:中间 / 守卫节点、桥接节点和出口节点。中间节点是中继,帮助在 Tor 网络中的不同节点之间路由流量,但不作为离开网络的流量的最终节点。桥接节点类似于中间节点,但它们不会在 Tor 目录中公开列出,这可以帮助用户绕过审查和监视。出口节点则是离开 Tor 网络的流量的最终节点,为用户提供匿名访问常规互联网的网关。然而,托管出口节点带来了重大的法律和道德责任,因为出口节点可能被用于路由非法活动。托管 Tor 节点的决定以及托管哪种类型的节点,应在仔细考虑风险和收益后做出,并遵循 Tor 项目的指南和政策。
步骤 1:选择位置#
托管 Tor 出口节点的第一步是选择服务器的位置。您需要选择一个具有快速可靠的互联网连接的位置,以及高带宽上限或无限制计划,因为出口节点可能会消耗大量带宽。选择一个 Tor 合法且未被封锁的位置也很重要,因为在不允许 Tor 的国家托管出口节点可能会导致法律问题。
步骤 2:设置您的服务器#
一旦您选择了位置,您需要设置服务器。您可以使用虚拟私人服务器(VPS)或专用服务器,具体取决于您的预算和需求。您需要安装 Linux 操作系统,例如 Ubuntu 或 Debian,并将其配置为用作 Tor 出口节点。Tor 项目提供了在 Linux 上设置 Tor 出口节点的详细说明。
步骤 3:安装和配置 Tor#
接下来,您需要安装 Tor 软件并将其配置为出口节点。您可以使用 Linux 发行版的包管理器安装 Tor,或者您可以从 Tor 项目的网站下载并安装它。安装后,您需要配置 Tor 以作为出口节点运行,这涉及编辑 Tor 配置文件。Tor 项目提供了将 Tor 配置为出口节点的详细说明。
Tor 项目提供了多种文档以指导您完成安装过程:https://community.torproject.org/onion-services/setup/install/。
我在设置过程中还发现这个视频很有用:https://www.youtube.com/watch?v=EMZqZ3XX8Eo
#!/bin/bash
# 步骤 1:安装 apt-transport-https
sudo apt install apt-transport-https
# 步骤 2:将 Tor 仓库添加到 sources.list.d
OS_CODENAME=$(lsb_release -c | awk '{print $2}')
ARCHITECTURE=$(dpkg --print-architecture)
sudo tee /etc/apt/sources.list.d/tor.list >/dev/null <<EOF
deb [arch=${ARCHITECTURE} signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org ${OS_CODENAME} main
deb-src [arch=${ARCHITECTURE} signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org ${OS_CODENAME} main
deb [arch=${ARCHITECTURE} signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org tor-experimental-${OS_CODENAME} main
deb-src [arch=${ARCHITECTURE} signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org tor-experimental-${OS_CODENAME} main
deb [arch=${ARCHITECTURE} signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org tor-nightly-main-${OS_CODENAME} main
deb-src [arch=${ARCHITECTURE} signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org tor-nightly-main-${OS_CODENAME} main
EOF
# 步骤 3:为 Tor 仓库添加 GPG 密钥
wget -qO- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | sudo gpg --dearmor | sudo tee /usr/share/keyrings/tor-archive-keyring.gpg >/dev/null
# 步骤 4:安装 Tor 和 Debian 密钥环
sudo apt update
sudo apt install tor deb.torproject.org-keyring
如果您使用的是 Debian/Ubuntu,您可以简单地将上述命令复制粘贴到一个 shell 文件(例如 tor.sh)中并运行:
chmod u+x tor.sh
sudo ./tor.sh
以安装 Tor,然后使用您喜欢的文本编辑器修改位于 `/etc/tor/torrc` 的配置文件。
以下是 torrc 文件的两种不同配置:
对于出口中继:
(Tor 项目提到,“如果您想成为一个有用的出口中继,您必须至少允许目标端口 80 和 443。”)
Exitpolicy accept *:443
Exitpolicy accept *:80
Exitpolicy reject *:*
ExitRelay 1
对于仅转发流量的桥接:
Exitpolicy reject *:*
请注意,设置 Exitpolicy reject : 并不意味着节点将不转发任何流量。这意味着节点不会被用作 Tor 流量的出口点。
为了允许通过您的 Tor 节点转发其他服务,您可以在 torrc 文件中添加以下行:
Exit policy accept *.*
然而,不建议这样做,因为某些端口可能常用于 DDoS 攻击或电子邮件垃圾邮件。为了防止滥用,建议避免打开任何可能容易受到垃圾邮件或误用的电子邮件或其他端口。
在我个人看来,我只会允许 HTTP/HTTPS 流量通过我的 Tor 节点出口。
ORPort 20308
Exitpolicy accept *:443
Exitpolicy accept *:80
Exitpolicy reject *:*
ExitRelay 1
Nickname yourtorrelaynickname
ContactInfo youremail@mail.com
IPv6Exit 1
要设置 obfs4 桥接,请使用以下附加行:
ServerTransportPlugin obfs4 exec /usr/bin/obfs4proxy
ServerTransportListenAddr obfs4 0.0.0.0:40001
ExtORPort auto
有关 obfs4 桥接设置的更多信息,请访问 https://community.torproject.org/relay/setup/bridge
对于托管不同类型的中继节点,Tor 项目有一个维基: https://community.torproject.org/relay/setup/
对于出口节点,您需要设置本地 DNS 解析器:
Debian/Ubuntu
以下命令安装 unbound,备份您的 DNS 配置,并告诉系统使用本地解析器:
apt install unbound
cp /etc/resolv.conf /etc/resolv.conf.backup
echo nameserver 127.0.0.1 > /etc/resolv.conf
为了避免不必要的配置更改(例如由 DHCP 客户端引起的):
chattr +i /etc/resolv.conf
Debian 配置默认启用 QNAME 最小化(RFC7816),因此您无需显式启用它。您刚刚安装的 Unbound 解析器也会进行 DNSSEC 验证。
如果您正在运行 systemd-resolved 及其存根监听器,您可能需要做更多的工作。请参考 resolved.conf 手册页。
步骤 4:测试您的出口节点#
在您配置好 Tor 后,您需要测试您的出口节点,以确保其正常工作。您可以使用 Tor 浏览器通过连接到网站并验证您的 IP 地址是否列为出口节点 IP 地址来测试您的出口节点。您还可以使用 Tor Metrics 网站监控您的出口节点的带宽使用情况和性能。
要查看您的出口节点是否正在运行,请检查此批量列表: https://check.torproject.org/torbulkexitlist
步骤 5:监控您的出口节点#
一旦您的出口节点启动并运行,监控它以确保它没有被用于恶意目的非常重要。Tor 项目提供了一系列推荐的监控工具和技术,包括使用日志分析软件跟踪通过您的出口节点传递的流量,并监控 Tor Metrics 网站以发现异常活动。定期检查 Tor 项目的出口节点运行指南,以确保您遵循其政策也是一个好主意。
Tor 项目还提供了一个关于安装后和良好实践的有用页面: https://community.torproject.org/relay/setup/post-install/
Elsa 节点是我目前正在运行的 Tor 出口节点,见: https://metrics.torproject.org/rs.html#search/elsa
结论#
运行 Tor 出口节点可以是为互联网的隐私和自由做出贡献的一种有益方式,但这需要一些技术专长和责任。通过遵循本文中概述的步骤,您可以设置并运行一个 Tor 出口节点,为 Tor 网络提供有价值的服务,同时维护您服务器及其用户的安全和隐私。