上线优惠价:每个套餐的价格都比我们追踪的最便宜的离岸竞争对手低 30%。 查看价格对比所有套餐价格均比最便宜的离岸主机服务商低 30%

知识库 · VPS

如何在 VPS 上运行 Tor 中继、网桥或洋葱服务

在 VPS 上运行 Tor 中继:从 Tor 项目的软件仓库安装 tor,然后搭建中间中继、obfs4 网桥、出口中继或洋葱服务。

更新于 阅读约 11 分钟

本指南要点

  • 从 Tor 项目自己的软件仓库安装 tor,该仓库提供当前的稳定版。
  • 中间中继或守卫中继需要一个昵称、一个公开的联系方式、一个开放的 ORPort,以及 ExitRelay 0。
  • 网桥会额外启用 obfs4 传输,并且不会出现在公开的中继列表中。
  • 出口节点需要一个包含 tor-exit 的反向 DNS 名称、精简出口策略、告知页面和本地 DNS 解析器,并且会招来滥用举报。
  • 洋葱服务将一个 .onion 地址指向运行在 127.0.0.1 上的网站;请备份其密钥。
VPS9 个章节
全部指南
本页内容
  1. 在 VPS 上运行 Tor 中继之前:选择角色
  2. 从 Tor 项目的软件仓库安装 Tor
  3. 在 VPS 上运行 Tor 中间中继或守卫中继
  4. 在 VPS 上运行 Tor 网桥
  5. 负责任地运行 Tor 出口中继
  6. 托管 Tor 洋葱服务(隐藏服务)
  7. 保持 Tor 中继健康运行
  8. 故障排查
  9. 常见问题

要在 VPS 上运行 Tor 中继,请从 Tor 项目自己的软件仓库安装 tor,在 /etc/tor/torrc 中写入昵称、联系方式和 ORPort,在防火墙中开放该端口,然后重启 tor。同一个 tor 还可以运行使用 obfs4 传输的网桥、出口中继,或为您自己的网站提供洋葱服务。

以下步骤使用运行 Debian 12 或 13、或 Ubuntu 22.04 或 24.04 LTS 的离岸 VPS,并按照快速入门获得 root 权限。每台服务器只承担一种角色:Tor 项目建议不要在中继上托管洋葱服务,网桥也不应复用公开中继的地址。

在 VPS 上运行 Tor 中继之前:选择角色

角色作用滥用举报Tor 项目最低要求建议起步套餐
中间中继或守卫中继转发加密流量;之后可担任守卫,即第一跳通常没有上下行各 10 Mbit/s,每月 100 GB 流量,512 MB 内存(超过 40 Mbit/s 时需 1 GB)Sloop:2 GB 内存,每月 $3.49
网桥不公开的入口点,供处于受审查网络中的用户使用不太可能上下行各 1 Mbit/sDinghy:1 GB,$2.39
出口中继最后一跳:目标站点看到的是您服务器的 IP 地址预计会收到建议 1.5 GB 内存Cutter:4 GB,$5.49
洋葱服务您的网站使用 .onion 地址,只能通过 Tor 访问仅针对您的内容取决于您的网站需求小型网站可选 Dinghy

每个 VPS 套餐都包含中继所需的独立 IPv4 地址,并且在我们的 1 Gbps 端口上,流量在合理使用范围内不限。如果繁忙的中继在 VPS 上造成问题,我们会先在客户中心通知您并建议解决方法。您可以按下文所示为 tor 设置上限,或将高速中继迁移到独立服务器上,独立服务器可以按其标称容量充分使用。

我们的可接受使用政策欢迎中继和网桥,并允许遵循 Tor 项目指南的出口节点。中继的地址和联系信息都是公开的:如果不能让中继追溯到您本人,请阅读如何匿名购买 VPS。地区决定了适用哪个国家的法律,网络页面则提供了延迟对比。

从 Tor 项目的软件仓库安装 Tor

Tor 项目推荐使用其自己的软件仓库,而不是 Debian 的 LTS 版本或 Ubuntu 的 universe 软件包,因为后者“未能得到可靠的更新”。该仓库提供当前的稳定系列 0.4.9:

apt update
apt install -y apt-transport-https gnupg wget
wget -qO- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --dearmor | tee /usr/share/keyrings/deb.torproject.org-keyring.gpg >/dev/null
. /etc/os-release
cat > /etc/apt/sources.list.d/tor.sources <<EOF
Types: deb deb-src
URIs: https://deb.torproject.org/torproject.org/
Suites: $VERSION_CODENAME
Components: main
Signed-By: /usr/share/keyrings/deb.torproject.org-keyring.gpg
EOF
apt update
apt install -y tor deb.torproject.org-keyring
tor --version

/etc/os-release 提供您系统的版本代号,例如 trixie 或 noble。keyring 软件包会让签名密钥保持最新,最后一条命令应输出 0.4.9 版本。

在 VPS 上运行 Tor 中间中继或守卫中继

将 /etc/tor/torrc 的内容替换为以下来自 Tor 项目中继指南的配置行,并填入您自己的值:

Nickname    myNiceRelay
ContactInfo YOUR_CONTACT_ADDRESS
ORPort      443
ExitRelay   0
SocksPort   0
Nickname
1 至 19 个字母和数字。
ContactInfo
当中继出现异常时,他人联系您的方式。该信息会被公开,因此请使用专门为此准备的地址;如果您运行多个中继,则必须填写。
ORPort
客户端和其他中继通过 IPv4 和 IPv6 连接的端口。任何空闲端口均可。
ExitRelay 0
流量只在 Tor 网络内部传输。
SocksPort 0
关闭软件包默认开启的本地客户端端口 9050。

开放端口,重启 tor 并查看日志。如果 UFW 尚未启用,请先按照加固指南放行 SSH。

ufw allow 443/tcp
systemctl restart tor@default
journalctl -e -u tor@default

可达性检查最多可能需要 20 分钟,结束时会显示 Self-testing indicates your ORPort ... is reachable from the outside. Excellent. Publishing server descriptor. 大约三小时后,可以在 Relay Search 上通过 /var/lib/tor/fingerprint 中的指纹找到您的中继。之后流量会在数周内逐步增加,正如 Tor 项目的新中继的生命周期一文所解释的那样。

限制带宽(可选)

如需限制中继的带宽,请将以下任一配置段添加到 torrc 中,然后重启 tor:

# average and burst rate, in each direction
RelayBandwidthRate  25 MBytes
RelayBandwidthBurst 50 MBytes

# or a monthly quota
AccountingStart month 1 00:00
AccountingMax   4 TBytes

Tor 按 2 的幂计算,因此每秒 25 MBytes 约等于 210 Mbit/s。达到配额后,tor 会进入休眠状态,直到下一个周期;tor 手册认为这种做法优于设置非常低的速率。

在 VPS 上运行 Tor 网桥

网桥是不在公开目录中的中继,因此更难被封锁。用户通过 obfs4 连接网桥,obfs4 是一种可插拔传输,它会对 Tor 流量进行变换以绕过审查。按照 Tor 项目网桥指南的说明,安装它并替换 torrc:

apt install -y obfs4proxy
BridgeRelay 1
ORPort 8443
ServerTransportPlugin obfs4 exec /usr/bin/obfs4proxy
ServerTransportListenAddr obfs4 0.0.0.0:8080
ExtORPort auto
ContactInfo YOUR_CONTACT_ADDRESS
Nickname PickANickname

请使用两个不同的、大于 1024 的空闲端口,并避开 9001,因为审查者可能会扫描该端口;使用更低的端口需要执行指南中的两个额外步骤。开放这两个端口并重启:

ufw allow 8443/tcp
ufw allow 8080/tcp
systemctl restart tor@default

日志中应显示 Registered server transport 'obfs4';如果没有,请检查 ServerTransportPlugin 的路径。Tor 项目现在以 lyrebird 的名称继续开发 obfs4proxy,它是一个支持更多传输方式的分支,但 Debian 12 和 13 以及 Ubuntu 22.04 和 24.04 仍然打包的是 obfs4proxy。如果系统中打包的是 lyrebird,请安装它并使用 /usr/bin/lyrebird。

您的网桥配置行位于 /var/lib/tor/pt_state/obfs4_bridgeline.txt 中:补上 IPv4 地址、obfs4 端口以及 /var/lib/tor/fingerprint 中的指纹,即可得到 Bridge obfs4 SERVER_IP:8080 FINGERPRINT cert=... iat-mode=0。除非您设置了 BridgeDistribution none,否则 Tor 项目会分发您的网桥,用户可能需要数天乃至数周才会陆续到来。请勿将网桥加入中继家族,也不要将现有中继改作网桥。

负责任地运行 Tor 出口中继

目标站点会将出口节点的 IP 地址视为流量来源,因此出口节点会招来滥用投诉;Tor 项目也指出,出口节点“在所有中继中面临最大的法律风险和责任”。只要您遵循 Tor 项目的出口节点指南并采用精简出口策略,我们的可接受使用政策就允许运行出口节点。按照 EFF 的建议,请为出口节点使用独立的 IP 地址,不在其上存放任何个人数据,并且绝不让您自己的流量经过它。

1. 申请反向 DNS 名称

在启用出口功能之前,请在客户中心服务器页面的服务器操作中选择设置反向 DNS(PTR),填写您自己域名下的主机名,例如 tor-exit.example.org。Tor 项目建议在名称中包含“tor-exit”,但绝不要使用 torproject.org。

2. 准备出口告知页面

80 端口上的一个页面会告诉任何查看该地址的人:这是一个 Tor 出口节点;该页面的作者表示,此举“已被证明能非常有效地减少滥用投诉”。复制 tor 自带的模板:

cp /usr/share/doc/tor/tor-exit-notice.html /etc/tor/tor-exit-notice.html

最小化的 Ubuntu 镜像不包含文档文件。如果该文件不存在,请改为从软件包中提取:

cd /tmp && apt download tor
dpkg-deb --fsys-tarfile tor_*.deb | tar -xO ./usr/share/doc/tor/tor-exit-notice.html > /etc/tor/tor-exit-notice.html

然后编辑标有 FIXME 的部分:您的主机名、联系地址,以及仅适用于美国的章节(非美国运营者应将其删除)。

3. 配置出口节点

Nickname    myExitRelay
ContactInfo YOUR_CONTACT_ADDRESS
ORPort      443
DirPort     80
DirPortFrontPage /etc/tor/tor-exit-notice.html
ExitRelay   1
ReducedExitPolicy 1
SocksPort   0

精简策略大约放行 65 个端口,其中包括网页、加密邮件和 SSH,但不包括 25 端口,我们的网络默认也会封禁该端口。ExitPolicy 行会优先生效,因此 ExitPolicy reject *:22 也会拒绝 SSH;IPv6Exit 1 则会增加 IPv6。DirPort 仍会提供告知页面,尽管中继已不再公布 DirPort。

4. 运行本地 DNS 解析器并启动

出口节点要为 Tor 用户解析域名,因此 Tor 项目要求使用本地的、带缓存并验证 DNSSEC 的解析器;其 Debian 和 Ubuntu 操作步骤使用的是 Unbound。我们额外添加的 rm 在 Ubuntu 上很关键,因为在 Ubuntu 上 /etc/resolv.conf 是一个指向 systemd-resolved 的链接:systemd-resolved 只会读取放在该位置的普通文件,详见其手册。

apt install -y unbound
systemctl enable --now unbound
cp /etc/resolv.conf /etc/resolv.conf.backup
rm -f /etc/resolv.conf
echo nameserver 127.0.0.1 > /etc/resolv.conf
chattr +i /etc/resolv.conf
ufw allow 443/tcp
ufw allow 80/tcp
systemctl restart tor@default

Unbound 默认只在 localhost 上响应;请保持这一设置,因为开放解析器违反我们的可接受使用政策。之后,访问 http://SERVER_IP/ 应能看到告知页面。

我们如何处理针对您出口节点的投诉

针对 Tor 用户经由您的出口节点所发送流量的举报,会按照我们常规的投诉处理流程处理,而不是自动暂停服务。每一份举报都会依据服务器所在地的法律进行审查;外国通知(包括美国 DMCA 通知)会得到答复,但不予执行,我们也可以在客户中心将其实质内容转告您。如果是独立服务器或 GPU 服务器,请在启动出口节点之前通过工单告知我们,以便我们迅速将举报转交给您。

托管 Tor 洋葱服务(隐藏服务)

洋葱服务(tor 的配置中称为 Tor 隐藏服务)会在一个只能通过 Tor 访问的 .onion 地址上发布网站。它不需要开放任何端口,因为 tor 只向外发起连接,所以网站只需监听 127.0.0.1。安装 nginx,删除其默认站点(它会在所有地址上响应),然后在本地提供您的页面:

apt install -y nginx
rm /etc/nginx/sites-enabled/default
mkdir -p /var/www/onion
echo 'Hello from my onion site' > /var/www/onion/index.html
cat > /etc/nginx/conf.d/onion.conf <<'EOF'
server {
    listen 127.0.0.1:8080;
    root /var/www/onion;
    server_tokens off;
}
EOF
nginx -t
systemctl reload nginx

在 torrc 中添加 Tor 项目洋葱服务指南中的两行配置,然后重启 tor 并查看您的地址:

HiddenServiceDir /var/lib/tor/my-website/
HiddenServicePort 80 127.0.0.1:8080
systemctl restart tor@default
cat /var/lib/tor/my-website/hostname

用 Tor Browser 打开该地址。请将该目录保留在 /var/lib/tor 下,tor 服务有权在此写入。其中的 hs_ed25519_secret_key 文件就等于您的地址,因为 .onion 名称就是该密钥对应的公钥:任何人复制了它,就能冒充该服务;丢失了它,也就失去了这个地址,因此请按下文所示进行备份。

不要泄露服务器的地址

  • 保持 80 和 443 端口关闭,使这些页面无法通过服务器的公网 IP 被找到。
  • 隐藏版本标识、错误详情、状态页面和调试输出(例如 PHP 的 phpinfo()),这些信息可能暴露服务器的真实名称和地址。
  • 注意出站连接,例如 DNS 查询、发送邮件或为访客抓取 URL:正如 Riseup 的洋葱服务指南所述,这些连接来自您的真实 IP。其余事项请参阅 Tor 项目的操作安全页面。

通过公开网站公布洋葱地址(可选)

如果该网站同时通过 HTTPS 公开运行,在其 HTTPS server 块中加入下面这一行后,Tor Browser 就会提示访客可以使用洋葱地址,详见 Onion-Location 指南。这会把两个地址关联起来:对公开镜像站没有问题,对匿名服务则是错误做法。

add_header Onion-Location http://YOUR_ONION_ADDRESS.onion$request_uri;

保持 Tor 中继健康运行

自动更新

让加固指南中配置的 unattended-upgrades 也一并更新 tor。按照 Tor 项目的更新指南,在 Debian 上将第一行添加到 /etc/apt/apt.conf.d/50unattended-upgrades 的 Unattended-Upgrade::Origins-Pattern 块中,在 Ubuntu 上则将第二行添加到 Unattended-Upgrade::Allowed-Origins 中,然后用 unattended-upgrade --debug --dry-run 进行测试。

"origin=TorProject";
"TorProject:${distro_codename}";

备份

/var/lib/tor 中保存着中继的身份密钥、网桥的 pt_state 以及洋葱服务的密钥;没有这些文件,重装后的服务器会作为一个新中继启动。请按照 Tor 项目的建议将其打包归档,并将归档文件加密保存在服务器之外。恢复时,先停止 tor,再以 root 身份运行 tar -xzf tor-backup.tar.gz -C /var/lib,这样可以保留文件的所有者和权限。

tar -czf /root/tor-backup.tar.gz -C /var/lib tor

使用 nyx 进行监控

nyx 是 Tor 项目的终端监控工具,可实时显示带宽、连接和事件。tor 软件包已经开启了 nyx 所用的控制套接字,因此以 root 身份运行 nyx 即可:

apt install -y nyx
nyx

多个中继:设置中继家族

将您的中继声明为同一个家族,这样客户端就不会在同一条线路中使用其中的两个中继。正如 Tor 项目的 FamilyId 指南所述,自 tor 0.4.9 起,同一家族的中继共享一个密钥;其安装后指南称旧的 MyFamily 列表已被移除。只在其中一个中继上运行第一条命令,并且只运行一次:它会写入 myrelays.secret_family_key 并输出一行 FamilyId,再次运行则会覆盖该密钥。在每个中继上安装该密钥,将这一行添加到 torrc 中,然后重新加载。请妥善保管该密钥,切勿外泄。

tor --keygen-family myrelays
install -o debian-tor -g debian-tor -m 600 myrelays.secret_family_key /var/lib/tor/keys/
systemctl reload tor@default

故障排查

tor 无法启动

按照服务每次启动前的检查方式来验证配置。它会输出被拒绝的内容,例如拼错的选项、无效的昵称或已被占用的端口(可用 ss -tlnp 查看端口占用情况):

tor --defaults-torrc /usr/share/tor/tor-service-defaults-torrc -f /etc/tor/torrc --verify-config

ORPort 无法从外部访问

出现 Your server has not managed to confirm reachability for its ORPort(s) 表示该端口从外部无法访问,在端口可达之前,中继不会发布任何信息。请将 ufw status 的输出与 ORPort 这一行进行对照。如果只有 IPv6 地址不可达,请修复 IPv6,或改用 ORPort 443 IPv4Only。

常见问题

可以在 VPS 上运行 Tor 中继吗?

可以。中继需要一个 IPv4 地址和一个可访问的 TCP 端口;如果是中间中继或守卫中继,每个方向还需要至少 10 Mbit/s 的带宽。每台离岸 VPS 都是 KVM 虚拟机,拥有完整 root 权限和独立 IPv4 地址,我们的可接受使用政策也允许运行中继、网桥和出口节点。

这取决于国家,既包括您所在的国家,也包括服务器所在的国家。就美国而言,EFF 的中继运营者法律常见问题表示,据其所知,尚无人因运行中继而被起诉、遭到刑事追诉或被定罪,并认为根据美国法律,中继(包括出口节点)是合法的。出口节点面临的法律风险最大。

运行 Tor 中继会收到滥用投诉吗?

中间中继、守卫中继或网桥很少会收到:Tor 项目表示,守卫中继和中间中继通常不会收到投诉,网桥也不太可能收到。出口节点则会收到,因为访问目标看到的是出口节点的 IP 地址。我们按照投诉处理流程处理这些举报,而不是自动暂停服务。

Tor 中继需要多少带宽?

根据 Tor 项目的中继要求,中间中继或守卫中继每个方向至少需要 10 Mbit/s(建议 16 Mbit/s),每月流量至少 100 GB,最好达到 2 TB。网桥需要 1 Mbit/s。我们的 1 Gbps 端口在合理使用前提下不限流量。

可以在同一台 VPS 上同时运行洋葱服务和普通网站吗?

可以:同一个 Web 服务器可以在服务器的 IP 地址上提供公开网站,在 127.0.0.1 上提供洋葱网站,只要两者都不响应对方的主机名即可。然后用 Onion-Location 标头将 Tor Browser 用户引导至洋葱地址。但这会把两者关联起来,因此匿名服务需要单独的一台服务器。

某个步骤遇到困难?

独立服务器和 GPU 服务器客户可在客户中心提交工单,注明服务器的 IP 地址以及已尝试过的操作。首次回复目标:12 小时内。其他服务器请使用其页面上的服务器操作、指南和网络状态页面。

欢迎回来

登录以管理您的服务器和余额。

无需 KYC由 Cloudflare Turnstile 提供人机验证无跟踪