ZeroTier 搭建教程

  • A+
所属分类:VPN
摘要

`ZeroTier` 是一款强大的 P2P VPN 工具,它能让你在互联网上搭建属于自己的虚拟局域网。通过它,你可以轻松实现远程访问家中设备的需求 - 比如在公司用手机直接访问家里的 NAS。最重要的是,设备之间是点对点直连的,无需经过中转服务器,既保证了速度,又提升了安全性。

一、ZeroTier 介绍

ZeroTier 是一款强大的 P2P VPN 工具,它能让你在互联网上搭建属于自己的虚拟局域网。通过它,你可以轻松实现远程访问家中设备的需求 - 比如在公司用手机直接访问家里的 NAS。最重要的是,设备之间是点对点直连的,无需经过中转服务器,既保证了速度,又提升了安全性。

1.1 工作原理

通过 ZeroTier One 客户端,在不同设备(如笔记本、手机、服务器等)之间建立 P2P 连接,即使这些设备都在 NAT 后面也没问题。它使用了 STUN 等技术,可以穿透大多数类型的 NAT,实现设备间的直接通信。如果实在无法直连,才会通过中转服务器进行通信。

简单来说,ZeroTier 就像是一个跨越互联网的"虚拟交换机",让分布在世界各地的设备,都能像在同一个局域网内一样方便地相互访问。

ZeroTier 搭建教程

1.2 ZeroTier 网络中的关键概念

概念 说明
PLANET(行星服务器) ZeroTier 网络的核心根服务器,负责网络发现和初始连接。相当于整个网络的"中枢"
MOON(卫星服务器) 用户可以自建的私有根服务器。它可以作为区域性的代理节点,帮助就近的设备更快地建立连接,提升网络性能
LEAF(叶子节点) 所有接入 ZeroTier 网络的终端设备,如电脑、手机、服务器等。这些设备通过 PLANET 和 MOON 的协调来相互发现和通信

本教程将指导您搭建一个私有的 PLANET 服务器,让您完全掌控自己的 ZeroTier 网络。

二、搭建ZeroTier Planet 服务器

2.1 项目地址

一键部署 ZeroTier Planet 服务器,支持 Docker 容器化部署

2.2 自建 PLANET 服务器优势

🚀 性能优势
提升网络稳定性:官方服务器位于海外,国内用户访问延迟高且不稳定。自建服务器可以大幅提升连接质量
加快连接速度:本地化的 PLANET 服务器可以更快地帮助设备建立 P2P 连接

🔒 安全优势
增强网络控制:自建服务器让您完全掌控网络配置,可以根据需求进行优化调整
提高安全性:私有化部署意味着网络流量不经过第三方服务器,更加安全可靠

💪 可靠性优势
降低依赖:避免因官方服务器故障或网络波动影响您的业务正常运行

2.3 搭建PLANET

在云服务器克隆项目地址:

运行部署脚本

ZeroTier 搭建教程

安装成功界面:
ZeroTier 搭建教程

ZeroTier 搭建教程
注意:需要在防火墙放行默认端口9994和3000端口。

2.4 下载 planet 文件

1、目录下载
脚本运行完成后,会在 ./data/zerotier/dist 目录下生成 planet 和 moon 配置文件。
ZeroTier 搭建教程

2、通过url进行下载。

三、使用教程

3.1 新建网络

访问 http://ip:3443 进入 controller 页面
默认登录信息:
用户名:admin
密码:password
ZeroTier 搭建教程

创建网络

  • 登录后点击 "Networks" 菜单
  • 点击 "Add Network" 按钮创建新网络
  • 输入一个便于识别的网络名称,其他选项可保持默认
  • 点击 "Create Network" 按钮完成创建

ZeroTier 搭建教程
创建成功后系统会自动生成一个网络 ID,这个 ID 在后续客户端配置时会用到,请记录下来。
ZeroTier 搭建教程

3.2 分配网络 IP

选中 "Easy Setup" assign_id
ZeroTier 搭建教程

3.3 生成 IP 范围

ZeroTier 搭建教程

四、客户端加入组网

ZeroTier 支持多种主流操作系统的客户端,包括:

  • Windows
  • macOS
  • Linux
  • Android

4.1 Windows 配置

步骤 1:下载客户端

首先去 ZeroTier 官网下载一个 ZeroTier 客户端

步骤 2:替换 planet 文件

planet 文件覆盖粘贴到 C:\ProgramData\ZeroTier\One 中(这个目录是个隐藏目录,需要允许查看隐藏目录才行)

步骤 3:重启服务

  1. Win + S 搜索 "服务"
    ZeroTier 搭建教程

  2. 找到 ZeroTier One,并且重启服务
    ZeroTier 搭建教程

步骤 4:加入网络

使用管理员身份打开 PowerShell,执行如下命令:

注意:网络 ID 就是在网页里面创建的那个网络 ID

步骤 5:授权设备

登录管理后台可以看到有个新的客户端,勾选 Authorized 即可

ZeroTier 搭建教程

IP assignment 里面会出现 ZeroTier 的内网 IP

ZeroTier 搭建教程

步骤 6:验证连接

执行如下命令验证连接状态:

可以看到有一个 PLANETLEAF 角色,连接方式均为 DIRECT(直连)

到这里就加入网络成功了!

4.2 Linux 客户端

4.2.1 安装ZeroTier

首先,使用 curl 下载并运行 ZeroTier 的安装脚本:

安装完成后,启动 ZeroTier-One 服务:

设置开机自启动:

检查服务状态,确认是否正常运行:

4.2.2 替换PLANET

进入目录 /var/lib/zerotier-one

替换目录下的 planet 文件

重启 zerotier-one 服务:service zerotier-one restart

加入网络:zerotier-cli join 网络id

管理后台同意加入请求

执行 zerotier-cli peers 可以看到 PLANET 角色

4.2.2 离开网络

4.3 安卓客户端配置

推荐使用 Zerotier 非官方安卓客户端

3.4 MacOS 客户端配置

配置步骤:

  1. 进入 /Library/Application\ Support/ZeroTier/One/ 目录,并替换目录下的 planet 文件
  2. 重启 ZeroTier-One:cat /Library/Application\ Support/ZeroTier/One/zerotier-one.pid | sudo xargs kill
  3. 加入网络:zerotier-cli join 网络id
  4. 管理后台同意加入请求
  5. 执行 zerotier-cli peers 可以看到 PLANET 角色

4.5 OpenWRT 客户端配置

配置步骤:

  1. 安装 ZeroTier 客户端
  2. 进入目录 /etc/config/zero/planet
  3. 替换目录下的 planet 文件
  4. 在 OpenWRT 网页后台先关闭 ZeroTier 服务,再开启 ZeroTier 服务
  5. 在 OpenWRT 网页后台加入网络
  6. 管理后台同意加入请求
  7. 执行 ln -s /etc/config/zero /var/lib/zerotier-one
  8. 执行 zerotier-cli peers 可以看到 PLANET 角色

4.6 iOS 客户端配置

方案一:越狱方案
越狱后安装 ZeroTier,然后替换 planet 文件

方案二:WireGuard 方案
使用 WireGuard 接入到 ZeroTier 网络

4.7 群晖 DSM 7.x 安装Zerotier客户端

4.7.1 登录SSH并创建虚拟网络设备TUN

4.7.2 创建存放配置文件的目录

4.7.3 创建Zerotier应用容器:

ZeroTier 搭建教程

4.7.4 替换planet 文件

ZeroTier 搭建教程

4.7.4 加入网络

4.8 飞牛安装ZeroTier

4.8.1 docker安装

4.8.2 替换planet 文件

替换后重启docker

ZeroTier 搭建教程

4.8.3 加入网络

查看zerotier状态

ZeroTier 搭建教程

加入网络

查看 是否加入planet

ZeroTier 搭建教程

查看加入的网络

ZeroTier 搭建教程

五、搭建内网跳板

一台内网linux环境加入了zerotier ,分配的地址为10.100.57.175 ,内网地址为192.168.1.108,通过配置流量转发,使加入zerotier的客户端可以访问到192.168.1.0/24网段。

5.1 开启 Linux 的 IP 转发功能

Linux 需要开启 IP 转发才能在 ZeroTier 虚拟网卡和物理内网网卡之间转发数据包。

添加以下配置:

验证转发是否开启:

ZeroTier 搭建教程

5.2 在 ZeroTier 控制台配置路由

需要告诉 ZeroTier 网络:"192.168.1.0/24 网段可以通过 10.100.57.175 这个节点访问"。
登录 ZeroTier 管理控制台:https://my.zerotier.com
进入 ZeroTier 网络(点击对应的网络 ID)
ZeroTier 搭建教程

切换到 "Routes" 标签页
添加一条路由规则:
ZeroTier 搭建教程

5.3 配置 iptables 防火墙规则

确认网卡名称:

ZeroTier 虚拟网卡:通常以zt开头(如ztabc1234),可通过ip addr查看
内网物理网卡:连接 192.168.1.0/24 网段的网卡(如eth0、ens33等)

我的配置如下:

ZeroTier 网卡为 zt5wf55mbp
内网网卡为 ens18

配置项 实际值 说明
ZeroTier 虚拟网卡名 zt5wf55mbp ip addr结果中获取
Linux 的 ZeroTier 地址 10.100.57.175/24 ZeroTier 分配的虚拟 IP
目标内网网段 192.168.1.0/24 需要被访问的内网
内网物理网卡名 ens18 连接192.168.1.0/24的真实网卡

5.4 配置转发

1、基础转发规则

需允许zt5wf55mbp(ZeroTier 网卡)与内网物理网卡之间的数据包转发,同时允许回应包通过(否则只能单向通信)。

2、允许特定端口访问(如内网服务)

如果需要 ZeroTier 客户端访问内网的特定服务(如 HTTP/80、SSH/22),可添加端口规则(示例):

3、保存 iptables 规则(防止重启失效)

  • Debian/Ubuntu 系统

  • CentOS/RHEL 系统

5.5 路由器添加静态路由

ZeroTier 搭建教程

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin
大雁

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: