在洋葱路由(Tor)上搭建一个匿名的.onion网站
郑重声明与警告
本文旨在科普Tor网络的技术原理与搭建方法,仅供学术研究、个人兴趣及保护合法隐私之用。
请务必知悉:
利用Tor网络从事任何违法违规活动——包括但不限于传播违法信息、侵犯他人权益、进行非法交易等——均属严重违法行为,与本文作者及本博客无关,且将面临严厉的法律制裁。
技术无罪,但使用者有责。请严格遵守您所在地区的法律法规,切勿触碰法律红线。
本文未完待续
1.关于Tor和.onion
Tor这个词就是洋葱路由(The Onion Router)的首字母缩写,Tor最初被用于不受追踪的访问,后因为其不受追踪的特点,成为一些非法网站的温床,又被叫做所谓的暗网,但是作为技术Tor本身是中立的,并不是为这些非法网站而生。
实际上,Tor仅仅是暗网的冰山一角,而且Tor上面也不像某些无良又无知的营销号为了博眼球胡扯的那样全是充满人性的恶的非法网站,相反大多数Tor上面的网站都是合法的需要双向匿名的网站,很多合法的网站都有Tor的入口,甚至来自大型公司或组织,例如:
- BBC新闻
bbcnewsd73hkzno2ini43t4gblxvycyac5aw4gnv7t2rccijh7745uqd.onion - 邮件服务ProtonMail
protonmailrmez3lotccipshtkleegetolb73fuirgj7r4o4vfu7ozyd.onion - 搜索引擎DuckDuckGo
duckduckgogg42xjoc72x3sjasowoarfbgcmvfimaftt6twagswzczad.onion
通过Tor访问onion网站,一般都会用到洋葱浏览器(Tor Browser),当然也可以普通浏览器加上Tor代理实现访问,有些互联网审查地区还需要配合Tor网桥实现接入,洋葱浏览器不是本文重点,也没有技术含量,不再赘述。
2.将网站接入Tor网络
前置准备:需要一台服务器,先将网站发布到nginx等web服务器,并仅允许nginx接受来自本机的访问,同时打开防火墙,不需要监听80,443端口,此处用rocky linux9加nginx为例。
另:服务器肯定要用境外IP的,Tor的节点必然都被GFW拉黑,境内IP的机器就不要想了..
安装tor服务
yum install torvim /etc/tor/torrc修改tor默认配置,打开这两行前的注释,使用默认的/var/lib/tor/hidden_service/域名和密钥路径,并将请求转发到127.0.0.1:80的nginx
HiddenServiceDir /var/lib/tor/hidden_service/HiddenServicePort 80 127.0.0.1:80打开tor服务
systemctl start tor切换到/var/lib/tor/hidden_service/目录,可以看到tor为我们自动生成的域名和密钥
[root@VM-0-3-rockylinux ~]# cd /var/lib/tor/hidden_service/[root@VM-0-3-rockylinux hidden_service]# lltotal 16drwx------ 2 toranon toranon 4096 May 7 13:08 authorized_clients-rw------- 1 toranon toranon 63 May 7 13:08 hostname-rw------- 1 toranon toranon 64 May 7 13:08 hs_ed25519_public_key-rw------- 1 toranon toranon 96 May 7 13:08 hs_ed25519_secret_key[root@VM-0-3-rockylinux hidden_service]# cat hostname kswxwejpmr3tpi4jhro5o5gzwvawf7u3wyjqzek6264m5jtsinezrdyd.onionhostname文件中的就是生成的默认域名,打开Tor浏览器,访问kswxwejpmr3tpi4jhro5o5gzwvawf7u3wyjqzek6264m5jtsinezrdyd.onion,即可通过tor网络访问到我们的网站页面,是个nginx刚装好的默认欢迎页面。
![]()
3.自定义onion域名
github开源项目mkp224o可以用于计算生成暗网“域名”
切换到/opt目录,先拉取代码
git clone https://github.com/cathugger/mkp224o.git编译源码为命令
cd ./mkp224oyum install -y autoconf gcc gcc-c++ make autoconf automake libtool libsodium-devel./autogen.sh ./configuremake编译好后会生成一个mkp224o命令在当前路径,执行mkp224o -n 1 -d /opt/nana/ nana开始计算,计算完成后,会在/opt/nana/下生成一个开头是nana的onion域名信息的目录:/opt/nana/nanazolamwaqczux2bfjnptwz7fudrv63e5nw3tqr77pevfgk23zx4ad.onion/,目录的名字就是生成的域名,和里面hostname文件的内容是一样的,不过,为了防止层级过深,将这个文件夹下的所有内容全部转移到它的上一级中
自定义的前缀越长,计算时间越久,9位的自定义前缀可能都需要数月数年,因此要酌情选择
./mkp224o -n 1 -d /opt/nana/ nanacd /opt/nana/nanazolamwaqczux2bfjnptwz7fudrv63e5nw3tqr77pevfgk23zx4ad.onion/mv ./* ../*rm -fr /opt/nana/nanazolamwaqczux2bfjnptwz7fudrv63e5nw3tqr77pevfgk23zx4ad.onion/按照tor的要求,将nana目录本身和转移出来的几个密钥和域名文件设置权限
cd /opt/nana/chown -R toranon:toranon ./chmod 700 ./chmod 600 ./hs_ed25519_secret_keychmod 600 ./hs_ed25519_public_keychmod 600 ./hostnamevim /etc/tor/torrc修改tor配置HiddenServiceDir为/opt/nana/
HiddenServiceDir /opt/nana/HiddenServicePort 80 127.0.0.1:80再将默认的nginx页面换成Claude Code + DeepSeek生成的炫酷效果页面,重启tor服务,用新的域名访问即可
systemctl restart tor![]()