从 ZeroTier 到 EasyTier:异地组网工具深度对比与部署指南
偃笙
编辑于 2026年04月02日 22:09

前言:一个 NAS 玩家的折腾之路

作为一名 NAS 玩家,我一直希望能随时随地访问家中的存储数据。在尝试了各种方案后,ZeroTier 曾是我的首选——开源、免费、无需公网 IP。然而,在实际使用中,我遇到了一个令人头疼的问题:NAT 穿透失败,流量被迫走海外中转节点,速度只有可怜的 0.4 MB/s

即使我自建了 Planet 服务器(一台国内云服务器)、配置了 IPv6、开启了 UPnP,两个设备之间始终显示 RELAY 而非 DIRECT。为什么自建了 Planet 还是 RELAY?因为 Planet 只负责告诉节点“对方在哪里”,它无法改变双方 NAT 类型的严格程度。当两台设备都在对称型 NAT(NAT3/NAT4)后面时,ZeroTier 的打洞算法依然会失败,流量被迫走 Planet 中转。你即使花了钱买云服务器自建 Planet,最终速度还是受限于这台服务器的带宽(例如 5 Mbps)。

在经历了一系列折腾后,我发现了 EasyTier——一款国产去中心化组网工具。同样的网络环境,EasyTier 成功建立了 P2P 直连,延迟仅 15-25ms,速度直接跑满宽带。

本文将详细对比主流组网工具,并手把手教你部署 EasyTier。

一、为什么要从 ZeroTier 转向 EasyTier?

1.1 ZeroTier 的核心痛点

打洞成功率低:ZeroTier 在 NAT3/NAT4(对称型 NAT)环境下打洞成功率仅有 40% 甚至更低。一旦打洞失败,流量就会走中转。自建 Planet 只能解决节点发现问题,无法解决 NAT 穿透本身——如果两端 NAT 类型严格,即使有自建 Planet,流量仍然会以 RELAY 方式经过你的 Planet 服务器,速度受限于服务器带宽。

官方节点延迟高:ZeroTier 的官方行星服务器位于海外,国内用户访问延迟高且不稳定。

1.2 EasyTier 的优势

  • 去中心化架构:EasyTier 采用完全去中心化的 P2P 架构,所有节点地位平等,无单点故障。

  • 高打洞成功率:在我的网络环境下(NAT3),EasyTier 成功建立了 P2P 直连,而 ZeroTier 始终是 RELAY。有用户实测反馈,EasyTier 的打洞稳定性强于 Tailscale 和 ZeroTier。

  • 零配置组网:无需注册账号,无需创建网络 ID,只需一个网络名称和密码即可组网。

  • 完全免费:无设备数量限制,无带宽限制。

  • 国内优化:官方提供国内公共节点,即使打洞失败,中转延迟也远低于海外节点。

二、主流组网工具横向对比

结论

  • 追求极简、免费、高打洞成功率EasyTier

  • 追求功能全面、生态成熟、手机端体验好Tailscale

  • 追求开源、可自建、高度自定义ZeroTier(但需接受其打洞能力限制)

  • 需要对外发布服务(网站/API)FRP

三、EasyTier 详细部署教程

本教程以群晖 NAS + 云服务器中继 + Windows 客户端为例,覆盖最常见的使用场景。

3.1 整体架构说明

EasyTier 有两种运行模式:

推荐自建中继模式:一台最低配云服务器(如腾讯云 1核1G)即可,成本极低,但体验提升巨大。

3.2 云服务器端部署(自建中继)

方法一:Docker 部署(推荐)

代码块
Shell
自动换行
复制代码
# 创建持久化数据目录
mkdir -p /opt/easytier-data

# 运行容器
docker run -d \
  --name easytier-relay \
  --restart unless-stopped \
  --network host \
  --cap-add NET_ADMIN \
  --cap-add NET_RAW \
  --device /dev/net/tun:/dev/net/tun \
  -e TZ=Asia/Shanghai \
  -v /opt/easytier-data:/root \
  easytier/easytier:latest \
  --network-name <你的网络名称> \
  --network-secret "<你的网络密码>" \
  --ipv4 10.77.0.1/24
复制成功

关键参数说明:

--network host:使用宿主机网络,NAT 穿透必需

--cap-add NET_ADMIN:允许管理网络接口

--device /dev/net/tun:挂载 TUN 设备

--ipv4 10.77.0.1/24:固定整个虚拟网络的网段

防火墙配置:记得在云服务器安全组中放行 TCP 11010 和 UDP 11010。

方法二:一键安装脚本

代码块
Shell
自动换行
复制代码
wget -O /tmp/easytier.sh "https://raw.githubusercontent.com/EasyTier/EasyTier/main/script/install.sh" && bash /tmp/easytier.sh install
复制成功

安装后编辑配置文件 /opt/easytier/config/default.conf,然后启动服务:

代码块
Shell
自动换行
复制代码
systemctl start easytier@default
复制成功

3.3 群晖 NAS 客户端部署

方法一:Docker Compose(推荐)

创建 docker-compose.yml:

代码块
YAML
自动换行
复制代码
services:
  easytier:
    image: easytier/easytier:latest
    container_name: easytier
    restart: unless-stopped
    network_mode: host
    privileged: true                    # 群晖 Docker 必须开启
    environment:
      - TZ=Asia/Shanghai
    volumes:
      - /volume1/docker/easytier:/root
    command: >
      --network-name <你的网络名称>
      --network-secret "<你的网络密码>"
      --peers tcp://<你的云服务器公网IP>:11010
      --ipv4 <群晖固定IP>/24
复制成功

群晖特别注意事项:

必须勾选“启用高级权限”(或 privileged: true),否则容器无法创建虚拟网卡

使用 network_mode: host 而非端口映射

方法二:群晖套件(如有)

部分第三方套件源已收录 EasyTier,可在套件中心搜索安装。安装后配置文件通常位于 /var/packages/easytier/var/config.toml。

3.4 Windows 客户端部署

下载 GUI 客户端:访问 GitHub Releases,下载 easytier-gui_x64-setup.exe

安装并打开

点击“添加网络”,填写参数:

网络名称:<你的网络名称>(与服务器一致)

网络密码:<你的网络密码>(与服务器一致)

中继服务器:tcp://<你的云服务器公网IP>:11010

虚拟 IPv4:手动分配,如 <Windows固定IP>/24

保存并启动

3.5 移动端部署

Android

官方 App:从 GitHub Releases 下载 app-universal-release.apk

第三方客户端:Terracotta(陶瓦联机),在酷安可找到,对游戏联机有专门优化

配置参数与 Windows 相同。

iOS

iOS 客户端使用EasyTier iOS ( iOS 16.0+ )

EasyTier 的 iOS 客户端,提供友好的界面以在 iOS 设备上连接 EasyTier 网络,并使用 Network Extension 框架实现系统级 VPN 集成。

3.6 配置文件详解(TOML 格式)

群晖套件或手动配置时,配置文件示例:

代码块
XML
自动换行
复制代码
instance_name = "<你的设备名>"   
dhcp = false                       # 关闭 DHCP,手动指定 IP
ipv4 = "<群晖固定IP>/24"          # 固定 IP(放在顶层,不是 [flags] 内!)
listeners = [
    "tcp://0.0.0.0:11010",
    "udp://0.0.0.0:11010",
]

[network_identity]
network_name = "<你的网络名称>"
network_secret = "<你的网络密码>"

[[peer]]
uri = "tcp://<你的云服务器公网IP>:11010"
复制成功

关键踩坑提醒:ipv4 必须放在配置文件的顶层(与 dhcp 同级),而不是放在 [flags] 段内!这是很多新手配置失败的原因。

四、验证与测试

4.1 查看节点状态

在云服务器上执行:

代码块
PlainText
自动换行
复制代码
docker exec easytier-relay easytier-cli peer
复制成功

4.2 速度测试

在 Windows 上使用 iperf3 测试:

cmd

代码块
PlainText
自动换行
复制代码
# 上传(电脑 → 群晖)
iperf3 -c <群晖固定IP>
# 下载(群晖 → 电脑)
iperf3 -c <群晖固定IP> -R
复制成功

如果看到 cost 为 p2p,速度应该能跑满你的家庭宽带上下行。

4.3 日常访问

文件管理器:\\<群晖固定IP>

群晖 DSM:http://<群晖固定IP>:5000

SSH:ssh user@<群晖固定IP>

五、常见问题与解决方案

Q1:容器启动失败,报错权限不足

原因:未开启特权模式。

解决:群晖 Docker 中勾选“启用高级权限”;Linux 中添加 --cap-add NET_ADMIN --device /dev/net/tun。

Q2:连接成功但 ping 不通,速度很慢

原因:P2P 打洞失败,流量走中转。

解决:

检查两端防火墙是否放行 UDP 11010

检查 NAT 类型(对称 NAT 打洞困难)

即使走中转,可通过 --enable-kcp-proxy 开启 KCP 加速

Q3:群晖手动指定 IP 不生效

原因:ipv4 放错了位置。

解决:将 ipv4 = "<群晖固定IP>/24" 放在配置文件的顶层(与 dhcp 同级),不是放在 [flags] 内。

Q4:如何关闭节点转发功能(防止小带宽节点被用作中转)?

代码块
PlainText
自动换行
复制代码
easytier-core --relay-network-whitelist --relay-all-peer-rpc
复制成功

该命令让节点只协助建立 P2P 连接,不转发数据流量。

六、总结与建议

场景推荐方案个人 NAS 玩家,追求简单稳定EasyTier + 自建中继(最低配云服务器)不想买服务器,纯免费组网EasyTier 公共节点模式企业/团队,需要 ACL 权限控制Tailscale 或 ZeroTier需要对外发布 Web 服务FRP

EasyTier 的核心理念是“去中心化”和“简单”。如果你厌倦了 ZeroTier 的打洞失败和 Tailscale 的海外节点延迟,EasyTier 绝对值得一试。

最后提醒:

部署时记得把 ipv4 放在顶层,不要在 [flags] 里——这是我折腾最久才发现的坑,希望你能避开。

如果你自建了 ZeroTier Planet 但仍然 RELAY,不要奇怪——Planet 解决不了对称 NAT 问题,换 EasyTier 试试。


项目地址:https://github.com/EasyTier/EasyTier

官方网站:https://easytier.rs