zh

Tor隐藏服务搭建完整教程:创建你的.onion网站

Tor隐藏服务(Hidden Service,也称为洋葱服务)允许你在Tor网络内部运行服务器,生成一个.onion地址。与普通网站不同,访问.onion服务的用户无法知道服务器的真实IP,服务器也无法知道访问者的真实IP——这是真正的双向匿名。本教程手把手指导你在AnubizHost境外VPS上搭建.onion网站。

Need this done for your project?

We implement, you ship. Async, documented, done in days.

Start a Brief

Tor隐藏服务的工作原理

理解原理有助于正确配置安全措施:

  • 引入点(Introduction Points):Tor服务端启动时,在Tor网络中注册多个引入点(普通Tor节点)。这些节点知道你的.onion地址,但不知道你的服务器IP。
  • 会合点(Rendezvous Points):客户端连接时,在Tor网络中选择一个会合点。客户端告知引入点会合点的位置,服务端连接到会合点,与客户端建立端对端加密连接。
  • 服务端IP保护:整个过程中,只有引入点和会合点参与中继,服务端的真实IP不暴露给任何一方。

关键安全点:即使服务器本身的其他端口(如SSH)泄露了IP,只要.onion配置正确,IP不会通过Tor流量泄露。但要防止通过其他渠道(如错误的应用配置)暴露IP。

安装和配置Tor

在AnubizHost VPS(Ubuntu 22.04)上:

apt update && apt install tor -y

编辑Tor配置文件 /etc/tor/torrc,添加隐藏服务配置:

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

重启Tor服务:

systemctl restart tor

查看生成的.onion地址:

cat /var/lib/tor/hidden_service/hostname

你会看到类似 abc123def456.onion 的地址(实际为56个字符的v3地址)。这就是你的隐藏服务地址,通过Tor浏览器访问。

配置Nginx Web服务器

Tor隐藏服务配置好后,需要在本地运行一个Web服务器响应请求:

apt install nginx -y

配置文件 /etc/nginx/sites-available/hidden_service:

server {
    listen 127.0.0.1:80;
    server_name localhost;
    
    root /var/www/html;
    index index.html;
    
    # 安全头部
    add_header X-Content-Type-Options nosniff;
    add_header X-Frame-Options DENY;
    
    # 禁止Nginx返回版本信息
    server_tokens off;
    
    location / {
        try_files $uri $uri/ =404;
    }
}

重要安全设置:确保Nginx只监听127.0.0.1(本地),不监听公网IP。否则你的网站可能通过公网IP被发现,泄露服务器身份。

ln -s /etc/nginx/sites-available/hidden_service /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx

生成个性化.onion地址(可选)

默认的v3 .onion地址是随机的56字符字符串。如果你希望地址有一定含义(如以特定字母开头),可以使用mkp224o工具预计算地址:

apt install cmake libsodium-dev -y
git clone https://github.com/cathugger/mkp224o
cd mkp224o && cmake . && make
./mkp224o -n 1 -s anubiz  # 生成以anubiz开头的地址

这个过程需要大量计算时间(字母越多越久):

  • 3个字母:几分钟
  • 5个字母:几小时
  • 7个字母:几个月

生成后,将生成的密钥文件复制到Tor的HiddenServiceDir目录,替换默认密钥,重启Tor即可使用自定义地址。AnubizHost的VPS提供足够的CPU资源进行此类计算。

安全加固:防止IP泄露

这是最关键的部分。常见的IP泄露渠道:

  • 应用程序主动连接:某些CMS(如WordPress)会主动连接外部服务器(更新检查、字体加载)。这些连接会暴露服务器真实IP。解决:禁用外部连接,使用本地字体,关闭自动更新。
  • 错误信息:应用程序报错时可能在页面显示服务器IP。解决:关闭debug模式,配置自定义错误页面。
  • 邮件服务器:如果你的.onion网站发送邮件,邮件头中可能包含真实IP。解决:使用外部匿名邮件中继(通过Tor连接)。
  • Nginx access_log:确认Nginx不记录完整IP(虽然本地日志不会直接泄露,但被攻击者利用的日志文件可能暴露内部架构)。

防火墙配置:只允许Tor的入站连接,不允许服务器主动出站(除通过Tor):

ufw default deny outgoing
ufw allow out on lo
ufw allow out 9050  # Tor SOCKS端口(如需应用通过Tor出站)
ufw enable

Why Anubiz Host

100% async — no calls, no meetings
Delivered in days, not weeks
Full documentation included
Production-grade from day one
Security-first approach
Post-delivery support included

Ready to get started?

Skip the research. Tell us what you need, and we'll scope it, implement it, and hand it back — fully documented and production-ready.

Anubiz Chat AI

Online