使用 Frp 搭建 Zeroiter Moon

简介

Zerotier 是一个专用于异地组网的工具,它方便将多台异地机器以 P2P 或者 中转 Relay 的方式实现宛如局域网般的流畅体验。

Zerotier 组网中节点分为三个部分,分别是位于国外的中央服务器 Planet,用户自建节点 Moon,以及用户其他节点 Leaf。

由于 Planet 位于国外,当两台机器地理位置相隔甚远时,无论是 UDP 打洞还是 Relay 中继,速度都非常慢,因此尝试自建一台国内 Zerotier Moon 来提高打洞概率 + 中继速度。

网上搭建 Zerotier Moon 的教程都需要购买一台服务器,但我不想这么折腾,因此使用 Frp 内网穿透的搭建方式。

Frp 穿透

使用 Frp 内网穿透 9993 端口

Frp

  • 本地 IP一定要指定为局域网 IP(即 192.168.0.0/16 等),而非回环 IP(即 127.0.0.1),否则不会被 Zerotier 服务监听。
  • 端口类型选择UDP
  • 内网端口填写9993(需修改过 moon 端口号则按实际填写)
  • 外网端口可随机,此处仅作为演示
  • 节点建议选择距离相近的多线机房(在任何运营商网络下都能有比较高的 p2p 打洞成功概率)

搭建 Zerotier Moon

  1. 创建基础 moon.json 文件

    1
    2
    3
    4
    5
    # 切换工作目录(以实际目录为准)
    cd /var/lib/zerotier-one

    # 创建基础 moon 文件
    zerotier-idtool initmoon identity.public > moon.json
  2. 修改 moon.json 信息

    moon.json 中的 stableEndpoints 字段填写 Frpc 分配的公网 IP 和端口

    1
    "stableEndpoints": ["xxx.xxx.xxx.xxx/port"]

    提示:IP 地址与端口号通过/分隔,而不是:

  3. 生成 moon 签名

    1
    2
    3
    4
    5
    6
    7
    8
    9
    # 切换工作目录(以实际目录为准)
    cd /var/lib/zerotier-one

    # 将 moon.json 文件签名,生成 moon 文件
    zerotier-idtool genmoon moon.json

    # 将签名后的 moon 文件移动至 moons.d 文件夹
    mkdir moons.d
    mv *.moon moons.d
  4. 重启 Zerotier 服务

    1
    sudo service zerotier-one restart

加入 Zerotier Moon

  1. 查看moon.json中的ID字段:"id": "9d2cxxxxxx"(此处仅作演示,以实际数据为准)
  2. 执行命令:zerotier-cli orbit 9d2cxxxxxx 9d2cxxxxxx

验证

通过执行zerotier-cli peers可查看当前加入的 moon 服务器已正常工作。

zerotier 节点


使用 Frp 搭建 Zeroiter Moon
http://example.com/2025/08/23/使用Frp搭建Zeroiter-Moon/
作者
Fir
发布于
2025年8月23日
许可协议