Zerotier自建Planet服务器实现openwrt异地组网

Zerotier自建Planet服务器实现openwrt异地组网

前言

现在国内的ip已经很少有外网ip了,动态dns已经不行了,而zerotier目前自己服务器很不稳定,没有外网ip很难建立连接,本文通过Zerotier自建Planet服务器实现openwrt异地组网,在家就可以轻松访问办公室电脑,同样,在办公室,也可以轻松访问家里的NAS设备,提高办公效率,实现更好的办公环境。

Zerotier简介

ZeroTier是一款利用UDP 打洞来实现内网穿透的工具,相比其他工具成功率更高、部署更简单。 其基本工作原理是组建一个虚拟局域网,各个设备(NAS、Linux、Windows、OpenWrt、Mac、iOS、Android)安装了客户端、加入到这个虚拟局域网后,就会自动分配一个IP,从而实现局域网内各个设备及服务的相互访问。

链接建立后,各设备之间是直接连接的,并不通过服务器中转,所以,服务器带宽,流量并不重要,只要保证各设备间速度即可。比如两地都属于电信网络,或者都属于联通网络,速度会更好。看一下Zerotier的原理图:

Zerotier工作原理

 

zerotier的一些专有名词:

  • PLANET 行星服务器,Zerotier 官方根服务器,在国外。免费版最大支持25个设备连接。
  • MOON 卫星服务器,私有根服务器,可以利用带有公网IP的云服务器自己搭建,起到代理加速的作用
  • LEAF 网络客户端,连接到根服务器的网络节点,如上述提到的NAS、群晖、Linux、Windows等

现在使用Zerotier的官方根服务器建,没有公网ip已经很难链接上了(ipv6也可以链接),而且有25设备的限制,所以,这里通过自建planet行星服务,来实现异地组网,部署简单快捷,全球都可以访问。

Server端安装

1、购买一台服务器,开放3443的tcp和9993的UDP

MOON UDP 9993 all
Planet TCP 3443 all
如果服务器不支持控制面板开端口,则用命令行开端口,如:
firewall-cmd –zone=public –add-port=3443/tcp –permanent
firewall-cmd –zone=public –add-port=9993/udp –permanent
firewall-cmd –reload
查看开放的端口:
netstat -ntulp
firewall-cmd –list-ports

2、连接到服务器(root),一键构建server端。

脚本来自https://gitee.com/opopop880/zerotier_planet

centos redhat系列下载如下命令 root权限执行

wget https://gitee.com/opopop880/zerotier_planet/raw/master/zerotier_planet.sh && chmod +x zerotier_planet.sh && ./zerotier_planet.sh 

debain ubuntu 系列则安装 root权限执行

wget https://gitee.com/opopop880/zerotier_planet/raw/master/zerotier_planet_debain.sh && chmod +x zerotier_planet_debain.sh && ./zerotier_planet_debain.sh

服务器安装完成后会在脚本执行的目录 例如/root下生成planet文件。下载下来,后续要用。

Zerotier自建Planet服务器实现openwrt异地组网

3、安装成功后,登录网页界面:

打开 https://xx.xxx.xx.xxx:3443, 用户名admin 密码 password

出现如下页面就算成功。与zerotier官方控制器的思路一致。记住ztncui里面的地址

Zerotier自建Planet服务器实现openwrt异地组网

在这里,需要改一下用户密码,把原来的password改成你需要的密码,注意安全性。

4、添加网络。

点击添加网络,创建一个新的网络。自己去一个名字,点击创建后,创建一个新的网络。

Zerotier自建Planet服务器实现openwrt异地组网

创建后,进入网络界面,记下网络id。

5.网络基本参数设置

点击网络名称,进入网络后,点击简易安装,选择一个IP范围,点击提交。如192.168.10.0/24,如图:

这样,我们就创建了一个IP范围是192.168.10.1到192.168.10.254的网络地址。记住,自己路由器的ip范围不能与这个范围的相同,如路由器ip范围可以为192.168.1.1~192.168.1.254.

Client端安装

Server端安装完成后,就可以进行用户端安装了。用户端有Windows,Linux,或者路由器(OpenWrt)端安装。

安装OpenWrt路由器端的好处是,安装完路由器后,路由器下所有的设备,都可以自由的访问其它局域网设备,路由器下不管Windows,还是Linux,还是手机,都不需要额外安装客户端,极大的简化异地组网流程。

这里首先介绍OpenWrt路由器端安装。

  1. OpenWrt路由器安装ZeroTier

通过命令行安装或者用户界面软件包安装均可,如命令行安装:

opkg update

opkg install zerotier luci-app-zerotier

安装完zerotier后,使用前面下载的planet文件,替换路由器默认的planet文件。路径为/etc/config/zero/planet。替换后,进入zerotier页面,加入网络,

     2. OpenWrt路由器ZeroTier设置

     2.1 添加一个新接口。

进入网络,接口,添加新接口。新接口名字任意,比如是 zerotier,协议DHCP,包括以下接口,选择你的接口。如图:

同时,在接口的防火墙页面,设置防火墙,如图:

      2.2 进入防火墙页面,配置防火墙。
在防火墙,区域位置,点击添加,注意相关设置,如图所示:

修改防火墙(部分Zerotier版本不需要这部分工作),在防火墙 – 自定义规则里面,添加如下内容:(注意 ztmjffourt 为接口名称)

iptables -I FORWARD -i ztmjffourt -j ACCEPT
iptables -I FORWARD -o ztmjffourt -j ACCEPT
iptables -t nat -I POSTROUTING -o ztmjffourt -j MASQUERADE

重启防火墙。

至此,OpenWRT设置方面,全部完成。在Zerotier的luci界面,启动Zerotier.

      2.3 Zerotier设置路由器转发参数,并允许设备

OpenWRT里面的Zerotier启动后,进入到自己搭建的Zerotier的服务器,进入创建的网络后,就会看到刚刚加入的OpenWRT。把经授权的下面的复选框打钩,这样,就可以把路由器加入到网络里来了。

可以在成员名称位置,自己设定一个名称,这样,如果有更多的设备加入进来,自己也会清楚是哪个设备。另外,在IP分配的地方,可以点击IP地址,进入IP设置页面,改成你想要的IP。如图,IP为192.168.10.50。注意,这个IP地址是其它局域网或者设备访问这个路由器的IP地址。

同时,在ip设置页面点击 管理的路由(或者在网络页面,点击路由),进入路由设置,添加路由:

目标192.168.1.0/24(路由器IP地址范围),网关192.168.10.50(路由器的Zerotier IP),提交。这样,在其它的局域网可以直接通过192.168.1.xxx访问这个OpenWRT路由器管理的电脑。

设置完后,其它局域网OpenWRT路由器,也安装Zerotier,但是,IP范围要区分,比如192.168.2.0/24,这样,就可以通过IP地址跨局域网互访了。

2. 电脑端安装ZeroTier

在网站https://www.zerotier.com/download/下载PC端(Windows或者Mac),下载安装后(可能需要替换Planet文件,替换Planet文件需要停止Zerotier服务,planet文件位置C:\ProgramData\ZeroTier\One),加入上面创建的网络ID,启动后,进入到自己搭建的Zerotier的服务器,在网络页面,就会看到刚刚加入的电脑。把经授权的下面的复选框打钩,这样,就可以把电脑加入到网络里来了。同样,也可以设置电脑的名称,IP地址。其它局域网可以通过这个IP地址直接访问这台电脑。

3. 手机/Linux端安装ZeroTier。

这些客户端的安装,也是同理,安装后,加入网络,Zerotier服务器给他们授权,就可以访问了。

两地局域网测试

下面,看一下不同局域网下的电脑ping值。

通过局域网A ping 局域网B的路由器外网IP,111.11.111.116, 16ms

通过局域网A ping 局域网B路由器下的内网IP,192.168.1.10, 8ms

通过局域网A ping Zerotier服务器IP,122.22.222.227, 52ms

局域网电脑ping值远低于Zerotier服务器ping值,由此可以看到,电脑链接并不通过我们假设的Zerotier服务器。

再看看局域网电脑的文件拷贝速度:

拷贝速度6.57MB,(局域网宽带上传速度50Mb,理论速度8.25MB),接近宽带上传速度,也没有通过Zerotier服务器中转。

另外,使用局域网B的内网IP,访问远程桌面,速度飞快。

结语

通过Zerotier这个方法,两地或者多地建立大局域网,速度仅仅受限于宽带运营商的宽带速度,不受限于Zerotier服务器带宽,配置,可以用最低配的电脑实现服务器搭建,并不影响两地局域网速度,不管是异地组网,还是远程办公,都是一个很好的办法。

 

本文链接

小牛刀

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Post comment