几分钟实现zerotier自建真正planet教程

Zerotier 是通过 P2P 等方式实现形如交换机或路由器上 LAN 设备的内网互联。如果想从公司到家里,或者从外面连家里,或者走一个隧道,把全球的小鸡拉到一个局域网内。我是为了从公司连接到家里的软路由,实现在公司可以访问家里所有设备

为什么要自建

    • 国外的planet星星服务器,或者自建moon对国内不是很友好

    • 自己掌控度高

专有名词

PLANET :行星服务器,Zerotier 根服务器

MOON :卫星服务器,用户自建的私有根服务器,起到代理加速的作用

LEAF :网络客户端,就是每台连接到网络节点。

我们本次搭建的就是 PLANET 行星服务器

安装教程

1、下载代码

git clone https://github.com/Jonnyan404/zerotier-planet
cd zerotier-planet
vim docker-compose.yml

2、修改docker-compose

### 参考
### date:2021年11月29日
### author: www.mrdoc.fun | jonnyan404
### 转载请保留来源
version: '2.0'
services:
    ztncui:
        container_name: ztncui
        restart: always
        environment:
            # - MYADDR=公网地址(不设置该项自动获取)
            - MYADDR=127.0.0.1  # 改成自己的服务器公网ip
            - HTTP_PORT=3443
            - HTTP_ALL_INTERFACES=yes
            - ZTNCUI_PASSWD=root
        ports:
            - '3443:3443'  # 设置网页的端口
            - '9993:9993'  # 作为中心节点,提供9993端口给客户端用,一般是9993
            - '9993:9993/udp'
        volumes:
            - './zerotier-one:/var/lib/zerotier-one'
            - './ztncui/etc:/opt/key-networks/ztncui/etc'
            # 按实际路径挂载卷, 冒号前面是宿主机的, 支持相对路径
        image: keynetworks/ztncui

3、运行代码

docker-compose up -d

docker images # 查看镜像
docker container ps -a # 查看容器

docker exec -it ztncui bash # 进入容器
# 在容器内操作
cd /var/lib/zerotier-one
ls -l
# 生成moon配置文件
zerotier-idtool initmoon identity.public > moon.json
chmod 777 moon.json

5、新建一个terminal, 在容器外修改moon.json, 位置对应挂载位置

修改stableEndpoints, 注意格式和实际公网ip

{
 "id": "b72b5e9e1a",
 "objtype": "world",
 "roots": [
  {
   "identity": "b72b5e9e1a:0:a892e51d2ef94ef941e4c499af01fbc2903f7ad2fd53e9370f9ac6260c2f5d2484fd90756bec0c410675a81b7cf61d2bb885783bd6a8c28bce83bcab5f03fe14",
   "stableEndpoints": ["127.0.0.1/9993"]
  }
 ],
 "signingKey": "45f0613e569a0549c74293c39b30495b594a003534290e8ade9ef82877aa7505d7a73eeabfc22c97c404e4caaf9f3c9eed2b134d696935c966e28f523364f15f",
 "signingKey_SECRET": "cc6afd67e7b7f84a92e2c8d3c2e7212c71e2ad0a4f5b3c03bf60ab1cd3b99281b57d9a2958d2bd8fc2bc77fdf2a1160099c2c61d3d9acc8cb311673ee120b4a6",
 "updatesMustBeSignedBy": "45f0613e569a0549c74293c39b30495b594a003534290e8ade9ef82877aa7505d7a73eeabfc22c97c404e4caaf9f3c9eed2b134d696935c966e28f523364f15f",
 "worldType": "moon"
}

6、在容器内生成moon文件

zerotier-idtool genmoon moon.json
mkdir moons.d
cp *.moon moons.d/

7、在容器外生成planet文件

拷贝一份moon文件, 客户端可以用到

下载mkmoonworld, 拷贝moon.json, 放在一个目录下

./mkmoonworld-x86_64 ./moon.json
mv world.bin planet
# 复制到容器内
docker cp ./planet ztncui:/var/lib/zerotier-one

8、重启容器

docker restart ztncui
docker exec -it ztncui bash # 进入容器
# 在容器内操作
cd /var/lib/zerotier-one
# 查看moon
zerotier-cli listmoons

9、访问ip+端口对应的设置页面

10、替换客户端的planet文件并重启服务, 再加入网络, 在网页端授权

结语

服务端搭建完成,后面我们讲讲客户端的配置教程,以及局域网静态路由实现点对网教程,能够直接访问家里局域网

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容