问题
在公网实现对家中Openwrt的访问
解决方法
使用ZeroTier进行异地组网
前提
编译的Openwrt固件中有ZeroTier插件
解决步骤
- 进入ZeroTier官网(ZeroTier链接)
- 登录或注册账号
- 登录后创建 Networks - 创建的 Network 会有一个 Network ID
- 可以给 Network 去一个名字(Name)
 
- 返回 Openwrt Web后台设置:VPN-ZeroTier - ZeroTier Network ID:填入上面创建的 Network 的 Network ID
- 勾选“自动允许客户端NAT”、“启用”
- 保存&应用
 
- Openwrt 转到“网络-接口-添加新接口”: - 新接口名称:自定
- 新接口协议:静态地址
- 包括以下接口:选择“zt”开头的以太网适配器(ZeroTier配置好就会有一个这样的接口),注意这里的以太网适配器(zt开头)的名字记为 ZT 后面用到;
 
- Openwrt 转到“网络-防火墙-自定义规则” - 防火墙自定义规则中新开一行添加如下代码: - iptables -I FORWARD -i ZT -j ACCEPT iptables -I FORWARD -o ZT -j ACCEPT iptables -t nat -I POSTROUTING -o ZT -j MASQUERADE- 以上所有“ZT”替换成 ZT 的全称, 
- 重启防火墙
 
- 转回ZeroTier中原先对应创建的 Network设置中 - Basics - Access Control:Private(自用)
 
- Advanced - IPv4 Auto-Assign:我选择Easy,下方网段最后一行选一个(如192.168.196.*)
- IPv6 Auto-Assign:我选择全不勾选
- Multicast:默认设置(32(Limit),Enable Broadcast)
 
- IPv4 Auto-Assign:我选择Easy,下方网段最后一行选一个(如
- Members - 此时Openwrt已经运行 ZeroTier 并且加入该Network
- Members列表中可以看到一个设备选项,勾选“Auth?”即代表同意加入,勾选;
- 过一会“Managed IPs”中会出现一个IP(ZeroTier分配的局域网IP),该IP(记为A)后部设置要用到
 
 
- 转到ZeroTier的Advanced-Managed Routes-Add Routes设置中 - Destination:填写Openwrt设备分配子网地址的网段(如192.168.2.0/24)
- Via:填写以上记为“A”的IP(即上面ZeroTier分配的局域网IP)
 
- Destination:填写Openwrt设备分配子网地址的网段(如
- Openwrt 转到 ZT 接口设置页面,转到基本设置 - 协议:静态地址
- IPv4地址:填写以上记为“A”的IP(即上面ZeroTier分配的局域网IP)
- 子网掩码:255.255.255.0或255.255.0.0(视你原先ZeroTier中选择局域网网段的子网掩码长度决定)
 
- Openwrt 转到 ZT 接口设置页面,转到防火墙设置 - 创建/分配防火墙区域:选择“lan”
- 保存&应用
 
- 至此路由配置部分结束
- 电脑端远程访问Openwrt - 在 ZeroTier 官网下载ZeroTier客户端(目前最新版本1.10.2,不知道为什么运行后Ui没法显示,改下载1.6.1版本,没有出现该问题)
- 右键ZeroTier One托盘图标,Join Network后,填写Network ID;
- 在ZeroTier的Network设置中,勾选新设备,同意加入网络。
 


 
                
                
               