在研究ZeroTier之前,花了很多时间研究过ZeroNet,是个不错的去中心化项目,只是感觉要倒闭了,很多年没有更新。做过一个ZeroNet的地址生成器https://blog.csdn.net/u011701632/article/details/147491664?fromshare=blogdetail&sharetype=blogdetail&sharerId=147491664&sharerefer=PC&sharesource=u011701632&sharefrom=from_link
现在尝试将两个Zero结合起来,做一个新的东西。
首先,理解两者核心差异
-
ZeroTier:智能层-2虚拟以太网交换机
-
层级:OSI模型的第2层(数据链路层)或第3层(网络层)。
-
作用:它将分布在全球的设备连接到一个单一的、安全的虚拟局域网中。在这个网络里,所有设备都像插在同一个物理交换机上一样,可以获得内网IP,并像在本地网络中一样直接通信(P2P)。
-
核心:网络基础设施。它解决的是"设备如何安全、直接地找到彼此并建立连接"的问题。
-
-
ZeroNet:基于比特币加密和BitTorrent网络的去中心化网站
-
层级:OSI模型的第7层(应用层)。
-
作用:它使用比特币的密码学来保护地址和内容完整性,使用BitTorlot的网络(类似于Tracker和DHT)来发现节点和分发数据。它创建了一个无需中心服务器的、抗 censorship 的网站托管和访问平台。
-
核心:去中心化应用和内容分发。它解决的是"如何在不依赖中心服务器的情况下发布和同步数据"的问题。
-
会产生什么新东西:
-
私有的、高速的ZeroNet网络 :ZeroNet原本的节点发现和通信是公开的,任何人都可以加入。而运行在ZeroTier之上后,你可以创建一个私有的去中心化网站网络。只有你ZeroTier网络中的成员才能访问和同步这些网站。
-
更高的性能与可靠性:ZeroTier的P2P直连成功率非常高,并且针对各种复杂的NAT环境进行了优化。ZeroNet基于此可以获得更稳定、更快速的节点连接,尤其是在那些难以建立直连的网络中(如对称型NAT的企业网、4G/5G网络)。
-
局域网速度:当两个设备在同一个物理网络(如同一个Wi-Fi下)时,ZeroTier会直接建立局域网连接。这时ZeroNet的同步速度将达到局域网文件共享的级别,这对于同步大型去中心化网站或文件非常有吸引力。
-
增强的安全性:ZeroTier的通信是加密的(虽然ZeroNet本身也可能加密,但ZeroTier增加了额外一层),而且网络访问完全由你控制。这可以用来构建一个企业内部的文档协作系统、私有代码仓库等,既享受了ZeroNet的分布式容灾特性,又保证了数据只在内部流动。
-
假设你和你几个朋友想建立一个私人的博客圈子。
-
创建网络:你在ZeroTier Central上创建一个网络,记下Network ID。
-
加入设备:你和朋友们各自的电脑、树莓派都安装ZeroTier,加入这个网络,获得内网IP。
-
搭建博客:每个人在自己的设备上安装ZeroNet,并创建自己的博客站点。修改ZeroNet的配置文件,让它监听在ZeroTier的内网IP上,并允许来自这个IP段的连接。
-
相互同步:每个人将朋友的ZeroTier内网IP添加到ZeroNet的站点同步列表中。
-
成果:现在,你们拥有了一个完全私有、速度极快、不经过互联网公共节点的去中心化博客圈。你们的所有文章和数据,只在你和朋友的设备之间同步和存储。即使其中一两个人的电脑关机,其他人的博客依然可以通过在线朋友的设备访问到。如果ZeroTier网络设置得当,你们甚至可以互相访问彼此设备上的其他服务,比如通过内网IP直接SSH到朋友的树莓派,或者访问他分享的文件。
前提条件
-
两台设备(例如设备A和设备B)均已安装ZeroNet,并能正常运行(默认监听在
127.0.0.1:43110)。 -
两台设备均已安装ZeroTier客户端,并加入了同一个ZeroTier网络(记网络ID为
YOUR_NETWORK_ID)。 -
两台设备在ZeroTier网络中已获得内网IP(例如设备A:
10.147.20.2,设备B:10.147.20.3),并能互相ping通。 -
确保两台设备的防火墙允许ZeroNet端口(默认
43110)的入站连接(仅对ZeroTier接口开放即可,更安全)。
步骤一:确认ZeroTier网络连通性
在每台设备上执行以下命令,确保它们能通过内网IP互通。
# 在设备A上 ping 设备B的ZeroTier IP ping 10.147.20.3 # 在设备B上 ping 设备A的ZeroTier IP ping 10.147.20.2如果无法ping通,请检查ZeroTier的成员授权(在ZeroTier Central管理页面中勾选允许)以及防火墙规则。
步骤二:修改ZeroNet配置文件
ZeroNet的配置文件通常位于ZeroNet根目录下的
zeronet.conf或zeronet.py同级目录的zeronet.conf。如果该文件不存在,可以手动创建。1. 停止正在运行的ZeroNet进程
# 查找ZeroNet进程并停止(根据实际情况) pkill -f zeronet.py2. 编辑配置文件
使用文本编辑器(如nano、vim)打开或创建
zeronet.conf。cd /path/to/ZeroNet nano zeronet.conf3. 添加或修改以下配置项
[global] ui_ip = 0.0.0.0 ui_port = 43110 ui_host = 10.147.20.2 ui_host = 127.0.0.1-
监听所有接口 :
0.0.0.0表示绑定到所有可用的网络接口,包括:-
127.0.0.1(本地回环)
-
10.147.20.2(ZeroTier内网IP)
-
以及其他任何网络接口(如Wi-Fi的192.168.x.x)
-
-
自动适应:不需要手动指定具体的ZeroTier IP,系统会自动处理所有连接请求
-
ZeroTier网络自动生效:只要两台设备在同一个ZeroTier网络中,就能直接通过对方的ZeroTier IP访问
访问方式
配置好后:
-
本机访问 :
http://127.0.0.1:43110 -
设备A访问设备B :
http://10.147.20.3:43110
注意事项
-
安全性提醒 :监听
0.0.0.0意味着所有能连接到这台设备网络接口的人都可以访问ZeroNet界面。但在你的场景中:-
ZeroTier网络是私有的
-
只有加入你ZeroTier网络的设备才能通过内网IP访问
-
所以安全性是有保障的
-
-
防火墙 :仍然需要在Windows防火墙中允许
43110端口的入站连接 -
节点发现:虽然ZeroNet会自动尝试发现节点,但为了更快建立连接,可以在配置文件中添加对方的IP作为初始节点:
ini
[trackers] peer = 10.147.20.3:43110 -
设备B访问设备A :
http://10.147.20.2:43110
总结
通过以上步骤,你已经成功将ZeroNet运行在ZeroTier提供的内网之上,构建了一个私有的、高速的去中心化站点网络。所有站点数据仅在ZeroTier网络成员之间同步,既保留了ZeroNet的分布式特性,又获得了ZeroTier的安全内网通信优势。
你可以在此基础上进一步探索,比如创建私有博客圈、文件共享站点等。享受这个强大的组合吧!
-
-