买了一款很小很好看的路由器 Cudy TR3000,官方提供刷 OpenWrt 的方法,在下载页能看到根据 GPL 许可证要求提供的 OpenWrt 源码,在 bilibili 和酷安有不少拆解和刷机评测,因为不需要太多定制功能,就先使用官方原版固件。
官方原版固件的操作界面可以参考:Cudy 管理界面模拟器
我需要在外面访问路由器下局域网的设备,官方固件支持 VPN 设置,有 OpenVPN、WireGuard、ZeroTier 等,可惜不支持 Tailscale,只能选择 ZeroTier。
参考官方教程:如何通过 Zerotier 远程连接 Cudy 路由器?
首先注册 Zerotier 账户并创建网络:
然后打开 TR3000 的 VPN 管理界面,启用,协议选择 Zerotier 主节点,将上面的网络 ID 填入 ZeroTier 网络 ID:
使用 TR3000 当 VPN 客户端的选项暂时没试过,可以参考官方的说明:如何设置 VPN 客户端来访问远程 VPN 服务器? – Cudy
关于客户端访问的设置:
本地局域网:允许 Zerotier 网络里的其他客户端通过 TR3000 访问局域网内其他 IP
互联网:允许 Zerotier 网络里的其他客户端使用 TR3000 作为互联网出口
互联网和本地局域网:允许 Zerotier 网络里的其他客户端同时访问以上两者,就像设备直接连接在路由器下一样
以上设置还需在 Zerotier 网络管理页面添加路由,如果需要通过 TR3000 访问互联网,还需要在客户端设置。
保存完成后,在 Zerotier 网络管理页面允许 TR3000 加入网络,加入后的效果:
可以看到 TR3000 官方固件的 Zerotier 插件版本是 1.8.6。
接下来添加路由:
共三条路由设置:
10.233.233.0/24:这是创建的 Zerotier 网络的网段,用于各 Zerotier 客户端互相访问,Via 留空
192.168.233.0/24:这是 TR3000 下的局域网,其他客户端访问该局域网需要通过 TR3000,Via 填写 TR3000 的 Zerotier 网络 IP,这里是 10.233.233.100
0.0.0.0/0:这是默认路由,允许客户端将所有流量转发到指定的设备,这里 Via 也写 10.233.233.100,其他设备可以通过 TR3000 访问网络
设置完成后,将其他客户端也加入该网络,以 Android 为例:
现在 Android 可以访问到 TR3000 的局域网 IP 或者 Zerotier IP 了,192.168.233.x 网段的设备都可以访问。
为了通过 TR3000 访问互联网,还需要在 Android 的 Zerotier 设置里启用以下设置:
勾上 Route all traffic through ZeroTier,然后点击 Update 即可生效。
配置完成后,可以通过 Zerotier 访问 TR3000 下的局域网设备,或者通过 TR3000 访问互联网了。
可惜的是,在 Cudy 官方的固件中,Zerotier 的设置选项较少,例如无法设置 Moon 或 Planet,只能使用 Zerotier 官方默认的服务器。