前置知识储备及物料储备
1. 一台有公网的云主机
2. 一点点的linux知识
3. 一点点耐心
1. 购买一台云主机
挑便宜的买, 比如华为现在有一个一年36块钱的轻量云主机(之前买的企鹅轻量云到期了, 改薅华子羊毛)
https://activity.huaweicloud.com/1111_promotion/index.html
系统自便, 我选的ubuntu
2. 登陆云主机
以下linux主机上的操作可以用root来进行, 如果熟悉linux的用户及权限知识, 可以自行创建普通用户, 需要root权限的操作再sudo执行
2.1 安装docker
#下载安装脚本 大概会下载失败, 脚本文件放在后面分享了
curl -fsSL https://get.docker.com -o install-docker.sh
#查看脚本
cat install-docker.sh
#安装docker
sudo sh install-docker.sh
2.2 安装部署ztncui
这里选择克隆一个简化配置的仓库 https://github.com/Jonnyan404/zerotier-planet
git clone https://github.com/Jonnyan404/zerotier-planet
# 或者隆gitee仓库 git clone https://gitee.com/Jonnyan404/zerotier-planet
cd zerotier-planet
仓库内容如下
需要修改docker-compose.yml文件的个别配置
MYADDR修改为云主机的公网ip, ZTNCUI_PASSWD修改为任意密码
#由于某些原因, 国内网络无法访问docker hub官方源, 所以需要先搞到keynetworks/ztncui的镜像(image)
#后面会附上下载连接
docker load -i ztntui.tar.gz
docker compose up -d #运行zerotier镜像
docker compose ps #查看运行状态
docker compose logs #查看日志
docker stats #查看容器消耗资源 (ctrl + c 退出)
消耗资源很少, 100M内存, 0.1%的cpu
2.3 创建moon文件和planet文件
# 以下步骤为创建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 #重启ztncui
#把planet和moon文件复制到home目录
cp ztncui/etc/myfs/* ~/
2.4 修改云主机相关的安全组, 开放9993的tcp和udp, 4000的tcp端口
华为云为例
修改云主机关联的安全组即可
放行9993的tcp和udp, 4000的tcp, 源地址选0.0.0.0/0 (4000是配置组网权限的的网页, 因为我已经配好了, 所以就关掉4000的放行了)
配置好之后需要点一下实例安全组的确定
2.5 打开云主机ip:4000 去配置zerotier
右上角登陆, 用户名admin, 密码是docker-compose文件里填的密码
登陆后可能会让你修改初始登陆密码, 不管他, 点add network
随便起个名字
private可以控制接入权限, 建议钩上, 不然的话谁都可以接入这个网络
easy setup这里自动生成组网的网址网关, 生成后submit 提交一下
zerotier服务端的配置就结束了, 之后只需要有客户端接入时放行就好了
3. 客户端安装zerotier-one(windows, linux, mac, 安卓)
https://www.mrdoc.fun/doc/443/#h1-%E5%AE%A2%E6%88%B7%E7%AB%AF%E4%B8%BB%E8%A6%81%E4%B8%BAWindows,Mac,Linux,Android
我没windows电脑, 就拿linux和安卓举个例子
3.1 linux(arch系)
#安装zerotier-one
sudo pacman -S zerotier-one
#下载云主机上的moon和planet文件到本机
scp 云主机:xxx.moon ./
scp 云主机:planet ./
#在/var/lib/zerotier-one文件夹下创建moons.d文件夹
sudo mkdir /var/lib/zerotier-one/moons.d
#复制下载的moon文件到/var/lib/zerotier-one/moons.d
sudo cp xxx.moon /var/lib/zerotier-one/moons.d
#复制planet到/var/lib/zerotier-one
sudo cp planet /var/lib/zerotier-one
#将刚刚复制的文件所有权修改为zerotier-one:zerotier-one
sudo chown -R zerotier-one:zerotier-one /var/lib/zerotier-
one/planet /var/lib/zerotier-one/moons.d
#重启zerotier客户端
sudo systemctl daemon-reload
sudo systemctl restart zerotier-one.service
配置完成, 接下来查看peers和加入网络
去zerotier服务端上看一下network id
加入网络
sudo zerotier-cli join 你的network id
在网页控制台可以看到电脑已经申请加入网络, 这时候需要钩上Authorized和Active bridge, 这样就成功组网了
钩上后刷新, 设备有了组网ip
sudo zerotier-cli listnetworks #查看加入网络
看一下电脑的网络信息, 新网络已经生效
其他设备按照这个步骤加入组网, 就可以互相之间访问了, 比如异地串流, 异地局域网联机
3.2 安卓相关
安卓想加入自建组网的话, 需要使用魔改的客户端 ZerotierFix
https://github.com/kaaass/ZerotierFix
下载最新的安装包, 把moon和planet文件复制到手机里
https://github.com/kaaass/ZerotierFix/releases
安装后进入app设置, 启动自定义planet, 然后从文件导入, 启用移动网络使用
之后moon入轨, 大概会提示出错, 不用管它
然后加入网络
手机添加网络后, 去zerotier控制台放行
然后手机上就可以访问到其他电脑上的内容, 可以用smb直接看电脑或者nas上的视频, 也可以用moonlight串流
在公司电脑上ping一下手机延迟
50ms+, 还彳亍口巴
docker安装脚本和ztncui的打包镜像
此处隐藏内容请回复后再查看。
参考连接
https://github.com/xubiaolin/docker-zerotier-planet
https://github.com/Jonnyan404/zerotier-planet
https://github.com/kaaass/ZerotierFix
https://www.zerotier.com/download/