2020
07-21

Openwrt路由安装Zerotier异地组网异地内网互相访问,Zerotier内网穿透组网

Zerotier简单说明

两地内网分别连接互联网,想通过免费方式达成内网互联以便互相访问内网资源。

使用Zerotier异地组网前提

两地内网能正常访问互联网,主路由有无公网ip无所谓

内网运行有 openwrt 系统做主路由器(或其他可安装zerotier的软路由系统)或者使用

老毛子Padavan的zerotier内网穿透

梅林zerotier开机启动脚本安装ZeroTier内网穿透

本站关于介绍“zerotier”的文章

达成效果:

两地内网设备能互相ping通、访问任意端口(http / ssh 等)

Openwrt路由安装Zerotier异地组网异地内网互相访问

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 选项(点击设备前面的小扳手图标),即允许通过此设备桥接其他设备。

指定设备分配的 虚拟ip地址

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地址)

在 zerotier 网站中添加路由表

例如在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服务器以达到低延迟访问的目的。

ZeroTier自建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 的网络通讯数据统计了

如无特殊说明,解压密码均为:aisoa.cn

您可能感兴趣的文章

支付宝打赏支付宝打赏微信打赏微信打赏