ZeroTier 搭建 moon 服务器

前言

前文实现了 ZeroTier 内网穿透 。但是由于 ZeroTier 的官方 moon 中转服务器在国外,国内客户端可能出现使用延迟大,甚至出现访问不了的问题。可以自己搭建 moon 中转服务器,来实现稳定的服务。

注意:

  • 1.2.4 版本之后的 ZeroTier 才支持 moon 服务器。

moon 安装 ZeroTier 并加入虚拟网络

请参阅:ZeroTier 内网穿透

moon 服务器配置

  • 进入 ZeroTier 配置文件目录。

    复制cd /var/lib/zerotier-one
    
  • 生成 moon.json 签名文件。

    复制sudo -s
    zerotier-idtool initmoon identity.public >>moon.json
    
  • 编辑

    复制vim moon.json
    

    可以看到如下信息:

    moon.json
    复制  
      {
       "id": "0123456789",
       "objtype": "world",
       "roots": [
        {
         "identity": "xxxxxxxx:0:xxxxxxxx",
         "stableEndpoints": []
        }
       ],
       "signingKey": "xxxxxxxx",
       "signingKey_SECRET": "xxxxxxxx",
       "updatesMustBeSignedBy": "xxxxxxxx",
       "worldType": "moon"
      }
        

    注意:记录下 moon.json 文件中的 id 。

  • 修改信息。

    找到 "stableEndpoints": []

    添加 "IPv4地址/9993" 或者 "IPv4地址/9993","IPv6地址/9993"

    示例:

    复制"stableEndpoints": ["1.2.3.4/9993","2001:abcd:abcd::1/9993" ]
    
  • 生成 .moon 签名文件

    复制zerotier-idtool genmoon moon.json
    

    显示:

    复制wrote 0000006xxxxxxxxx.moon (signed world with timestamp 15xxxxxxxxxx7)
    
  • 创建 moon 结点文件夹。

    复制mkdir /var/lib/zerotier-one/moods.d
    
  • 将签名文件复制到 moods.d 文件夹中

    复制cp 0000006xxxxxxxxx.moon moons.d/
    
  • 重启 ZeroTier 服务

    复制/etc/init.d/zerotier-one restart
    

设备连入 moon 服务器

自动配置

  • 输入命令:

    复制sudo zerotier-cli orbit [moon.json 文件中的 id] [moon.json 文件中的 id]
    
  • Windows 有一点不同,需要使用管理员权限的 PowerShell 输入:

    复制zerotier-cli orbit [moon.json 文件中的 id] [moon.json 文件中的 id]
    

手动配置

各个系统平台下 ZeroTier 目录位置 :

复制 Windows: C:\ProgramData\ZeroTier\One
 Macintosh: /Library/Application Support/ZeroTier/One (在 Terminal 中应为 /Library/Application\ Support/ZeroTier/One)
 Linux: /var/lib/zerotier-one
 FreeBSD/OpenBSD: /var/db/zerotier-one
  • 在对应系统平台下的 ZeroTier 目录位置,创建 moods.d 文件夹。

    复制sudo mkdir /var/lib/zerotier-one/moods.d
    
  • 将 moon 服务器生成的 0000006xxxxxxxxx.moon 拷贝到 moods.d 文件夹下。

  • 重启 zerotier-one 服务。

    • Linux :/etc/init.d/zerotier-one restart
    • Windows :
      • 按下 windows键+r ,打开 “运行” 窗口。
      • 输入 services.msc 回车。
      • 找到 ZeroTier One 服务,右键选择 “重新启动” 。

检测生效

  • 在非 moon 的客户端,输入命令:

    复制zerotier-cli listpeers
    
  • Windows 有一点不同,需要使用管理员权限的 PowerShell 输入:

    复制zerotier-cli listpeers
    

如果出现如下情况:

  • moon 服务器的 ID 、IP 地址出现在列表中,证明联通 moon 服务器。
复制200 listpeers <ztaddr> <path> <latency> <version> <role>
...................
200 listpeers 6xxxxxxxxx [moon IPv4地址]/60723;11450;11405 -1 1.4.6 MOON
...................

作者:Yogile

出处:https://www.cnblogs.com/Yogile/p/12642423.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   Yogile  阅读(30749)  评论(9编辑  收藏  举报
编辑推荐:
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· DeepSeek “源神”启动!「GitHub 热点速览」
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
历史上的今天:
2019-04-06 实验一 《JAVA开发环境的熟悉》实验报告
点击右上角即可分享
微信分享提示
more_horiz
keyboard_arrow_up light_mode palette
选择主题