作为一名 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 在 NAT3/NAT4(对称型 NAT)环境下打洞成功率仅有 40% 甚至更低。一旦打洞失败,流量就会走中转。自建 Planet 只能解决节点发现问题,无法解决 NAT 穿透本身——如果两端 NAT 类型严格,即使有自建 Planet,流量仍然会以 RELAY 方式经过你的 Planet 服务器,速度受限于服务器带宽。
官方节点延迟高:ZeroTier 的官方行星服务器位于海外,国内用户访问延迟高且不稳定。
去中心化架构:EasyTier 采用完全去中心化的 P2P 架构,所有节点地位平等,无单点故障。
高打洞成功率:在我的网络环境下(NAT3),EasyTier 成功建立了 P2P 直连,而 ZeroTier 始终是 RELAY。有用户实测反馈,EasyTier 的打洞稳定性强于 Tailscale 和 ZeroTier。
零配置组网:无需注册账号,无需创建网络 ID,只需一个网络名称和密码即可组网。
完全免费:无设备数量限制,无带宽限制。
国内优化:官方提供国内公共节点,即使打洞失败,中转延迟也远低于海外节点。

结论:
追求极简、免费、高打洞成功率 → EasyTier
追求功能全面、生态成熟、手机端体验好 → Tailscale
追求开源、可自建、高度自定义 → ZeroTier(但需接受其打洞能力限制)
需要对外发布服务(网站/API) → FRP
本教程以群晖 NAS + 云服务器中继 + Windows 客户端为例,覆盖最常见的使用场景。
EasyTier 有两种运行模式:

推荐自建中继模式:一台最低配云服务器(如腾讯云 1核1G)即可,成本极低,但体验提升巨大。
方法一:Docker 部署(推荐)
# 创建持久化数据目录
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。
方法二:一键安装脚本
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,然后启动服务:
systemctl start easytier@default 3.3 群晖 NAS 客户端部署
方法一:Docker Compose(推荐)
创建 docker-compose.yml:
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 格式)
群晖套件或手动配置时,配置文件示例:
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 查看节点状态
在云服务器上执行:
docker exec easytier-relay easytier-cli peer 4.2 速度测试
在 Windows 上使用 iperf3 测试:
cmd
# 上传(电脑 → 群晖)
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:如何关闭节点转发功能(防止小带宽节点被用作中转)?
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