搭建一个洋葱网站
本文最后更新于 2024-06-24,
若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益, 请联系我 删除。
本站只有Telegram群组为唯一交流群组, 点击加入
文章内容有误?申请成为本站文章修订者或作者? 向站长提出申请
.onion 是一种域名后缀,专用于 Tor 浏览器。通过此域名能在 Tor 浏览器上访问你的 洋葱网站 ,实质上是 tor 反代了本地的一个 Web 监听的端口。
适用系统:Debian 系发行版,包括 Ubuntu 和 Armbian,其他发行版按流程稍改命令一般也可。
注册 .onion 不需要向域名管理机构和域名注册商购买,而是通过计算生成,只不过是一个随机字符串,目前使用的 v3 域名由56个小写字母或2到7之间的数字组成。如果想得到指定的字符串,需要通过大量计算试出。比如 Facebook 非常漂亮的 .onion v2 域名 – facebookcorewwwi.onion ,要暴力解出这样的结果,密码学上的评估是以 1.5Ghz 处理器要 260 万年。
AhFei 在一台 5950X 单线程的 VDS 上,连续 43 小时算出第一个符合 vfly2com*.onion 规律的域名,具体方法在下面。
洋葱网站的本来目的是保持服务器的匿名性,也就是避免泄露源服务器的信息,比如 IP。这样的特点,既可以被用来保护揭露阴暗的正义之士,但同时,也能被利用去隐藏阴暗的真面目。
搭建洋葱网站的流程很简单:安装 tor ,运行一个 Web 软件,配置 tor 让它反代 Web 软件。
官方教程: Tor Project | Set up Your Onion Service
安装 Tor
官方教程: Tor Project | How to install Tor
注意: 使用 root 执行命令
apt update && apt upgrade && apt install apt-transport-https
目前官方的库只支持
amd64
、arm64
和i386
三种架构的服务器,可以用dpkg --print-architecture
查看。
创建一个新文件在 /etc/apt/sources.list.d/
,文件名是 tor.list
cd /etc/apt/sources.list.d/ && vim tor.list
添加以下内容:
替换 <DISTRIBUTION>
为系统发行版的名字,可以运行 lsb_release -c
或 cat /etc/debian_version
查看当前系统发行版。
deb [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org <DISTRIBUTION> main deb-src [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org <DISTRIBUTION> main
比如对于 Debian 11 ,它的代号是 bullseye,就填入下面的。
deb [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org bullseye maindeb-src [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org bullseye main
执行下面命令,添加 gpg key ,它为包签名。
wget -qO- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --dearmor | tee /usr/share/keyrings/tor-archive-keyring.gpg >/dev/null
安装 tor 和 tor debian keyring(作用,to help keep our signing key current):
apt update && apt install tor deb.torproject.org-keyring
运行一个 web 服务器
可以是 Nginx,Apache,或者任何其他的。这里用 python3 运行简单的做演示:
mkdir ~/tor_service && cd ~/tor_service && \echo '<html><body>Vfly2.com!</body></html>' > index.html
运行 web 服务器
python3 -m http.server --bind 127.0.0.1 8080
可以用 curl 检验是否成功运行
curl 127.0.0.1:8080
配置 Tor Onion Service
Tor 的配置文件名是 torrc
, 根据系统的不同,其位置也可能不同,找到它,然后编辑:
whereis tor# tor: /usr/bin/tor /usr/sbin/tor /etc/tor /usr/share/tor /usr/share/man/man1/tor.1.gz
cd /etc/tor && vim torrc
添加下面两行(先自定义)
HiddenServiceDir /var/lib/tor/my_website/ HiddenServicePort 80 127.0.0.1:80
- HiddenServiceDir 。指定存放 “Onion Service 的信息和 cryptographic keys” 的目录。这个目录会在 Tor 运行后自动创建。
- HiddenServicePort 。指定两个端口,前一个 80 是在 Tor 网络中网站的端口,后一个 80 是服务器上网站监听的端口。Tor 将 Tor 网络中 80 端口收到的信息都转发到服务器的 80 端口。根据实际运行的 web 服务器修改后一个端口。
比如这样:
HiddenServiceDir /var/lib/tor/hidden_service/ HiddenServicePort 80 127.0.0.1:8080
保存退出
重启 Tor 并验证它是否工作
sudo systemctl restart tor
如果成功重启了,那配置文件就没有错误,一般就完成了。
如果失败,可以查看日志查找原因:
journalctl -f -e -u tor@default
访问你的洋葱网站
到 HiddenServiceDir
目录,找到名为 hostname
的文件,它包含了你的 onion v3 网址。
cat /var/lib/tor/hidden_service/hostname# 看着就是一堆随机字符串,另一个是 AhFei 暴力计算的# bq7yvamkogvqidw6qgeyzo4bnqvxd6ed246evk3rfu6xplzdkwak2aid.onion# vfly2com5ogzrtpfpnsdfqwt6p2eclebjuxi24ps2jeujnikuypvfeqd.onion
其他文件是 Onion Service keys,保证这些文件的隐秘性是重要又急迫的,务必重视,如果泄露了 keys ,其他人就可以假冒你的 Onion Service。
接下来就可以用 Tor Browser 访问你的洋葱网站了,使用上面的 onion v3 网址来访问:
http://vfly2com5ogzrtpfpnsdfqwt6p2eclebjuxi24ps2jeujnikuypvfeqd.onion/