背景
近期,ZeroNet 又出现了连接问题。与 Tracker 的连接错误导致无法访问新站点,或者全新部署 ZeroNet 时,无法进行初始化。
开发者提出了使用 Tor meek bridges 的方法,并提供了 Windows 平台下的 Bundle 包,其中包含了 Tor 组件,用户可以在出错时,点击页面上的 Use Tor meek bridges for tracker connections 按钮,启用 Tor bridges 。
在 Linux 下,可以直接参照此文档 Frequently asked questions 中的说明,配置 Tor 与 ZeroNet 的连接。
经过测试,使用 Tor 的确很好地解决了问题。但在 Linux 下配置步骤相对较多。故想到利用已有的代理,比如 Shadowsocks、SSR,让 ZeroNet 通过这些代理进行连接。
方法
vim ~/Sites/ZeroNet/zeronet.conf
添加一行 proxy ,本例如下:zeronet.conf
[global]
ui_ip = *
ui_password = yourpassword
proxy = 127.0.0.1:1081
tor = disable
之后启动服务在浏览器访问 <ip>:43110
即可。
说明:之所以使用了 --tor disable
这个参数,是因为 ZeroNet 在启动的时候会检查 Tor 服务是否可连。然而 Tor 客户端服务是监听在 localhost 上的,我们的代理并没有 bypass 本地地址,所以会导致 ZeroNet 一直处于检测状态而卡住。把 Tor 功能彻底禁用就好了。
思考
ZeroNet 原本的意义就在于使用去中心化的方法避免审查,然而也有其具体实现上的短板,当用户访问新站点时,用户如何知道这个托管这个站点的都有哪些节点呢?这往往需要固定 ip 地址上的服务来给用户“指路”,而在审查过程中,这些固定的 Tracker 就是最易被干扰的。
那么说使用代理来访问 ZeroNet 是否就失去意义了呢?我觉得不然。虽然使用了代理,但去中心化本身的优势仍旧还是存在的:比如对于一个站点,只要节点数足够,除了他的主人,任何人都没有办法摧毁或者篡改的。这点特性依旧存在,而且去中心化还免去了托管空间的诸多麻烦。
ZeroNet 仍然在不顺畅的网络环境中前进,其在部分地区面临的挑战也在逐渐帮助它增强着自身抗打击的能力。然而不得不说,其活跃程度总归有点衰减的味道。希望各位有识之士能帮助 ZeroNet 更好发展。