虚拟局域网!跨地域访问!在现有的Mesh VPN中,ZeroTier是最用户友好且易于使用的,但它也有一个致命的问题:即使建立了自己的moon,连接不是很稳定。在本篇文章中,我们将自建ZeroTier网络控制器,尝试解决这一问题。
ZeroTier基础根服务器并不能自建,很遗憾。
2022/9/11注:解决不了,别试了。还是去看看Headscale这篇吧!
0x00 参考文档
https://docs.zerotier.com/self-hosting/network-controllers
https://github.com/key-networks/ztncui
读者可以先阅读以上文档,以确保使用最新的项目特性。
0x01 准备搭建基础网络控制器
文章假设您已经在目标机器上安装了 zerotier-one 软件包。
根据官方文档,我们可以通过调用API的方式创建自己的网络,不过那样不够low code,这里我们直接来使用 ztncui 网页端帮助我们调用API来创建属于自己的网络。
0x02 一转搭建ztncui
ztncui需要安装在与网络控制器相同的主机上
ztncui 是一个 node.js 项目,如果你之前没有接触过 node.js ,那么以下是简要的安装说明:
https://nodejs.org/en/download/package-manager/
建议安装LTS版本,以保证依赖正常安装。
注:
ztncui也提供主流发行版的二进制软件包与docker镜像,这里我们采用最追新也最方便自定义的方式。
又注:如果你想使用
docker镜像,还想让服务器上的应用可以直接受益于 虚拟局域网,请额外注意docker network的配置。
之后我们安装 yarn 替代 npm 进行依赖管理,安装同样很简单:
sudo npm install --global yarn
虽然安装
node.js时会提示使用系统包管理器安装yarnpkg,但是不建议。
- 安装
g++与node-gyp,因为ztncui需要它们进行密码散列。
g++ 可通过包管理器安装,而对于 node-gyp :