08-04-2023, 02:23 PM
本指南向您展示如何为您的网站设置洋葱服务。有关洋葱服务协议如何工作的技术详细信息,请参阅我们的洋葱服务协议页面。
第 0 步:获取可用的 Tor
作为本指南的一部分,我们将假设您的机器中有一个正常运行的 Tor。要设置 Tor,请遵循Tor 安装指南。Tor 应该正常启动并运行,本指南才能正常工作。您还应该知道 Tor 的配置文件在哪里。
第 1 步:让 Web 服务器正常运行
第一步,您应该在本地设置一个 Web 服务器,例如 Nginx、Apache 或您最喜欢的 Web 服务器。设置 Web 服务器可能很复杂。如果您遇到困难或想要做更多事情,请找一个可以帮助您的朋友或加入我们的Tor-onions邮件列表与其他操作员交谈。
作为示例,我们将介绍如何在 Debian 上使用 Nginx 和 Apache 设置洋葱站点。我们建议您为洋葱服务安装一台新的单独的 Web 服务器,因为即使您已经安装了一台服务器,您也可能会将其用于常规网站(或稍后想要使用它)。
在此页面上,管理 Web 服务器的命令基于类 Debian 操作系统,可能与其他系统不同。检查您的网络服务器和操作系统文档。
Apache
Apache 可在多个 Linux 和 *BSD 发行版的主存储库中使用。要安装apache2包:
nginx
Nginx 可在多个 Linux 和 *BSD 发行版的主存储库中使用。要安装nginx包:
localhost:80默认情况下,Web 服务器将在安装结束时运行。如果您收到错误消息,则表明出现了问题,并且在弄清楚为什么不起作用之前您无法继续。
设置 Web 服务器后,请确保其正常运行:打开浏览器并转到http://localhost/。然后尝试将一个文件放入主 html 目录中,并确保在您访问该站点时该文件会显示出来。
第 2 步:配置您的 Tor Onion 服务
下一步是打开 Tor (torrc) 的配置文件并进行适当的配置来设置洋葱服务。根据您的操作系统和设置,您的 Tor 配置文件可能位于不同的位置或看起来不同。
您需要将以下两行添加到您的torrc文件中:
该HiddenServiceDir行指定应包含洋葱服务的信息和加密密钥的目录。您需要更改该HiddenServiceDir行,以便它指向将运行 Tor 的用户可读/可写的实际目录。
该HiddenServicePort行指定一个虚拟端口(即访问您的 Onion 服务的人将使用的端口),在上述情况下,它表示传入 Onion 服务端口 80 的任何流量都应重定向到(这127.0.0.1:80是步骤 1 中的 Web 服务器正在侦听)。
提示:避免将洋葱服务泄漏到本地网络的一个好做法是通过 Unix 套接字而不是 TCP 套接字运行洋葱服务。您需要将以下两行添加到您的torrc文件中:
第 3 步:重新启动 Tor 并检查其是否正常工作
现在保存torrc并重新启动 Tor。
如果 Tor 再次启动,那就太好了。否则,就会出现问题。首先查看您的日志文件以获取提示。它将打印一些警告或错误消息。这应该能让您了解出了什么问题。通常,目录权限中存在拼写错误torrc或错误(如果您不知道如何启用或查找日志文件,请参阅日志记录常见问题解答条目。)
当 Tor 启动时,它将自动创建HiddenServiceDir您指定的(如果需要)。确保情况确实如此。
第 4 步:测试您的 Onion Service 是否正常工作
现在要获取您的洋葱服务地址,请转到您的HiddenServiceDir目录,然后找到名为hostname. 洋葱服务配置目录中的文件hostname包含新洋葱 v3 服务的主机名。其他文件是您的洋葱服务密钥,因此必须将这些文件保密。如果您的密钥泄露,其他人可以冒充您的洋葱服务,认为它已被破坏、无用且访问起来很危险。
现在您可以使用 Tor 浏览器连接到您的 Onion 服务,并且您应该会获得您在步骤 1中设置的 html 页面。如果它不起作用,请在日志中查找一些提示,并继续使用它直到它起作用。
值得注意的是,任何知道或发现该地址的人都可以读取这样配置的洋葱服务。您可以使 Onion Services 需要身份验证,并且只有拥有私钥的用户才能访问该服务。阅读有关客户授权文档的更多信息。
(可选)第5步:运行多个洋葱服务
如果您想为单个洋葱服务转发多个虚拟端口,只需添加更多HiddenServicePort行即可。如果您想从同一个 Tor 客户端运行多个洋葱服务,只需添加另一HiddenServiceDir行即可。以下所有HiddenServicePort行都引用此HiddenServiceDir行,直到您添加另一HiddenServiceDir行:
如果您在同一网络服务器上运行多个洋葱站点,请记住编辑您的网络服务器虚拟主机文件并添加每个网站的洋葱地址。例如,在 Nginx 中并将 Tor 与 Unix 套接字一起使用,配置将如下所示:
或者在 Apache 中,Tor 服务监听端口 80:
第 6 步:安全建议和更多提示
Onion Services 的默认版本是版本 3,长度为 56 个字符。洋葱服务版本 2 即将被弃用,并将在 2021 年 7 月 0.4.6.x Tor 发布后很快从 Tor 网络中退役。请阅读博客文章洋葱服务版本弃用时间表以了解更多信息。
一些洋葱网站运营商可能不想透露他们的洋葱服务位置。因此,您需要配置 Web 服务器,使其不会泄露有关您、您的计算机或您的位置的任何信息。这不是一件容易的事,这些资源将有助于如何实现这一目标:
现在您已经有了一个正在运行的 onionsite,您可能需要部署Onion-Location,或者使用 Docker、Heroku、Terraform、Ansible或Stem 等工具来自动化管理您的 Onion 服务。如果您有一个静态网站,但从未安装过 Nginx 或 Apache,可以尝试的另一个项目是OnionShare,在该项目中运行 onionsite 会更容易:使用图形界面进行引导并使用最少的配置。
第 0 步:获取可用的 Tor
作为本指南的一部分,我们将假设您的机器中有一个正常运行的 Tor。要设置 Tor,请遵循Tor 安装指南。Tor 应该正常启动并运行,本指南才能正常工作。您还应该知道 Tor 的配置文件在哪里。
第 1 步:让 Web 服务器正常运行
第一步,您应该在本地设置一个 Web 服务器,例如 Nginx、Apache 或您最喜欢的 Web 服务器。设置 Web 服务器可能很复杂。如果您遇到困难或想要做更多事情,请找一个可以帮助您的朋友或加入我们的Tor-onions邮件列表与其他操作员交谈。
作为示例,我们将介绍如何在 Debian 上使用 Nginx 和 Apache 设置洋葱站点。我们建议您为洋葱服务安装一台新的单独的 Web 服务器,因为即使您已经安装了一台服务器,您也可能会将其用于常规网站(或稍后想要使用它)。
在此页面上,管理 Web 服务器的命令基于类 Debian 操作系统,可能与其他系统不同。检查您的网络服务器和操作系统文档。
Apache
Apache 可在多个 Linux 和 *BSD 发行版的主存储库中使用。要安装apache2包:
代码:
$ sudo apt install apache2
nginx
Nginx 可在多个 Linux 和 *BSD 发行版的主存储库中使用。要安装nginx包:
代码:
$ sudo apt install nginx
localhost:80默认情况下,Web 服务器将在安装结束时运行。如果您收到错误消息,则表明出现了问题,并且在弄清楚为什么不起作用之前您无法继续。
设置 Web 服务器后,请确保其正常运行:打开浏览器并转到http://localhost/。然后尝试将一个文件放入主 html 目录中,并确保在您访问该站点时该文件会显示出来。
第 2 步:配置您的 Tor Onion 服务
下一步是打开 Tor (torrc) 的配置文件并进行适当的配置来设置洋葱服务。根据您的操作系统和设置,您的 Tor 配置文件可能位于不同的位置或看起来不同。
您需要将以下两行添加到您的torrc文件中:
代码:
HiddenServiceDir /var/lib/tor/my_website/
HiddenServicePort 80 127.0.0.1:80
该HiddenServiceDir行指定应包含洋葱服务的信息和加密密钥的目录。您需要更改该HiddenServiceDir行,以便它指向将运行 Tor 的用户可读/可写的实际目录。
该HiddenServicePort行指定一个虚拟端口(即访问您的 Onion 服务的人将使用的端口),在上述情况下,它表示传入 Onion 服务端口 80 的任何流量都应重定向到(这127.0.0.1:80是步骤 1 中的 Web 服务器正在侦听)。
提示:避免将洋葱服务泄漏到本地网络的一个好做法是通过 Unix 套接字而不是 TCP 套接字运行洋葱服务。您需要将以下两行添加到您的torrc文件中:
代码:
HiddenServiceDir /var/lib/tor/my-website/
HiddenServicePort 80 unix:/var/run/tor-my-website.sock
第 3 步:重新启动 Tor 并检查其是否正常工作
现在保存torrc并重新启动 Tor。
代码:
$ sudo systemctl restart tor
如果 Tor 再次启动,那就太好了。否则,就会出现问题。首先查看您的日志文件以获取提示。它将打印一些警告或错误消息。这应该能让您了解出了什么问题。通常,目录权限中存在拼写错误torrc或错误(如果您不知道如何启用或查找日志文件,请参阅日志记录常见问题解答条目。)
当 Tor 启动时,它将自动创建HiddenServiceDir您指定的(如果需要)。确保情况确实如此。
第 4 步:测试您的 Onion Service 是否正常工作
现在要获取您的洋葱服务地址,请转到您的HiddenServiceDir目录,然后找到名为hostname. 洋葱服务配置目录中的文件hostname包含新洋葱 v3 服务的主机名。其他文件是您的洋葱服务密钥,因此必须将这些文件保密。如果您的密钥泄露,其他人可以冒充您的洋葱服务,认为它已被破坏、无用且访问起来很危险。
现在您可以使用 Tor 浏览器连接到您的 Onion 服务,并且您应该会获得您在步骤 1中设置的 html 页面。如果它不起作用,请在日志中查找一些提示,并继续使用它直到它起作用。
值得注意的是,任何知道或发现该地址的人都可以读取这样配置的洋葱服务。您可以使 Onion Services 需要身份验证,并且只有拥有私钥的用户才能访问该服务。阅读有关客户授权文档的更多信息。
(可选)第5步:运行多个洋葱服务
如果您想为单个洋葱服务转发多个虚拟端口,只需添加更多HiddenServicePort行即可。如果您想从同一个 Tor 客户端运行多个洋葱服务,只需添加另一HiddenServiceDir行即可。以下所有HiddenServicePort行都引用此HiddenServiceDir行,直到您添加另一HiddenServiceDir行:
- HiddenServiceDir /var/lib/tor/onion_service/
- HiddenServicePort 80 127.0.0.1:80
- HiddenServiceDir /var/lib/tor/other_onion_service/
- HiddenServicePort 6667 127.0.0.1:6667
- HiddenServicePort 22 127.0.0.1:22
如果您在同一网络服务器上运行多个洋葱站点,请记住编辑您的网络服务器虚拟主机文件并添加每个网站的洋葱地址。例如,在 Nginx 中并将 Tor 与 Unix 套接字一起使用,配置将如下所示:
代码:
server {
listen unix:/var/run/tor-my-website.sock;
server_name <your-onion-address>.onion;
access_log /var/log/nginx/my-website.log;
index index.html;
root /path/to/htdocs;
}
或者在 Apache 中,Tor 服务监听端口 80:
代码:
<VirtualHost *:80>
ServerName <your-onion-address.onion>
DocumentRoot /path/to/htdocs
ErrorLog ${APACHE_LOG_DIR}/my-website.log
</VirtualHost>
第 6 步:安全建议和更多提示
Onion Services 的默认版本是版本 3,长度为 56 个字符。洋葱服务版本 2 即将被弃用,并将在 2021 年 7 月 0.4.6.x Tor 发布后很快从 Tor 网络中退役。请阅读博客文章洋葱服务版本弃用时间表以了解更多信息。
一些洋葱网站运营商可能不想透露他们的洋葱服务位置。因此,您需要配置 Web 服务器,使其不会泄露有关您、您的计算机或您的位置的任何信息。这不是一件容易的事,这些资源将有助于如何实现这一目标:
- 运营安全。
- Riseup Collective 的洋葱服务最佳实践。
- OnionScan是一个工具,用于检查您的 onionsite 是否正在泄露可能会损害您的匿名性的信息,例如您的服务器 IP 地址。
现在您已经有了一个正在运行的 onionsite,您可能需要部署Onion-Location,或者使用 Docker、Heroku、Terraform、Ansible或Stem 等工具来自动化管理您的 Onion 服务。如果您有一个静态网站,但从未安装过 Nginx 或 Apache,可以尝试的另一个项目是OnionShare,在该项目中运行 onionsite 会更容易:使用图形界面进行引导并使用最少的配置。