收起左侧

ZeroTier+Moon给你的NAS提提速

0
回复
632
查看
[ 复制链接 ]

4

主题

8

回帖

0

牛值

江湖小虾

2025-8-1 16:36:44 显示全部楼层 阅读模式

前言

为什么要折腾?
出门旅游/出差,临时想用公司 NAS 里的 200 G 素材,结果 QuickConnect 只有 30 KB/s?
ZeroTier 可以给你的 NAS 发一张“虚拟机票”,让它和任何地方的电脑/手机处在同一网段,实测跑满 2 MB/s 以上,关键还免费(≤25 台设备)。

ZeroTier 是一个开源、可编程的虚拟网络虚拟化平台,通过创建虚拟网络覆盖层,使不同网络的设备(如电脑、NAS、物联网设备等)能够像在同一个局域网内一样互相访问 。它使用点对点技术(P2P VPN)和 NAT 穿透(如 STUN 和隧道)技术,支持端到端加密,并提供跨平台客户端(如 Windows、Linux、macOS 等),无需公网 IP 即可实现设备互联。
核心架构包括虚拟网络控制器(PLANET,官方根服务器)、中继服务器(MOON,用户可自建以优化性能)和客户端设备(LEAF)。典型应用场景包括多云连接(如连接 AWS、Azure 等云资源)、远程访问企业内网、物联网设备管理、游戏联机(低延迟直连)以及安全开发环境(远程协作)。
ZeroTier 的使用简单,只需在设备上安装 ZeroTier One 客户端,通过 Network ID 加入同一虚拟网络即可,支持自定义网络网段和 IP 分配。此外,用户可自建 Planet 或 Moon 服务器,以获得更好的性能和数据控制权(避免官方服务的限制,如免费版设备数量限制)。
总之,ZeroTier 是一个强大的异地组网工具,适合需要安全、高效、跨地域设备互联的场景 。

Zerotier 部署安装

1、Network ID注册

第一步:在浏览器地址栏输入:https://my.zerotier.com

image.png

第二步:点击 LOG IN / SIGN UP注册账号 并登录。 我这里已经注册过了就不在注册了,可以直接使用QQ邮箱📮注册

image.png

第三步:点击创建一个自己的网卡 Network ID,切记Network ID 不要泄露否则别人就可以轻易访问到你的虚拟网络。

image.png

2、登录飞牛私有云-安装1Panel

安装1Panel 后可以通过ssh直接连接NAS。

image.png

image.png

3、安装Zerotie

第一步:切换至root账号

sudo -i

image.png

第二步:使用命令安装 ZeroTier 并设置开机自启

# 1. 一键安装(官方脚本,自动识别发行版)
curl -s https://install.zerotier.com | sudo bash

# 2. 立即启动
sudo systemctl start zerotier-one.service

# 3. 设置开机自启
sudo systemctl enable zerotier-one.service

第三步:把设备加入你的虚拟网络(把 换成你在官网生成的 16 位字符串)

image.png

sudo zerotier-cli join <NetworkID>

返回 200 join OK 即成功

第四步:登录 ZeroTier Central(https://my.zerotier.com ) 把新设备打勾授权即可

image.png

image.png

自建 Moon 中转服务器

我们已经在 NAS 上部署了 ZeroTier,接下来如果想进一步优化连接稳定性和降低延迟,可以自建一个 ZeroTier Moon 中转服务器(因为官方的 Moon 服务器在国外,国内访问延迟较高,甚至不稳定)

1. 准备一台云服务器(VPS)

  • 推荐系统:CentOS 7 / Ubuntu 20+
  • 开放 UDP 9993 端口(防火墙/安全组)

2. 安装 ZeroTier

curl -s https://install.zerotier.com | sudo bash
sudo systemctl enable zerotier-one
sudo systemctl start zerotier-one

3. 生成 Moon 配置

cd /var/lib/zerotier-one
sudo zerotier-idtool initmoon identity.public > moon.json

4. 编辑 moon.json

找到字段 "stableEndpoints": [],添加你的服务器公网 IP:

"stableEndpoints": [ "你的公网IP/9993" ]

5. 生成签名文件

sudo zerotier-idtool genmoon moon.json

会生成类似 000000xxxxxx.moon 的文件。

6. 配置 Moon 节点

sudo mkdir moons.d
sudo mv 000000xxxxxx.moon moons.d/
sudo systemctl restart zerotier-one

7. 在 NAS 上加入你的 Moon

SSH 登录 NAS,执行:

sudo zerotier-cli orbit <Moon ID> <Moon ID>

例如:

sudo zerotier-cli orbit 1234567890 1234567890

如果 NAS 是通过 Docker 部署的 ZeroTier,可以进入容器执行:

docker exec -it zerotier zerotier-cli orbit <Moon ID> <Moon ID>

8. 验证是否成功

zerotier-cli listpeers

输出中如果看到 MOON 字样,说明已成功连接你的中转服务器。


✅ 总结

自建 Moon 后,NAS 与其他客户端之间的连接将通过你部署的中转服务器进行,延迟会显著降低,稳定性也会提升,尤其适合国内网络环境。

如果你已经在 NAS 上跑的是 Docker 版本的 ZeroTier,记得把 .moon 文件挂载进容器的 /var/lib/zerotier-one/moons.d/ 路径,并重启容器即可。

使用Moon(安卓、windows)

要让 安卓手机 和 Windows 电脑 加入你自建的 ZeroTier Moon 中转服务器,有两种方式:


✅ 方法一:使用 .moon 文件手动加入(推荐)

📱安卓手机

安卓原生 ZeroTier App 不支持直接加入 Moon,你需要使用第三方版本:

  • 安装 ZeroTier-Fix(GitHub 上有,搜索即可)
  • 打开 App → 设置 → 勾选「启用自定义 Moon」
  • 将你服务器上生成的 .moon 文件(如 000000xxxxxx.moon)复制到手机:
    • 路径:/sdcard/ZeroTier/moons.d/
    • 没有就新建 moons.d 文件夹
  • 重启 ZeroTier-Fix App,重新加入你的网络即可

🖥️Windows 电脑

  1. 将你服务器上生成的 .moon 文件下载到本地

  2. 复制到:

    C:\ProgramData\ZeroTier\One\moons.d\
    

    (如果没有 moons.d 文件夹,就新建一个)

  3. 重启 ZeroTier 服务:

    • 方法1:任务管理器 → 服务 → 找到 ZeroTierOneService → 右键重启
    • 方法2:以管理员身份运行 PowerShell,执行:
      net stop ZeroTierOneService
      net start ZeroTierOneService
      
  4. 验证是否成功:

    zerotier-cli listpeers
    

    如果看到 MOON 和你的服务器 IP,说明已连接成功


✅ 方法二:使用命令行加入 Moon(仅限 Windows)

如果你不想手动复制 .moon 文件,可以直接用命令加入:

  1. 打开 管理员权限的 PowerShell

  2. 执行:

    zerotier-cli orbit <Moon ID> <Moon ID>
    

    示例:

    zerotier-cli orbit 1234567890 1234567890
    
  3. 同样执行 zerotier-cli listpeers 验证是否连接成功


✅ 总结

设备类型 推荐方式 是否需第三方工具
安卓手机 ZeroTier-Fix +.moon 文件 ✅ 是
Windows 电脑 .moon 文件或命令行 ❌ 否(官方支持)

如你不确定 .moon 文件在哪,去你 VPS 的 /var/lib/zerotier-one/moons.d/ 目录下找即可。

结语

是否需要给 ZeroTier 做“路由转发”

是否需要给 ZeroTier 做“路由转发”取决于你打算怎么用:下面介绍三种场景

场景 是否必须开转发 需要做的额外工作
只是让装了 ZeroTier 的 A、B、C 三台机器互相访问 ❌ 不需要 什么都不用做,官方帮你打通
想让 ZeroTier 外的设备(家里其他电脑、NAS、摄像头)也被远端的 ZeroTier 成员访问 ✅ 需要 1. 在局域网里选一台 7×24 小时开机的 Linux/OpenWrt/群晖等当“网关”
2. 在网关里启用 IP 转发:sysctl -w net.ipv4.ip_forward=1
3. 在网关里加防火墙 NAT:iptables -t nat -A POSTROUTING -o ztXXXXX -j MASQUERADE
4. 在 ZeroTier 控制台 → Managed Routes 里加一条 “192.168.x.0/24 via <网关的 ZeroTier IP>”
想让 ZeroTier 成员通过这台网关访问互联网(全局流量转发) ✅ 需要 同上,但把路由改成 0.0.0.0/0,并在客户端勾选 “Allow Default Route”

一句话总结
“仅点对点互通”→ 不必折腾路由;
“把整段子网拉进 ZeroTier”→ 必须做路由转发 + NAT。

很明显我是第一种,这里就不再赘述怎么做“路由转发”,有需要的同学可以百度一下。

收藏
送赞
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则