祁彧w博客

  • 🏠首页
  • 📔文章分类
    • 🖥️互联网技术
    • 🧮算法
    • 🤖人工智能
    • 📃论文学习
    • 📸生活分享
  • 💬关于
人生若只如初见
  1. 首页
  2. 互联网技术
  3. 正文

使用ZeroTier进行内网穿透异地组网并搭建moon中转服务器

2025-04-02 100点热度 1人点赞 0条评论

本文目录

  • 1 前言
  • 2 ZeroTier注册及网页使用
  • 3 ZeroTier服务安装
    • 3.1 Linux安装ZeroTier并连接至组网
    • 3.2 windows安装ZeroTier并连接至组网
    • 3.3 Android安装ZeroTier并连接至组网
    • 3.4 MacOS安装ZeroTier并连接至组网
    • 3.5 iOS安装ZeroTier并连接至组网
  • 4 ZeroTier搭建moon服务器

前言

内网穿透有多种方法,包括使用frp的中转以及zerotier的握手。
使用zerotier进行内网穿透相较于frp的中转,其安全性更高(可不使用域名或公网IP)同时当连接建立成功其连接速度也比frp的快(frp受限于中转服务器的上传下载),具体原理可参考B站视频:BV1ShqBYdEDC

ZeroTier注册及网页使用

zerotier.com

通过ZeroTier主页进行注册,目前(2025年4月2日)免费版能够创建3个虚拟组网,并且总共能够添加10个设备(3个组网一共10个设备,未授权设备不占用设备额度)。
按以下顺序依次进行,到最后一步可以通过右下角跳过默认初始化。

signin

之后主页将会显示一个网络组,分别显示了组网ID、组网名称、组网网段以及激活的节点数量。其中保存好组网ID,用于将设备连接到该组网中(注意不要公开,虽然加入组网后还需要手动激活,但是陌生设备还是可以加入到未激活列表)

zerotierpage

点进去之后分别有member、settings、flow roles以及administrators,主要操作区域在member和settings其余部分可以无视(非进阶)。
在member中会显示已加入该组网ID的所有设备信息,未有设备连接将会显示“No devices have joined this network.”
如果添加设备后,设备上显示已连接而管理页面依然显示未有设备连接,可以尝试等待一段时间,或者打开settings-Advanced-Manually Add Member部分手动将设备ID输入进去进行添加,手动添加后该设备的设备信息可能会显示Unknown等待一段时间即可。

zerotiermanager

当添加设备后,Auth部分会显示🚫符号,需要手动勾选然后选择Authorize进行授权,之后该设备加入该组网中。取消授权类似,删除设备则在edit中进行删除。

zerotierlist

ZeroTier服务安装

所有平台的ZeroTier可在官方下载页面中下载

Linux安装ZeroTier并连接至组网

zerotierlinux

If you are willing to rely on SSL to authenticate the site, a one line install can be done with:

curl -s https://install.zerotier.com | sudo bash

If you have GPG installed, a more secure option is available:

curl -s 'https://raw.githubusercontent.com/zerotier/ZeroTierOne/main/doc/contact%40zerotier.com.gpg' | gpg --import && \
if z=$(curl -s 'https://install.zerotier.com/' | gpg); then echo "$z" | sudo bash; fi

在Centos中直接输入官方提供代码,下载并安装完成后显示下面图片内容,被打码的部分为该设备的ID

zerotierlinuxcode

之后,使用在网页端ZeroTier创建的组网ID,在终端输入命令,并提示“200 join OK”,zerotier-cli已自动添加至环境可以直接使用。

sudo zerotier-cli join [虚拟网络地址ID]
zerotierlinux_join

之后在网页端ZeroTier管理平台授权新加入的设备,新加入设备部分信息可能为Unknown,等待一段时间Refresh即可。

zerotierlinux_devicejoin

开启授权后会自动分配虚拟内网IP地址,可以在Edit中更改,之后在终端输入“ifconfig”可以看到虚拟网卡信息。

zerotierlinux_devicenet

全部配置完成后,设备已经连接虚拟网络。

Linux相关Zerotier命令

# 启动 ZeroTier
sudo systemctl start zerotier-one.service

# 重启 ZeroTier
sudo systemctl restart zerotier-one.service

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

# 查看服务状态 显示ONLINE为正在运行
zerotier-cli status

# 加入网络
zerotier-cli join [虚拟网络地址ID]

# 离开网络
zerotier-cli leave [虚拟网络地址ID]

# 查看所有网络
zerotier-cli listnetworks

windows安装ZeroTier并连接至组网

zerotierwin

按要求下载对应版本的ZeroTier,按照提示进行安装。安装完成后,右键在后台的ZeroTier,显示内容如图,点击Join Network输入虚拟组网ID,在弹出的网络连接中点击“是”,然后勾选虚拟组网ID。

zerotierwin_deviceadd

再在网页端ZeroTier进行授权,windows端输入ipconfig可以看到虚拟网卡信息。

zerotierwin_devicenet

Android安装ZeroTier并连接至组网

我的是华为mate40pro使用了youtube里的方法(这个channel@gxs里的方法)安装了google全家桶,所以可以通过google play下载,如果下载时显示当前区域无法安装,可以尝试网页登陆play然后再在网页中选择登陆手机下载,我的就是通过网页下载到手机上的。

zerotiermobile_devicepage

打开软件后在右上角“ADD NETWORK”中添加组网,其中DNS设置默认即可,最后打开即可加入组网。

注意在网页端设置授权

MacOS安装ZeroTier并连接至组网

除了安装过程,其余与windows设置一致,安装过程与其余MacOS程序一致点“继续”就可以了

注意在网页端设置授权

iOS安装ZeroTier并连接至组网

没有iphone

ZeroTier搭建moon服务器

由于ZeroTier是先通过中转服务器来寻找另一个设备的,而该中转服务器位于海外所以部分场景下其速度较慢,所以可以通过在国内搭建一个云服务器作为中转服务器即moon服务器。该部分视频教程可以观看B站:BV1dr4y147aq,但是时间比较久部分文件格式已经发生变化,但流程基本一致。

  • moon服务器配置

将服务器配置为moon服务器前,需要先加入组网。

之后进入ZeroTier配置文件目录,centos在下面目录中,然后在该目录中生成moon.json文件。

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

通过vim编辑moon.json文件,其内容如下:

{
 "id": "[虚拟网络地址ID]",
 "objtype": "world",
 "roots": [
  {
   "identity": "XXX",
   "stableEndpoints": []
  }
 ],
 "signingKey": "XXX",
 "signingKey_SECRET": "XXX",
 "updatesMustBeSignedBy": "XXX",
 "worldType": "moon"
}

在stableEndpoints中,添加该服务器的公网IP并映射9993端口,可使用IPv4或IPv6(二选一或两个都用),注意ip与端口号之间是"/"不是":"

"stableEndpoints": ["IPv4/9993", "IPv6/9993"]

编辑保存后,生成moon签名文件,并提示图片中内容

zerotier-idtool genmoon moon.json
zerotier_moon1

再在当前配置目录中创建 moons.d文件目录,并将生成的签名文件复制进去,最后重启zerotier-one服务,并查看运行状态

mkdir ./moons.d
cp ./0000006xxxxxxxxx.moon ./moons.d/
sudo systemctl restart zerotier-one.service
zerotier-cli status
  • 设备连入moon服务器

其他设备需通过以下命令连入moon服务器,否则依然为其他leaf端,其中windows需要使用管理员权限的windows powershell

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

输入 zerotier-cli listpeers 查看组网中各终端状态

zerotier_moon1

其中:
LEAF - 用户加入组网的终端
PLANET - ZeroTier官方的根服务器
MOON - 用户自定义的公网级别的服务器,以更快更稳定的建立连接


感谢浏览,欢迎关注祁彧w博客!

标签: zerotier 内网穿透
最后更新:2025-04-03

祁彧w

这个人很懒,什么都没留下

点赞
< 上一篇

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

最新 热点 随机
最新 热点 随机
影视资源大全/Films & Television Resource Library - 持续更新... 使用ZeroTier进行内网穿透异地组网并搭建moon中转服务器 【每日一题】Leetcode 2595. 奇偶位数 【每日一题】Leetcode 624. 数组列表中的最大距离 【每日一题】Leetcode 2080. 区间内查询数字的频率 【每日一题】Leetcode 1287. 有序数组中出现次数超过25%的元素
影视资源大全/Films & Television Resource Library - 持续更新...
【每日一题】Leetcode 1299. 将每个元素替换为右侧最大元素 python数据分析与应用大作业-对用户用电量数据进行数据分析 TIFA: Accurate and Interpretable Text-to-Image Faithfulness Evaluation with Question Answering 【每日一题】Leetcode 2595. 奇偶位数 关于博客 使用python中Scikit-Learn(sklearn)模块处理鸢尾花(iris)相关数据
标签聚合
python 可解释性 电影 数据分析 二分查找 sklearn 电视剧 机器学习
最近评论
祁彧w 发布于 11 个月前(07月11日) 评论测试

COPYRIGHT © 2024 祁彧w. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang