EasyTier 异地组网
用开源工具把分散在多地的设备组成一个虚拟局域网,零配置内网穿透,P2P 直连,延迟更低。
目录
1. 什么是 EasyTier
EasyTier 是一个用 Rust 和 Tokio 编写的轻量级、高性能的去中心化异地组网工具。它可以将分布在不同网络环境(家庭宽带、云服务器、4G/5G、公司网络)下的设备,通过互联网连接成一个虚拟局域网(SD-WAN),让设备之间像在同一内网一样直接通信。
核心特性
1 | mindmap |
与其他方案对比
| 方案 | P2P 直连 | 配置复杂度 | 开源 | 自建节点 | NAT穿透 |
|---|---|---|---|---|---|
| EasyTier | ✅ | 极低 | ✅ | 可选 | UDP+TCP双通道 |
| Tailscale | ✅ | 低 | 部分 | 可选(DERP) | UDP单通道 |
| ZeroTier | ✅ | 低 | 部分 | 可选 | UDP单通道 |
| OpenVPN | ❌ | 高 | ✅ | 必须 | 需公网IP |
| WireGuard | 点对点 | 中 | ✅ | 必须 | 需配置 |
| frp | ❌ | 中 | ✅ | 必须 | 需公网IP |
2. 核心原理
2.1 整体架构
1 | graph TB |
关键点:
- 所有设备被分配到同一个虚拟 IP 段(如
10.144.0.0/24) - 每台设备创建虚拟网卡(TUN),应用访问虚拟 IP 时流量由 EasyTier 接管
- 节点间优先 P2P 直连,失败时自动走中继
2.2 数据流转流程
1 | sequenceDiagram |
2.3 P2P 打洞流程(UDP Hole Punching)
1 | sequenceDiagram |
2.4 中继转发流程(打洞失败时)
1 | sequenceDiagram |
2.5 子网路由广播
1 | graph LR |
工作原理:
- 节点A启动时加
--networks 192.168.1.0/24,将该子网广播到虚拟网络 - 其他节点自动添加路由:
192.168.1.0/24 → 10.144.0.1 - 访问
192.168.1.10的流量 → 走虚拟网卡 → 到节点A → 转发到真实服务器
3. 典型应用场景
场景 1:远程办公访问公司内网
1 | graph LR |
效果:
- 在家直接通过
192.168.1.x访问公司所有内网服务 - 无需 VPN 客户端,无需修改应用配置
- P2P 直连,延迟低
场景 2:家庭 NAS / 媒体服务器远程访问
1 | graph TB |
效果:
- 不用公网 IP、不用 DDNS、不用端口映射
- 随时随地访问家里 NAS、监控
- 安全加密,不怕被扫描
场景 3:多地服务器互联
1 | graph TB |
效果:
- 跨云厂商内网互通
- 比公网访问更安全
- 比云互联(CEN/对等连接)更便宜
场景 4:游戏联机
1 | graph LR |
效果:
- 无需公网 IP、无需端口转发
- 朋友通过虚拟 IP 直连游戏服务器
- P2P 直连,延迟更低
4. 安装部署
4.1 安装方式总览
1 | graph TD |
4.2 Linux 安装
1 | # 方式一:一键安装脚本(推荐) |
4.3 Windows 安装
方式一:图形客户端(推荐)
- 前往 GitHub Releases
- 下载
easytier-gui_xxx_setup.exe - 安装运行,切换为中文
- 开启开机自启
方式二:命令行
1 | # 下载解压后运行 |
4.4 macOS 安装
1 | # Homebrew(推荐) |
4.5 OpenWrt 安装
参考项目:https://github.com/EasyTier/luci-app-easytier
4.6 移动端
- Android:GitHub Releases 下载 APK
- iOS:App Store 搜索 “EasyTier”
5. 实操:30 分钟搭好你的虚拟局域网
实验环境
1 | graph TB |
第一步:部署公共中继节点(云服务器)
有一台公网服务器作为中继,可以显著提升打洞成功率并作为后备通道。
1 | # 安装 |
参数说明:
| 参数 | 说明 |
|---|---|
--network-name |
网络名称,所有节点必须一致 |
--network-password |
网络密码,用于身份验证 |
--ipv4 |
该节点在虚拟网络中的 IP |
--listeners |
监听地址,供其他节点连入 |
第二步:创建 systemd 服务(持久化)
1 | sudo tee /etc/systemd/system/easytier.service > /dev/null <<'EOF' |
第三步:节点A(家庭Ubuntu)加入网络
1 | # 安装 |
第四步:节点C(Windows)加入网络
方式一:命令行
1 | easytier-core.exe --network-name my-vpn --network-password MySecurePass123 --ipv4 10.144.0.3 --peers tcp://<云服务器公网IP>:11010 |
方式二:图形界面
- 运行
easytier-gui.exe - 网络名称:
my-vpn - 密码:
MySecurePass123 - 中继节点:
tcp://<云服务器公网IP>:11010 - 点击连接
第五步:验证连通性
1 | # 在节点C(Windows)上测试 |
验证结果
1 | graph LR |
6. 进阶配置
6.1 使用配置文件(推荐)
/etc/easytier/config.toml:
1 | [network] |
启动:
1 | easytier-core --config-file /etc/easytier/config.toml |
6.2 多路径加速
1 | graph LR |
1 | easytier-core \ |
6.3 部署拓扑选择
1 | graph TB |
6.4 安全加固
1 | # 1. 生成强密码 |
6.5 限速与 QoS
1 | easytier-core \ |
7. 生产环境最佳实践
7.1 高可用部署
1 | graph TB |
1 | # 客户端同时连接多个中继 |
7.2 监控体系
1 | graph LR |
1 | # 查看节点状态 |
7.3 日志收集
1 | # 调试模式 |
8. 常见问题排查
排查流程图
1 | flowchart TD |
常见问题速查表
| 问题 | 可能原因 | 解决方案 |
|---|---|---|
| 节点无法连通 | 服务未启动 | systemctl start easytier |
| 虚拟网卡不存在 | TUN设备缺失 | 检查 /dev/net/tun,Docker需 --cap-add=NET_ADMIN |
| 无法访问子网 | IP转发未开启 | echo 1 > /proc/sys/net/ipv4/ip_forward |
| P2P打洞失败 | 对称型NAT | 使用自建中继节点 |
| 速度很慢 | 走中继模式 | 检查连接类型,尝试多路径 |
| 子网代理不生效 | 防火墙阻止 | iptables -A FORWARD -i tun+ -j ACCEPT |
调试命令
1 | # 1. 检查服务状态 |
个人环境
公网服务器
1 | [root@hmk ~ ]# cat /etc/systemd/system/easytier.service |
内网家里
1 | root@test:/etc/easytier# cat docker-compose.yaml |

附录:常用命令速查
1 | # 启动节点 |
📝 小结:EasyTier 的核心价值在于去中心化 + P2P 直连 + 开源免费。
对于个人和小团队,一台云服务器做中继 + 各设备安装客户端,即可在 30 分钟内搭好跨地域虚拟局域网。
它比传统 VPN 更简单,比 frp 等内网穿透工具更高效(P2P 直连),比 ZeroTier/Tailscale 更适合国内网络(UDP+TCP双通道,对称NAT突破率98%)。