在LEDE中配置ZeroTier(含Moon加速)
LEDE的酷软中心为使用OpenWRT的用户提供了一个方便的应用安装配置环境,大大降低了OpenWRT的使用难度。ZeroTier类似一款虚拟路由软件,可以将不同地方的不同网络通过虚拟的方式进行连接,以方便进行网络共享。本文基于LEDE 2.32版本进行介绍。
一、注册ZeroTier帐号
访问 ZeroTier.com 官方网站注册帐号,登录后点击 Create a Network 创建一个网络。

在 IPv4 Auto-Assign(IPv4地址自动分配)中,选中一个网络段。

二、在LEDE上安装运行ZeroTier
- 在酷软中心安装ZeroTier插件,安装完成后打开ZeroTier,在 Network ID 中输入自己在ZeroTier上分配的网络ID,勾选 开启ZeroTier,点击 开始运行 按钮。
运行后,修改配置文件,在终端输入以下命令:
vi /etc/config/zerotier找到以下两处进行修改:
config zerotier sample_config下的option enabled 0,将0改为1。list join ‘8056c2e21c000001’,替换为自己的网络ID。
其它默认即可。按
Esc键,输入:wq保存退出,然后执行reboot重启。你也可以使用 WINSCP 等软件直接修改文件。
在LEDE Web界面中,点击 网络 → 防火墙,在 基本设置 → 区域设置 里,将 转发 改为 接受。区域下方的三行(出站、入站、转发)均选择 接受,其它保持不动。
在 防火墙 → 自定义规则 页面,增加以下三条规则:
iptables -I FORWARD -i ztc3qwyx5l -j ACCEPT iptables -I FORWARD -o ztc3qwyx5l -j ACCEPT iptables -t nat -I POSTROUTING -o ztc3qwyx5l -j MASQUERADE注意:
ztc3qwyx5l是LEDE的ZeroTier虚拟接口名称,可通过终端ifconfig命令查看,请自行替换。设置完成后,点击 重启防火墙。
三、配置ZeroTier网络路由
在ZeroTier网络的 Members 部分,勾选已出现的网络成员进行授权。稍等片刻,ZeroTier会为每个成员分配管理IP。
在 Managed Routes(管理路由)部分,将子网与管理IP对应,设置路由,如图所示。可以将多个子网通过ZeroTier连接在一起,形成一个虚拟局域网。


四、测试
通过以上设置,LEDE的ZeroTier网络配置已完成。可以在LEDE上Ping家中的网关地址(例如 192.168.102.1)测试连通性。
五、配置Moon(进阶)
Moon 又称自定义根服务器,通过自定义的服务器作为跳板加速内网机器之间的相互访问。如果LEDE有固定公网IP,建立Moon节点可显著提高ZeroTier在不同子网间的访问速度。
启用ZeroTier后,发现其安装目录 /var/lib/zerotier-one(实际链接到 /var/lib/zerotier-one_sample_config)是临时目录,重启后会被清除。必须修改配置文件以持久化Moon配置。
1. 修改配置
修改 /etc/config/zerotier,加入以下行:
option config_path '/etc/zerotier'
注意:LEDE 2.33 的目录已修改为 /tmp/lib/zerotier-one_sample_config。若从2.32保留配置升级到2.33,ZeroTier将无法正常启动,需重新安装和配置。2. 生成Moon文件
进入ZeroTier目录(其他OpenWrt版本一般在 /var/lib/zerotier-one):
cd /etc/zerotier运行以下两条命令:
zerotier-idtool generate identity.secret identity.public
zerotier-idtool initmoon identity.public >> moon.json将在当前目录生成 moon.json 文件。
3. 修改Moon配置文件
修改 moon.json 文件中 "stableEndpoints" 字段为LEDE路由的公网IP,端口默认为 9993。
注意:LEDE 2.33(2.34版本中已无此内容)生成的 moon.json 文件,需要将多余的签署密钥部分删除(下图绿框部分),否则无法生成签名文件。
4. 生成签名文件
执行命令:
zerotier-idtool genmoon moon.json会生成签名文件,例如 00000005ff20a0f6.moon。
5. 将Moon节点加入网络
在 /etc/zerotier 目录下创建 moons.d 子目录,将生成的 .moon 文件复制到该文件夹,并重启设备。
其他设备加入Moon节点的方法:
方法一:找到ZeroTier安装目录,新建
moons.d文件夹,将00000005ff20a0f6.moon复制到该文件夹中,重启设备。
各系统ZeroTier安装目录:- Windows:
C:\ProgramData\ZeroTier\One - Mac:
/Library/Application Support/ZeroTier/One(Terminal中为/Library/Application\ Support/ZeroTier/One) - Linux:
/var/lib/zerotier-one - FreeBSD/OpenBSD:
/var/db/zerotier-one
- Windows:
方法二:在终端执行命令:
zerotier-cli orbit 5ff20a0f6 # 请将ID替换为实际的Moon节点ID
6. 验证测试
在其他设备上执行以下命令查看是否已使用Moon:
zerotier-cli listpeers输出中常见标识:
- PLANET:行星服务器,ZeroTier官方的根服务器。
- MOON:卫星级服务器,即用户自建的私有根服务器,起中转加速作用。
- LEAF:叶子节点,每台连接到该网络的设备。
若某行显示 MOON 字样,表示Moon已生效。
注意:本机不能查看自身,需要在其他设备上验证。
后记(2020-06-29)
最近将LEDE 2.33保留配置升级到2.35后,ZeroTier无法启用。解决方法如下:
- 删除ZeroTier插件后重装。
- 如果仍不能启动,修改
/etc/config/zerotier,将option enabled改为1,list join后的值替换为实际的ZeroTier网络ID。 - 再次进入酷软界面启动ZeroTier。
另一种方法:进入LEDE的Shell环境,运行命令:
zerotier-one -d 觉得内容不错?我要