OffshoreVps
隐私与法律2026年10月20日阅读约 8 分钟作者:OffshoreVps 团队

托管 .onion 网站:在 VPS 上运行 Tor 隐藏服务

将网站作为 Tor onion 服务运行:安装 Tor、将 Nginx 绑定到 localhost、读取你的 .onion 地址、添加客户端授权,并避免暴露身份的泄露。

Tor 洋葱服务可以让人们通过 Tor 网络访问你的网站,而双方都无法得知对方的 IP 地址。服务器主动向外连接 Tor,因此完全不需要开放任何入站端口。本指南在 Ubuntu VPS 上搭建一个洋葱服务,并用 Nginx 提供一个小型站点。

VPS 上的终端窗口,显示发布 Tor onion 服务所用的命令,以“sudo apt update”开头
本指南中你将在服务器上运行的那类命令。

洋葱服务能带来什么

  • 一个由密钥派生的 .onion 地址,因此它可自我验证,不需要证书颁发机构。
  • 访问者与你的服务器之间在 Tor 内部实现端到端加密。
  • 无需向访问者暴露服务器的公网 IP 地址。

它不会让你网站的内容变得合法,也不会掩盖你在其他地方犯的错误,例如有一个指向同一台机器的明网域名。

第 1 步:安装 Tor 和 Nginx

sudo apt update
sudo apt install -y tor nginx
sudo systemctl enable --now tor

第 2 步:让 Nginx 只绑定到 localhost

Web 服务器不得在公网接口上响应,否则明网 IP 与洋葱站点就会被关联起来。请编辑站点配置,使其监听回环地址。

server {
    listen 127.0.0.1:8080;
    server_name _;
    root /var/www/onion;
    index index.html;
    server_tokens off;
}
sudo mkdir -p /var/www/onion
echo '<h1>Hello from onion space</h1>' | sudo tee /var/www/onion/index.html
sudo nginx -t && sudo systemctl reload nginx
本指南的步骤依次为:1. onion 服务能给你带来什么;2. 安装 Tor 和 Nginx;3. 仅将 Nginx 绑定到 localhost;4. 声明隐藏服务;5. 可选的客户端授权;6. 堵住常见泄露
本指南的步骤,按顺序排列。

第 3 步:声明隐藏服务

将以下几行添加到 /etc/tor/torrc:

HiddenServiceDir /var/lib/tor/my_site/
HiddenServiceVersion 3
HiddenServicePort 80 127.0.0.1:8080
sudo systemctl restart tor
sudo cat /var/lib/tor/my_site/hostname

最后一条命令会输出你 56 个字符的 .onion 地址。请在 Tor Browser 中打开它进行测试。请备份文件夹 /var/lib/tor/my_site/:其中的密钥就是你的地址,丢失它就意味着要换一个新地址。

第 4 步:可选的客户端授权

对于私有服务,可以添加一个只有获批访问者持有的密钥。创建文件 /var/lib/tor/my_site/authorized_clients/alice.auth,其中写入一行,格式为 descriptor:x25519:PUBLIC_KEY,然后重新加载 Tor。没有匹配私钥的访问者甚至无法看出该服务是否存在。

第 5 步:堵住常见的泄露点

  • 切勿在页面中引用明网的资源、字体或统计分析代码。
  • 让错误页面和响应头保持通用,并保留 server_tokens off。
  • 保持服务器时钟准确;Tor 需要这一点。
  • 除 SSH 外,防火墙拦截一切:sudo ufw default deny incoming,因为 Tor 不需要入站端口。
  • 除非已将二者完全隔离,否则不要在同一主机上运行明网站点。

在发布任何内容之前,请先阅读服务器 OpSec 习惯,并在新服务器上使用加固清单。