收起左侧

Openwrt安装Zerotier实现外网访问

1
回复
155
查看
[ 复制链接 ]

5

主题

15

回帖

0

牛值

江湖小虾

背景

在没有公网ip的情况下,自建Zerotier Planet服务器来实现异地组网,但是在每个设备上都安装Zerotier客户端太繁琐,所以通过在路由器端安装Zerotier来实现下级设备的访问。

⚠️如果使用Zerotier官方服务器,省去2.1、2.2步骤。

  • 固件版本:ImmortalWrt 24.10.2

二、具体操作

整体思路就是:先在公网搭建一个Zerotier Planet服务,然后下载生成的 planet文件准备后续使用;然后在immortalwrt上安装Zerotier Clinet,替换 Planet文件,并加入我们自建的局域网;最后登录Planet服务器,配置实现局域网地址访问下级设备。

2.1、安装Zerotier

1、公网搭建Zerotier Planet服务

找一个公网服务器,通过docker compose安装,具体代码如下:

 # filename: docker-compose.yaml
 services:
   ztplanet:
     image: xubiaolin/zerotier-planet:latest
     container_name: ztplanet
     ports:
       - 9994:9994
       - 9994:9994/udp
       - 3443:3443
       - 3000:3000
     environment:
       - IP_ADDR4=xx.xx.xx.xx
       - IP_ADDR6=xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx
       - ZT_PORT=9995
       - API_PORT=3442
       - FILE_SERVER_PORT=3001
     volumes:
       - ./data/zerotier/dist:/app/dist
       - ./data/zerotier/ztncui:/app/ztncui
       - ./data/zerotier/one:/var/lib/zerotier-one
       - ./data/config:/app/config
     restart: unless-stopped

⚠️IP_ADDR4/IP_ADDR6中的xxxx替换成你自己服务器的公网ip。

docker-compose.yaml文件所在文件夹执行如下命令,就可以启动planet服务:

 docker compose up -d

然后在 dist目录下找到我们需要的 planet文件,下载下来,后续需要导入到客户端。

2、op安装配置Zerotier

登录路由器,在【系统】→【软件包】菜单下,点击【更新列表】,等待更新结束,在过滤器输入 zerotier,安装如图所示的三个软件,安装完成后不着急启动,我们先替换 planet文件。

image-20250906105728534

2.2、配置zerotier

1、替换Planet文件

通过 ssh连接路由器,登陆后找到 /etc/zerotier/文件夹,将路径下的 planet替换城我们之前下载好的文件即可。

2、配置网络

先进入你的planet服务器,根据2.1.1节的 docker-compose文件的配置,访问 http://公网ip:3443端口,进入网页配置生成一个网络,复制下来你的 NetWork ID

image-20250906110819365

然后进入路由器的【VPN】→【Zerotier】菜单,点击最下方“网络配置”中的的【编辑】,将“网络 ID”替换成你刚才创建的网络的,然后如下图勾,路由器就配置完成了。

image-20250906110351627

然后进入你的planet网站,点击刚才创建的网络,勾选【Authorized】和【Active bridge】,网络就通畅了。

image-20250906111104932

2.3、配置下级设备访问

目前为止,已经实现了路由器加入Zerotier局域网,但是暂时只能访问我们的路由器,对于下级设备还无法访问, 我们再次打开Planet服务器,进入刚才创建的为网络,点击上方的【Routes】,在“Target”中输入路由器在家庭局域网中的地址的网段,比如路由器的地址是 192.168.1.1,则输入 192.168.1.0/24,在“Gateway”中输入路由器在Zerotier网路中的地址,保存即可。

image-20250906111859728

三、效果展示

假设家庭局域网中有一台NAS的地址是 192.168.100.231,现在在另一台已经加入Zerotier网络的电脑**问该地址,即可进入该设备。

四、总结

Zerotier实现异地组网,实现家庭局域网地址对下级设备的访问的核心在于勾选 Active bridge,和后续 Route的配置。

收藏
送赞
分享

10

主题

33

回帖

0

牛值

fnOS系统内测组

谢谢大佬

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则