为博客添加onion域名支持

2025年3月23日 20:12:48

安装 Tor

sudo apt update
sudo apt install tor

安装完成后,启动 Tor 服务

sudo systemctl start tor
sudo systemctl enable tor

配置 Tor

编辑配置文件torrc

vim /etc/tor/torrc

添加或取消注释以下内容,注意端口要和Typecho运行端口匹配

HiddenServiceDir /var/lib/tor/hidden_service/
HiddenServicePort 80 127.0.0.1:8080
  • HiddenServiceDir 是存储 Tor 隐藏服务的密钥和配置的目录。
  • HiddenServicePort 指定了 Tor 将 .onion 域名的请求转发到本地 8080 端口(也就是你 Nginx 反代 Typecho 服务的端口)。

保存并重启 Tor 服务以应用更改

systemctl restart tor

获取 .onion域名

完成配置后,Tor 会在 /var/lib/tor/hidden_service/hostname 文件中生成 .onion 域名。
查看域名:

cat /var/lib/tor/hidden_service/hostname

记录下来类似的内容:xxxxxxxxxxxxxxxx.onion

将onion域名反代到Typecho

修改Nginx配置

vim /etc/nginx/sites-available/default

配置 Nginx 监听 .onion 域名并反代到 Typecho:

server {
    listen 80;
    server_name xxxxxxxxxxxxxxx.onion;

    location / {
        proxy_pass http://127.0.0.1:8080;  # Typecho 运行的地址
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        # 禁用重定向
        proxy_redirect off;
    }
}

保存并退出

检查 Nginx 配置是否正确:

nginx -t

如果没有问题,重新加载 Nginx:

systemctl reload nginx