-
目前个人电脑会在多个地方启动, 想将不同地方的电脑加入同一个局域网, 以便于远程桌面, 数据资源共享等操作;
需要用到的开源框架即是: zerotier
GitHub - zerotier/ZeroTierOne: A Smart Ethernet Switch for Earth
GitHub - key-networks/ztncui: ZeroTier network controller UI
zerotier概述
一个网络层面的穿透工具, 可以让用户轻松搭建自己的虚拟网络, 经过授权后将真实环境下非同一局域网的电脑分配到同一网段下来并提供相应的虚拟网络IP地址;
使得各个设备间可以通过虚拟地址来访问彼此
概念
在zerotier网络体系中,根服务器(root server)被称为星球(planet),而每一台联网设备都被称为叶子(leaf),两台星球之间是通过星球节点握手建立隧道连接的,而zerotier作为一家总部位于加州的美国公司并没有在中国设有根服务器,因此在两台设备连接时受制于星球节点的连接质量,不免要产生高延迟,因此我们可以按照官方指引来搭建月亮(moon)节点,让设备相互连接时通过我们自己搭建的月亮节点来握手建立隧道,从而降低握手时的网络延迟、也提高联网稳定性和安全性。
- planet: 根服务器节点, zerotier在全球提供了共用的一些节点, 当使用官方提供的服务时, 需要通过这些节点去连接彼此, 在打洞成功情况下, 数据是不会经过这些节点的; — 也可以部署自己的根服务节点
- leaf: 你自己分散在各个地方的电脑,
- moon: 为你自己的电脑提供公网级别的节点, 更快更稳定的建立连接
使用说明
- 如果基于官方的节点进行局域网创建, 需要在官方控制台中创建网络, 并在客户端中加入对应的网络即可;
- 连上后, 需要勾选对应的节点, 表示鉴权通过才可正常互联
- 如果打洞失败的话, 可以自建moon服务器, 并加入到各个节点中, 这样可以更好的建立连接
- 如果moon方案还是太慢, 或者需要自行管理网络; 那么就可以进行planet服务器的搭建
PLANET搭建
GitHub - Jonnyan404/zerotier-planet: 一分钟自建zerotier-planet
一分钟自建zerotier-plant - Jonnyan的原创笔记
git clone https://github.com/Jonnyan404/zerotier-planet
OR
git clone https://gitee.com/Jonnyan404/zerotier-planet
cd zerotier-planet
# 在这里需要修改docker-compose.yaml中的ip和端口等信息
docker-compose up -d
# 以下步骤为创建planet和moon
docker cp mkmoonworld-x86_64 ztncui:/tmp
docker cp patch.sh ztncui:/tmp
docker exec -it ztncui bash /tmp/patch.sh
docker restart ztncui
- 浏览器访问
http://ip:4000
打开web控制台界面。
用户名:admin
密码:mrdoc.fun
- 浏览器访问
http://ip:3180
打开planet和moon文件下载页面(亦可在项目根目录 的./ztncui/etc/myfs/
里获取)。 - 创建对应的网络, 并设置ip范围
- 客户端安装后, 替换客户端中的 planet文件, 并重启服务
# 不同的系统在不同的目录下
Windows: C:\ProgramData\ZeroTier\One
Macintosh: /Library/Application Support/ZeroTier/One
Linux: /var/lib/zerotier-one
FreeBSD/OpenBSD: /var/db/zerotier-one
# 配置文件在以上目录增加 local.conf文件
- 加入创建的网络即可使用: zerotier-cli join xxxxx
MOON搭建
# docker部署zero-tier moon
version: "3"
services:
zerotier-moon:
image: seedgou/zerotier-moon
container_name: "zerotier-moon"
restart: always
ports:
- "9993:9993/udp"
volumes:
- /self/devData/zerotier/config:/var/lib/zerotier-one
entrypoint:
- /startup.sh
- "-4"
- <公网IP>
- 客户端加入moon: zerotier-cli orbit