背景
随着个人设备增多,nas,个人影音库等边缘计算流行。如何低成本,高效的组织,联系各个设备变成一个问题。而zerotier可以比较完美的解决这个问题。
zerotier是一个异地组网神器,相比于传统中转组网受限制于节点带宽,zerotier会优先使用p2p模式通信,这在双方同时拥有公网IP时格外有效。
相比于中转,p2p直连可以提高速率和稳定性,不受服务器带宽限制(改为收到双方上传带宽限制)
搭建
1,下载
1 2 3
| git clone https://github.com/Jonnyan404/zerotier-planet cd zerotier-planet vim docker-compose.yml
|
2,修改
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| version: '2.0' services: ztncui: container_name: ztncui restart: always environment: - MYADDR=127.0.0.1 - HTTP_PORT=3443 - HTTP_ALL_INTERFACES=yes - ZTNCUI_PASSWD=root ports: - '3443:3443' - '9993:9993' - '9993:9993/udp' volumes: - './zerotier-one:/var/lib/zerotier-one' - './ztncui/etc:/opt/key-networks/ztncui/etc' image: keynetworks/ztncui
|
3,运行
1 2 3 4
| docker-compose up -d
docker images # 查看镜像 docker container ps -a # 查看容器
|
4,配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| docker exec -it ztncui bash # 进入容器 # 在容器内操作 cd /var/lib/zerotier-one ls -l # 生成moon配置文件 zerotier-idtool initmoon identity.public > moon.json chmod 777 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" }
# 在容器内生成moon文件 zerotier-idtool genmoon moon.json mkdir moons.d cp *.moon moons.d/ # 在容器外生成planet文件 mv world.bin planet # 复制到容器内 docker cp ./planet ztncui:/var/lib/zerotier-one # 重启容器 docker restart ztncui
|
5,验证 & 授权
1 2 3 4 5 6 7
| docker exec -it ztncui bash # 进入容器 # 在容器内操作 cd /var/lib/zerotier-one # 查看moon zerotier-cli listmoons # 访问ip+端口对应的设置页面 # 替换客户端的planet文件并重启服务, 再加入网络, 在网页端授权
|
客户端
Windows
下载地址:Zerotier Download
点自动安装后,默认会在任务栏启动,需要在右下角找到zerotierUI点击 Quit 退出
- 停止Zerotier任务
任务管理器,找到zerotier服务退出
- 替换planet文件
打开C:\ProgramData\ZeroTier\One
,用刚刚下载的planet替换掉本地的planet
- 重启Zerotier服务
在任务管理器点击重新启动Zerotier服务,等已停止变成正在运行
- 连接私有网络
在右下角任务栏找到ZerotierUI,依次 右键
- join New Network
,输入网络ID
- 在服务端界面,给本地客户端授权
在客户端查看状态OK表示连接成功。