NordBastion 北极熊吉祥物置身于 Nordic 石质地下观测室,一个巨大的深紫色洋葱形 Tor 符号悬浮其前方,网络绿色矩阵代码雨在各层间飘落
操作指南 · 自托管·阅读 10 分钟 · 实操 20 分钟

自托管 Tor v3 隐藏服务。
二十分钟拥有您自己的 .onion 地址。

从配置 VPS 到一个可运行的 56 字符 v3 onion 地址(仅通过 Tor 网络可达)的五个步骤。使用官方 Tor Project 仓库在 Debian 12 上测试。

五个步骤
  1. 01

    配置

    Nordic VPS

  2. 02

    安装

    Tor 官方软件包

  3. 03

    配置

    torrc 中的两行配置

  4. 04

    获取地址

    cat .../hostname

  5. 05

    安全加固

    权限 + 隔离

第 01 步 · 开通

任意 Nordic 堡垒均可。Tor 负责地理位置。

与明网站点不同,隐藏服务并不真正在意它所在的物理堡垒节点——客户端通过三个 Tor 中继到达您,因此到堡垒节点的延迟对用户体验影响不大。选择您已有其他工作负载的堡垒节点,或与您的威胁模型最匹配的司法管辖区(见 /guides/nordic-jurisdictions-for-privacy-hosting/)。

Sentinel 套餐(每月 $5.90)完全够用于托管个人网站的隐藏服务、Tor 友好的 SSH 端点或小型 Mastodon onion 镜像。规模较大的隐藏服务(Mastodon 主实例、文件共享等)需要 Garrison 或 Ravelin 以获得更多 RAM 和磁盘空间。

第 02 步 · 安装

Tor Project 官方仓库,而非发行版软件包。

发行版打包的 Tor 通常落后上游数月,可能错过安全修复。请使用 Tor Project 官方 apt 仓库:

apt install -y apt-transport-https gpg curl
curl -fsSL https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc \
  | gpg --dearmor -o /usr/share/keyrings/tor-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] \
  https://deb.torproject.org/torproject.org bookworm main" \
  > /etc/apt/sources.list.d/tor.list
apt update
apt install -y tor deb.torproject.org-keyring

验证守护进程是否运行:systemctl status tor——应显示 Active (running)。默认配置不开放任何入站端口,以纯中继客户端模式运行 Tor;下一步我们将把它转变为隐藏服务。

第 03 步 · 配置

torrc 中的两行配置。就这样。

打开 /etc/tor/torrc 并添加:

HiddenServiceDir /var/lib/tor/my_service/
HiddenServicePort 80 127.0.0.1:80

需要了解两件事。(1)HiddenServiceDir 是 Tor 存储服务私钥(定义 .onion 地址的密钥)的目录。Tor 在首次启动时创建该目录;请勿编辑其内容。(2)HiddenServicePort 将 onion 上的公共端口映射到本地端口——此处,onion 上的 80 端口指向 127.0.0.1:80(nginx、Apache,任何本地监听的服务)。为其他端口添加更多 HiddenServicePort 行(HTTPS 用 443,SSH 用 22,等等)。

无论您将本地目标绑定到何处(nginx、sshd、gitea),请确保它监听 127.0.0.1——而非 0.0.0.0。绑定到 0.0.0.0 的服务也可通过公网 IP 访问,这违背了仅隐藏服务的前提。

第 04 步 · 获取地址

重启 Tor。读取 hostname 文件。

重启 Tor,Tor 将生成 v3 密钥对和地址:

systemctl restart tor
cat /var/lib/tor/my_service/hostname
# example output:
# 7f43hp...long-string...7q.onion

那个以 .onion 结尾的 56 字符 base32 字符串就是您的隐藏服务地址。它由 /var/lib/tor/my_service/hs_ed25519_public_key 中的 Ed25519 公钥派生而来。任何持有该地址的人均可通过 Tor Browser(或任何支持 Tor 的客户端)访问该服务。测试方法:打开 Tor Browser,粘贴地址,按回车——您的 Web 服务应予响应。

将 /var/lib/tor/my_service/ 的内容备份到安全位置。丢失密钥意味着丢失 .onion 地址——无法恢复。共享密钥意味着任何持有密钥的人都可以从任意服务器运行相同的 .onion。

第 05 步 · 加固

权限、隔离、移除 banner。无聊但关键的部分。

1. 确认服务以 debian-tor 用户运行,而非 root。 在 Debian/Ubuntu 上 apt install 即可处理。验证:ps aux | grep tor——uid 不应为 0。

2. 锁定密钥。 chmod 700 /var/lib/tor/my_service/ — 仅 debian-tor 可读。若目录对所有人可读,Tor 将拒绝启动。

3. 移除服务器 banner。 nginx:在 http 上下文中设置 server_tokens off。Apache:ServerTokens Prod,ServerSignature Off。Web 应用:移除 X-Powered-By,若反向代理允许则将 Server 设为空白。目标是使来自 .onion 的 HTTP 响应不泄露 IP 或主机名。

4. 禁止出站 DNS 泄漏。 您的 Web 应用不得在请求时解析外部域名,否则这些 DNS 查询将通过明网离开 VPS。将应用设置为使用 Tor 的 SOCKS 代理进行出站调用(127.0.0.1:9050)。

5. 在明网站点设置 Onion-Location。 将此头添加到你的明网 nginx 配置:add_header Onion-Location http://<your-onion>.onion$request_uri;——Tor Browser 用户现在会自动收到重定向到 onion 地址的提示。

FAQ · Tor

问题,已解答。

首次隐藏服务运营者提出的八个问题。

v3 onion 地址是什么,与 v2 有何不同?

v3 onion 地址是以 .onion 结尾的 56 字符 base32 字符串,由 Ed25519 公钥派生。v2(已于 2021 年被 Tor 弃用并禁用)使用截断 RSA-1024 密钥的 16 字符 base32——短,但在密码学上弱得多。v3 密钥更强(Ed25519)、目录隐私更好(无服务枚举)、支持客户端授权,且是目前唯一仍在运行的版本。若你看到 16 字符的 .onion 地址,它已失效。

Tor 隐藏服务会泄漏我的服务器 IP 吗?

配置正确的话不会泄漏。Tor 从你的 VPS 向外连接到三个 Tor 中继(守卫、中间、会合点),且永远不会在 VPS IP 上直接接受入站连接。隐藏服务仅通过 Tor 电路可达。以下错误配置会泄漏 IP:在公共端口上运行服务(应绑定到 127.0.0.1)、托管 Web 应用的 DNS 泄漏、服务器软件将 IP 印入出站响应的 banner。下方标准清单逐一涵盖这些情况。

我的 VPS 提供商能看到隐藏服务上的内容吗?

您的 VPS 服务商看到的是来自您 VPS 的出站 Tor 流量——他们知道」此服务器运行 Tor」,但不知道访问了什么内容。他们无法从外部看到隐藏服务上的内容;但与任何 VPS 服务商一样,他们可以从内部看到磁盘上的内容。NordBastion 不访问客户磁盘,但一台您未以全盘加密控制的服务器,理论上是运营商可读取的服务器。对于绝对的隐藏服务隐私,请使用只有您持有密钥的 LUKS——Servury 在其自有硬件上开箱即提供此功能,其他服务商(包括 NordBastion)将其留给客户自行安装。

如何获取自定义 .onion 地址(例如以品牌名称开头)?

使用 mkp224o——一个开源工具,暴力搜索 Ed25519 密钥对,直到生成的 v3 地址以指定前缀开头。现代笔记本电脑几分钟内可找到 4 字符前缀;7 字符前缀需要数小时;10 字符以上在专用硬件上需要数周至数月。得到的 onion 地址在密码学上有效——暴力搜索只是找到哈希公钥部分恰好以所需字符开头的密钥。

隐藏服务速度如何?

比明网慢。Tor 通过三个中继路由,每次往返增加约 300-800ms 延迟。吞吐量受所选链路中最慢中继的限制;静态内容平均预期 1-5 MB/s,交互式工作负载更低。Tor 引入了「HSDir 带宽」优化,以及针对不需要服务端匿名性的场景的 HiddenServiceSingleHopMode。

我是否应该使用 HiddenServiceSingleHopMode?

仅当你的威胁模型接受服务端是公开已知的情况下(例如,你已发布"此 onion 运行在我在 Iceland 的服务器上")。单跳模式跳过服务端的守卫+中间中继,直接连接到会合点,速度更快(减少 200-400 毫秒延迟),但不保护服务端 IP。客户端在其一侧仍享有完整的三跳隐私。对于需要服务端匿名性的隐藏服务,保持禁用(默认状态)。

我可以在与明网站点相同的 VPS 上运行隐藏服务吗?

是的,许多网站这样做。明网 Web 服务器在公网 IP 的 80/443 端口监听;Tor 隐藏服务指向同一 Web 服务器在 127.0.0.1 的相同端口。两者访问相同内容。两点运营注意事项:(1)确保 Web 服务器不将公网 IP 写入响应头(Server、X-Real-IP、hostname 横幅);(2)在明网站点设置 Onion-Location HTTP 头,使 Tor Browser 用户自动重定向到 onion 地址。

Vanguards / Vanguards-lite 是什么?

Tor 附加组件(Vanguards)在服务端固定守卫中继,缓解一类攻击——攻击者通过观察服务轮换的守卫节点来实施去匿名化。Vanguards-lite 自 Tor 0.4.7 版本起内置于守护进程,并在当前 Tor 版本中默认为隐藏服务启用——通常无需任何操作即可受益。完整的 Vanguards 附加组件对于大多数个人隐藏服务而言过于重量级,主要适用于高价值目标。

就绪

订购 VPS 并将你的服务部署到 onion 网络。

最后审核 · 2026-05-20 · 已测试 · Debian 12 · Tor 0.4.8+