Zerotier是一个内网穿透工具,但默认的plant服务器架设在国外,国内用户非常难用,这里记录一下moon服务器——也就是个人的plant服务器——如何搭建。
每篇一首歌
搭建Moon服务器
Moon服务器也是一个Zerotier的节点,所以要先再服务器上安装Zerotier,然后设置为Moon服务器。
Ubuntu上安装Zerotier
如果使用的系统是Ubuntu(Debian),那么安装只需要使用
其他系统请参照官网的描述。
安装完后会给出服务器的Zerotier节点ID,该ID是一个长度为10的十六进制数字。没保存问题也不大,使用
构建Moon服务器
进入Zerotier的配置文件夹,本小节后面的所有操作均在此文件夹下:
导出Moon的配置文件:
如果显示“dentity.public is not a valid identity”,则需要依次执行如下命令:
使用你喜欢的编辑器编辑生成的moon.json文件,将服务器地址和端口填入stableEndpoints
后面的方括号中:
生成Moon服务器的文件:
会生成一个.moon文件。
创建moons.d文件夹
将.moon文件复制到moons.d文件夹中
重启Zertier
最后,Zerotier使用9993这个UDP端口进行通信,所以需要开放服务器的9993端口,各家云服务器的防火墙不同,请自行操作,这里不再赘述。
加入Moon服务器
搭建好Moon服务器后,需要将各个Zerotier终端加入到Moon服务器中。
比较简单的方法是将构建Moon服务器时将生成的.moon文件放入到指定文件夹中,不同的操作系统位置如下(没有该文件夹就创建文件夹):
- Windows: C:\ProgramData\ZeroTier\One\moons.d
- Linux: /var/lib/zerotier-one/moons.d
然后重启Zerotier即可。
创建节点控制器
我们需要管理Moon服务器的虚拟网络,这时候就要创建Moon服务器的节点控制器。
这里使用第三方节点控制器ztncui,其安装流程如下:
下载和安装ztncui
##配置ztncui,开放端口访问
#####重启ztncui,设置开机自启
##
打开云服务器的TCP端口3000,我们可以通过该端口访问节点控制器WebUI。
登录,初始的账号为admin
,密码为password
,登陆后会要求更改密码。
改完密码后,点击“Add network”,输入自己起的网络的名字,点击“Create Network”。
点击“Easy setup”,再点击“Generate network address”,会自动填充下面的三个字段,然后再点击“Submit”,即可生成该虚拟网络。
点击上面的“networks”可以看到新生成的网络及其网络ID,加入该Moon服务器的Zerotier终端可以加入该网络,并在网络控制器中为其授权。
安全地访问节点控制器
现在所有人都可以访问节点控制器,而且是HTTP传输,这很不安全。
一个方法是为服务器添加SSL证书,但这太麻烦了,一个比较好的思路是将节点控制器所在的服务器也加入该虚拟网络,关闭外网访问3000端口,从而只允许该虚拟网络中的节点访问该节点控制器,而且应为Zerotier的流量是加密的,所以即使在虚拟网络中使用HTTP协议也没有问题。
- 服务器加入该虚拟网络。在服务器上执行如下命令
其中ed21abbfcb8bff6c改为你自己网络的虚拟网络。
为其授权,分配虚拟IP,记录该虚拟IP。
关闭3000端口的TCP外部访问。
然后就可以使用该虚拟IP:3000来访问节点控制器了。
总结
介绍了Zerotier的Moon服务器搭建,加入Moon服务器,创建节点控制器等相关的步骤。