Zerotier-Moon搭建
集合两位大佬的智慧,终于成功
教程1:https://www.bilibili.com/video/BV1RA411x7CL/?spm_id_from=333.337.search-card.all.click&vd_source=15b4bc8968fa5203cc470cb68ff72c96
教程2:https://www.bilibili.com/video/BV1dr4y147aq/?spm_id_from=333.999.0.0&vd_source=15b4bc8968fa5203cc470cb68ff72c96
大佬1:
基于Zerotier根服务器的内网穿透部署
创建(伪)根服务器 | 项目地址:
docker run --restart=on-failure:3 -d --name ztncui -e HTTP_PORT=4000 -e HTTP_ALL_INTERFACES=yes -e ZTNCUI_PASSWD=mrdoc.fun -p 4000:4000 keynetworks/ztncui
创建 moon 服务器 | 项目地址:
#创建容器
docker run --name zerotier-moon -d -p 9993:9993 -p 9993:9993/udp -v /etc/ztconf/:/var/lib/zerotier-one jonnyan404/zerotier-moon -4 [公网ipx.x.x.x]
#查看moon ID
docker logs zerotier-moon
群晖 DSM 7.x 安装Zerotier客户端
登录SSH并创建虚拟网络设备TUN
#获取权限
sudo -i
#创建“创建虚拟网络设备TUN”的脚本,并设为开机自动运行
echo -e '#!/bin/sh -e \ninsmod /lib/modules/tun.ko' > /usr/local/etc/rc.d/tun.sh
#给予脚本运行权限
chmod a+x /usr/local/etc/rc.d/tun.sh
#运行脚本创建TUN
/usr/local/etc/rc.d/tun.sh
#确认TUN是否创建成功
ls /dev/net/tun
创建存放配置文件的目录
mkdir /var/lib/zerotier-one
创建Zerotier应用容器:
docker run -d \
--name zt \
--restart=always \
--device=/dev/net/tun \
--net=host \
--cap-add=NET_ADMIN \
--cap-add=SYS_ADMIN \
-v /var/lib/zerotier-one:/var/lib/zerotier-one zerotier/zerotier-synology:latest
常用命令:
#查看zerotier状态
docker exec -it zt zerotier-cli status
#加入网络
docker exec -it zt zerotier-cli join [xxxxxxxxxxxx]
#加入moon服务器
docker exec zt zerotier-cli orbit [moon_ID] [moon_ID]
#确认是否加入
docker exec zt zerotier-cli listpeers
Windows 客户端加入moon服务器
cd C:\ProgramData\ZeroTier\One
zerotier-cli orbit [moon_id] [moon_id]
大佬2:
简单搭建 Zerotier Moon 为虚拟网络加速
Zerotier 是一款开源工具,可以用来构建点对点(P2P)虚拟网络。比如你的女友不让你去网吧玩游戏,这时候你就可以建立一个 Zerotier 点对点虚拟网络,把你和朋友的家的电脑都加入到这个虚拟网络中,然后你们就可以像在网吧里一样联机玩耍了。
Zerotier 的基本用法可以参考
,这里我们要分享的是如何自己搭建 Zerotier Moon,加速 Zerotier-One 的连接,让虚拟网络更稳定的运行。Zerotier Moon 搭建步骤
这里我使用的是
的云服务器,基本配置信息如下。--平台机房美国新泽西CPU1 vCore内存512 MB系统Ubuntu 20.04 x64流量500GB
新用户使用右侧推广链接注册可以 👉
第一步 在云服务器上安装 zerotier-one
方法一 更简单
$ curl -s https://install.zerotier.com | sudo bash
方法二 更安全
要求系统中安装了 GPG
$ curl -s 'https://raw.githubusercontent.com/zerotier/ZeroTierOne/master/doc/contact%40zerotier.com.gpg' | gpg --import && \
if z=$(curl -s 'https://install.zerotier.com/' | gpg); then echo "$z" | sudo bash; fi
第二步 云服务器加入虚拟网络
执行命令,将云服务器加入到自己创建好的虚拟网络,将命令中的 xxxxxxxx
替换成实际的虚拟网络 ID。
$ sudo zerotier-cli join xxxxxxxx
第三步 配置 Moon
进入 zerotier-one 程序所在的目录,默认为 /var/lib/zerotier-one
。
$ cd /var/lib/zerotier-one
生成 moon.json 配置文件
$ sudo zerotier-idtool initmoon identity.public >> moon.json
编辑 moon.json 配置文件
$ sudo nano moon.json
将配置文件中的 "stableEndpoints": []
修改成 "stableEndpoints": ["ServerIP/9993"]
,将 ServerIP
替换成云服务器的公网IP。
生成 .moon 文件
$ sudo zerotier-idtool genmoon moon.json
将生成的 000000xxxxxxxxxx.moon 移动到 moons.d
目录
$ sudo mkdir moons.d
$ sudo mv 000000xxxxxxxxxx.moon moons.d
.moon 配置文件的名一般为
10个前导零
+本机的节点ID
重启 zerotier-one 服务
$ sudo systemctl restart zerotier-one
使用 Moon
普通的 Zerotier 成员使用 Moon 有两种方法,第一种方法是使用 zerotier-cli orbit
命令直接添加 Moon 节点ID;第二种方法是在 zerotier-one 程序的根目录创建moons.d
文件夹,将 xxx.moon
复制到该文件夹中,我们采用第一种方法:
Linux 系统下使用 Moon
将命令中的两组 xxxxxxxxxx
都替换成 moon 的节点ID。
$ sudo zerotier-cli orbit xxxxxxxxxx xxxxxxxxxx
检查是否添加成功
$ sudo zerotier-cli listpeers
Windows 系统下使用 Moon
以管理员身份打开 PowerShell,将命令中的两组 xxxxxxxxxx
都替换成 moon 的节点ID。
PS C:\Windows\system32> zerotier-cli.bat orbit xxxxxxxxxx xxxxxxxxxx
检查是否添加成功
PS C:\Windows\system32> zerotier-cli.bat listpeers
提示:Windows 系统的默认程序目录位于
C:\Program Files (x86)\ZeroTier\One
。
常见问题一:电脑添加了虚拟网络,但Zerotier管理列表中始终没有显示这台设备。
答:可以尝试在Zerotier管理界面中 Advanced -> Manually Add Member