一、背景
在没有公网ip的情况下,自建Zerotier Planet服务器来实现异地组网,但是在每个设备上都安装Zerotier客户端太繁琐,所以通过在路由器端安装Zerotier来实现下级设备的访问。
- 固件版本:ImmortalWrt 24.10.2
二、具体操作
整体思路就是:先在公网搭建一个Zerotier Planet服务,然后下载生成的
planet
文件准备后续使用;然后在immortalwrt上安装Zerotier Clinet,替换Planet
文件,并加入我们自建的局域网;最后登录Planet服务器,配置实现局域网地址访问下级设备。
2.1、安装Zerotier
1、公网搭建Zerotier Planet服务
找一个公网服务器,通过docker compose安装,具体代码如下:
|
|
在docker-compose.yaml
文件所在文件夹执行如下命令,就可以启动planet服务:
|
|
然后在dist
目录下找到我们需要的planet
文件,下载下来,后续需要导入到客户端。
2、op安装配置Zerotier
登录路由器,在【系统】→【软件包】菜单下,点击【更新列表】,等待更新结束,在过滤器输入zerotier
,安装如图所示的三个软件,安装完成后不着急启动,我们先替换planet
文件。
2.2、配置zerotier
1、替换Planet文件
通过ssh
连接路由器,登陆后找到/etc/zerotier/
文件夹,将路径下的planet
替换城我们之前下载好的文件即可。
2、配置网络
先进入你的planet服务器,根据2.1.1节的docker-compose
文件的配置,访问http://公网ip:3443
端口,进入网页配置生成一个网络,复制下来你的NetWork ID
。
然后进入路由器的【VPN】→【Zerotier】菜单,点击最下方“网络配置”中的的【编辑】,将“网络 ID”替换成你刚才创建的网络的,然后如下图勾,路由器就配置完成了。
然后进入你的planet网站,点击刚才创建的网络,勾选【Authorized】和【Active bridge】,网络就通畅了。
2.3、配置下级设备访问
目前为止,已经实现了路由器加入Zerotier局域网,但是暂时只能访问我们的路由器,对于下级设备还无法访问, 我们再次打开Planet服务器,进入刚才创建的为网络,点击上方的【Routes】,在“Target”中输入路由器在家庭局域网中的地址的网段,比如路由器的地址是192.168.1.1
,则输入192.168.1.0/24
,在“Gateway”中输入路由器在Zerotier网路中的地址,保存即可。
三、效果展示
假设家庭局域网中有一台NAS的地址是192.168.100.231
,现在在另一台加入Zerotier网络的电脑上该地址,即可进入该设备。
四、总结
Zerotier实现异地组网,实现家庭局域网地址对下级设备的访问的核心在于勾选Active bridge
,和后续Route
的配置。