Openwrt安装Zerotier实现外网访问

一、背景

在没有公网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安装,具体代码如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 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

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

1
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的配置。

updatedupdated2025-09-062025-09-06
加载评论