私有化部署zerotier planet服务器

2021-12-04 11:15:14 21点赞 179收藏 22评论

之前我介绍过如何搭zerotier的moon服务器,这次我来介绍如何搭建zerotier的planet服务器。如果只接入自己搭建的zerotier planet服务器,基本相当于私有化部署zerotier。(私有化部署是不是瞬间有感觉了)在上主菜前先上小菜:我介绍过部署moon服务器的方案,现在补充一个通过docker搭建zerotier的方法,通过docker搭建让整个过程变得异常简单。

zerotier moon服务器的docker镜像开源地址:https://github.com/rwv/docker-zerotier-moon

使用起来非常简单:

#运行zerotier-moon
sudo docker run --name zerotier-moon -d --restart always -p 9993:9993/udp -v /home/set/zerotiermoon:/var/lib/zerotier-one seedgou/zerotier-moon -4 1.2.3.4
#查看moon节点编号
sudo docker logs zerotier-moon

获得moon节点之后,用下面命令加入moon服务器即可:

sudo zerotier-cli orbit moon编号 moon编号

接下来上主菜:

如何部署zerotier的planet服务器

在部署zerotier服务器之前你必须要有一台具有公网IP的主机或者云服务器。6月/11月时入手云服务器一般价格最低,之前11月腾讯云和阿里云都有不足200元3年的2核4G轻量云服务器方案,现在都已近没有了(只有企业用户还有2核4G轻量服务器的3年优惠价)。如果想尝尝鲜建议买个50元1年的轻量服务器,5M宽带勉勉强强也能用。

有了服务器,接下来需要用到一个开源镜像,开源地址:https://github.com/sbilly/docker-zerotier-controller。只不过整个镜像不能直接使用,需要根据自己的实际情况进行编译才能运行。首先下载安装包,可以用curl也可以直接git clone下来:

#下载安装包
sudo curl -LJO https://codeload.github.com/sbilly/docker-zerotier-controller/zip/refs/heads/main
sudo unzip docker-zerotier-controller-main.zip
#进入安装包修改配置文件
cd docker-zerotier-controller-main/patch
sudo vim planets.json

在进行编译前首先要修改planet.json这个配置文件。这个文件主要有3个内容:location这个无关紧要,Identity是认证的公钥,Endpoints是终端地址(服务器地址,IP选默认的9993)

私有化部署zerotier planet服务器

{
"planets": [
{
"Location": "Guangzhou", // Where this planet located
"Identity": "a4de2130c2:0:ab5257bb05cd2fb8044fe26483f6d27b57124ca7b350fb3e0f07d405c68c4416094dbc836bf62ed483072501aa3384dff3c74ac50050c1bfbb1dc657001ef6a1", // The planet's public key, ex: identity.public
"Endpoints": ["127.0.0.1/9993"] // The list of endpoints in 'ip/port' format. IPv6 is supportted
}
]
}

接下来回到主目录,用如下命令进行编译:

sudo docker build --force-rm . -t sbilly/zerotier-controller:latest

整个编译过程耗时比较久,如果网络条件不好可能还会卡主。如果出现这种情况,ctrl+c退出后重新执行上面的命令即可(我的小主机大概编译了半个多小时中间卡主了四五次):

私有化部署zerotier planet服务器

编译成功之后就可以运行docker镜像了,官方有3种运行方式。最推荐用第二、三种,我介绍一下第二种:

sudo docker run --rm -ti -e ZU_SECURE_HEADERS=false -e ZU_CONTROLLER_ENDPOINT=http://127.0.0.1:9993/ -e ZU_DEFAULT_USERNAME=admin -e ZU_DEFAULT_PASSWORD=zero-ui -p 4000:4000 -p 3000:3000 -p 9993:9993 -p 9993:9993/udp sbilly/zerotier-controller:latest

上面的命令自行修改服务器地址,登陆用户名和密码,登陆zero-ui时会用到:

私有化部署zerotier planet服务器

接下来就可以在浏览器中用:http://IP:4000访问控制端了,界面和zerotier的主界面有相似之处。用账户密码登陆后,点击create network就可以创建自己的虚拟网络,这时候会生成一个net ID:

私有化部署zerotier planet服务器

接下来我们还要下载一个叫planet的文件,这个文件的下载地址是:http://IP:4000/app/static/planet

私有化部署zerotier planet服务器

将这个planet文件替换你安装zerotier的客户端中的plant文件,就可以用zerotier加入你自己的planet服务器了(比如Ubuntu的目录是/var/lib/zerotier-one):

私有化部署zerotier planet服务器

事情到这里就结束了吗?不做到完美怎么符合我的性格,接下来我要介绍如何安装两个非官方客户端:安卓端和Linux端。因为官方的安卓端不能自主选择planet服务器,而官方Linux没有deb安装包也没有图形界面。重要的是我们是自主部署的zerotier如果使用官方客户端,万一升级后失效了呢?

Linux端的开源地址https://github.com/tralph3/ZeroTier-GUI

下载源码后解压,然后执行编译安装的命令即可:

./make_deb.sh

安卓端的开源地址https://github.com/kaaass/ZerotierFix

安卓端就更加简单了,直接下载release里面的最新版本安装,安装后在设置里加载你下载的planet文件即可。

私有化部署zerotier planet服务器

window端没有修改版,直接用官方版本就可以了。不过一些朋友可能找不大planet文件的目录,那就参考我下面的截图地址:

私有化部署zerotier planet服务器

文章写到这里,基本是一个成熟完整的解决方案了。最后,我不得不称赞zerotier团队,直接开放到可以实现私有化部署。当然也离不开很多程序猿大神的助力,但这精神不服不行。

展开 收起
22评论

  • 精彩
  • 最新
  • 请问下moon和planet的差异点,已经建立好moon了以后还有必要再建立planet嘛?性能会有差异吗?建立planet单纯为了系统在自己的控制之下吗?最近搞得头大 [尴尬]

    校验提示文案

    提交
    planet是根服务器,moon是加速服务器。自己搭建了planet就无需搭建moon。已经部署了moon也不必再搭建planet。

    校验提示文案

    提交
    收起所有回复
  • 谢谢大佬,我用的是tvtv.fun的教程

    校验提示文案

    提交
  • identity.public怎么生成呀?就用git clone下来的吗?不用改嘛?

    校验提示文案

    提交
  • 一个docker 直接就可以了,不用搞这么多配置文件,还可以用原生客户端
    去看看

    校验提示文案

    提交
    请教一下,我实在按这篇文章无法配好,就用了keynetworks/ztncui的镜像,用原版客户端一次就可以了,但运行相当不稳定,例如:客户端明明在线,结果显示离线。或者客户端加入却在服务器端不显示。不知道你知道是什么原因吗?,另外,dockerhub上的镜像大概10个月没更新了,不知道怎样能找到新的?

    校验提示文案

    提交
    收起所有回复
  • 请教,编译前的公钥与loacation怎么填写?

    校验提示文案

    提交
  • 请教作者:已部署了并创建网络,客户端点加入后,显示状态一直都是requesting_configuration,但在服务器端一直看不见设备加入。加入前,用下载的planet文件替换了客户端的文件的,结果也是无效。部署工作和文章不同之处如下:由于国情因素编译会在访问arclinux的时候卡住,所以直接在dockerhub上拉镜像部署的,run命令中也没有用-rm选项,用的--restart,防护墙的4000和9993端口都将tcp、udp开放了

    校验提示文案

    提交
    另外,请问威联通设备上planet文件的位置在哪里呢?

    校验提示文案

    提交
    我也显示状态一直都是requesting_configuration,请问你是怎么解决的?

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 请问一下大佬ios端依然无法使用planet吧?

    校验提示文案

    提交
  • 请问自建planet,但是listpeers显示我连接的vps是leaf而不是planet 请问需要怎么处理

    校验提示文案

    提交
  • 不知道私有化部署,会不会解决ios没有moon这个问题?

    校验提示文案

    提交
  • unable to prepare context: unable to evaluate symlinks in Dockerfile path: lstat /root/docker-zerotier-controller-main/patch/Dockerfile: no such file or directory
    [内伤] 编译这一步出现上面这段怎么办

    校验提示文案

    提交
  • 有个问题,如果两个叶子不在同一个运营商下,速度很慢。我在家里,电信,访问学校宿舍,联通。很慢,而且容易卡死。把学校的网络切换为电信就很流畅。

    校验提示文案

    提交
  • 不行,作者你这个运行起来知乎加入到网络后刷新表示没反应。

    校验提示文案

    提交
  • 不行,作者你这个运行起来,加入到网络后刷新表示没反应。

    校验提示文案

    提交
  • ios端呢?,,,

    校验提示文案

    提交
    ios需要用美区账户下载。

    校验提示文案

    提交
    收起所有回复
  • 想多了 这个只是控制端 不是根服务器 私有不了的!

    校验提示文案

    提交
  • ios下的客户端怎么办?

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
179
扫一下,分享更方便,购买更轻松