Openwrt路由安装Zerotier异地组网异地内网互相访问,Zerotier内网穿透组网
Zerotier简单说明
两地内网分别连接互联网,想通过免费方式达成内网互联以便互相访问内网资源。
使用Zerotier异地组网前提
两地内网能正常访问互联网,主路由有无公网ip无所谓
内网运行有 OpenWRT 系统做主路由器(或其他可安装ZeroTier的软路由系统)或者使用
梅林zerotier开机启动脚本安装ZeroTier内网穿透
达成效果:
两地内网设备能互相ping通、访问任意端口(http / ssh 等)
Zerotier异地组网安装步骤
两地分别正常连接互联网,并分别配置不同的内网网段。如:
网络名称 简称 IP 段
家 LAN 1 10.0.0.1/23
办公室 LAN 2 10.0.2.1/23
1、到 https://my.zerotier.com/注册账号,添加一个网络,简单配置分配的ip段。如:192.168.191.*(这里就说的比较快了,不懂可以参考上面那几篇其他系统安装Zerotier的文章)
2、在 openwrt 系统中找到 zerotier 功能
3、并填写network id
4、勾选上自动允许客户端NAT 选项,
5、确认运行正常后查看获取到的 虚拟ip 或 虚拟mac地址
6、在 zerotier 网站中查看网络页,分别指定设备分配的 虚拟ip地址,并勾选 Allow Ethernet Bridging 选项(点击设备前面的小扳手图标),即允许通过此设备桥接其他设备。
7、在 zerotier 网站中添加路由表
网络名称 简称 IP 段 openwrt 系统 ip zerotier 虚拟 ip
家 LAN 1 10.0.0.1/23 10.0.0.1 192.168.191.1(zerotier分配给设备的IP地址)
办公室 LAN 2 10.0.2.1/23 10.0.2.1 192.168.191.2(zerotier分配给设备的IP地址)
例如在LAN 1中通过ping 192.168.191.2是否能联通LAN 2的zerotier 虚拟ip
由于网络连接质量问题,可能需要稍等几分钟才能ping通。如果几分钟后还是ping不通,可尝试重启 zerotier 功能
分别在两侧openwrt的系统 - WebShell中,执行以下指令
sed -i '/^ip.*254$/d' /etc/zerotier.start && echo ip route add 10.0.2.0/23 via 192.168.191.2 table 254 >> /etc/zerotier.start sed -i '/^ip.*254$/d' /etc/zerotier.stop && echo ip route del 10.0.2.0/23 via 192.168.191.2 table 254 >> /etc/zerotier.stop /etc/init.d/zerotier restart
需要注意两侧应执行的指令是有区别的,见下面的路由策略解释。
指令释义:
1、在 zerotier 启动脚本中增加路由策略。从此路由策略将在 zerotier 服务启动时自动生效。
2、在 zerotier 停止脚本中删除路由策略。
3、立刻重启 zerotier 服务
路由策略解释:
ip route add 10.0.2.0/23 via 192.168.191.2 table 254
10.0.2.0/23 为目标网段,如LAN 1应添加LAN 2的网段,LAN 2应当添加LAN 1的网段。23为网段掩码的表述,相当于255.255.254.0
192.168.191.2 为访问目标网段的网关ip,如LAN 1应设置LAN 2的zerotier 虚拟ip,而 LAN 2则相反
table 254 中的254为 linux 系统中main路由表的代码
linux 系统维护了 4 个路由表:
0# 表 系统保留表
253# 表 defulte table 没特别指定的默认路由都放在改表
254# 表 main table 没指明路由表的所有路由放在该表
255# 表 locale table 保存本地接口地址,广播地址、NAT 地址 由系统维护,用户不得更改
重启 zerotier 服务后,可以查看路由表 (openwrt的 状态 - 路由表功能下活动的IPv4路由)
网络 目标 IPv4 网关 跃点数 表
wan 0.0.0.0/0 10.16.0.1 0 main
lan 10.0.0.0/23 0 main
ztugarihi6 10.0.2.0/23 192.168.191.2 0 main
Mid 10.0.10.0/24 0 main
wan 10.16.0.1 0 main
WAN_Client 192.168.1.0/24 0 main
ztugarihi6 192.168.191.0/24 0 main
上边表格中有两个 ztugarihi6,其中网关为192.168.191.2 的是新增规则,另一个是zerotier自动增加的NAT规则。
1、在LAN 1中运行ping 10.0.2.1检测是否能联通LAN 2的内网设备ip
能ping通的话,则说明路由策略成功生效
ping不通的话,再测试是否能ping通LAN 2 的zerotier ip地址192.168.191.2
ping通则为本地的策略路由没有生效,尝试重启防火墙,并再次ping
ping不通则尝试ping本地的zerotier ip,如果成功,则检查
与LAN 2 的网络连接不稳定。由于zerotier基于p2p连接,再降级通过其服务器中转。如果无法p2p连接成功,且其服务器在国外,会导致网络不稳定。
LAN 2的zerotier配置没有勾选自动允许客户端NAT
zerotier网站后台的网络配置中,没有为LAN 2勾选Allow Ethernet Bridging
如果ping通后延迟非常高,说明zerotier是通过国外moon服务器中转的,没有成功打通穿透内网,可以由于国内的网络环境非常复杂,而且好多都是大内网,所有不是百分百可以穿透成功可以自己搭建moon服务器以达到低延迟访问的目的。
2、经过以上步骤,两个内网应当都可以通过IP互相访问了。
如果想在内网中,通过设备名称互相访问,且在内网部署有额外的dns服务器,如pi-hole作为主dns服务器,则可在pihole配置中,将当前LAN主路由作为主dns来源,其他LAN主路由器作为副dns来源。
配置完成后,可能无法立即解析到其他LAN的设备名称,可以尝试重启pihole,或稍等一会再去解析另一LAN的设备名称。
如果两个LAN主路由(DNS服务器)上存在相同的设备名称,则pihole解析这个设备名称时会优先回复主DNS返回的解析结果。
3、最后,如果想查看 zerotier 的流量状况,可以为 zerotier 单独添加一个网络接口
openwrt固件为zerotier添加接口
1、在 openwrt 的 网络 - 接口界面,选择添加新接口...
2、输入接口名称,如ZEROTIER
3、接口协议选择不配置协议
4、包括以下接口选择以太网适配器: "ztugarihi6" (zerotier)
5、其中 ztugarihi6是每个设备上都不一样的,可以在上述查看路由表中查看
6、不要选择在多个接口上创建接口
7、提交生效
8、然后去重启 zerotier 服务
9、之后就可以在 网络 - 接口 界面中查看到 ZEROTIER 的网络通讯数据统计了
点击链接加入群聊四群:722808830
点击链接加入群聊三群:751529538(已满)
点击链接加入群聊二群:376877156(已满)
点击链接加入群聊一群:622891808(已满)
饿了么红包
本站附件分享,如果附件失效,可以去找找看