EasyTier 客户端(组网管理)
EasyTier 是一款基于 Rust 编写的去中心化虚拟局域网工具,NetPanel 集成了 EasyTier 客户端,支持将多台不同地点的设备组成一个虚拟局域网,实现异地组网、远程访问、跨地域内网互通。
技术原理
VPN 与虚拟网卡(TUN/TAP)
EasyTier 通过在操作系统中创建 TUN 虚拟网卡来实现组网:
应用程序
↓ 发送数据包(目标:虚拟 IP 10.144.144.2)
TUN 虚拟网卡(内核层)
↓ 捕获数据包
EasyTier 进程(用户层)
↓ 加密 + 封装
物理网卡(实际网络)
↓ 发送到对端
对端 EasyTier 进程
↓ 解密 + 解封装
对端 TUN 虚拟网卡
↓ 注入数据包
对端应用程序- TUN 设备:工作在网络层(Layer 3),处理 IP 数据包,EasyTier 使用此模式
- TAP 设备:工作在数据链路层(Layer 2),处理以太网帧
- 所有经过虚拟网卡的流量都会被 EasyTier 捕获、加密后通过真实网络传输
去中心化 vs 传统 VPN
| 特性 | EasyTier(去中心化) | 传统 VPN(OpenVPN/WireGuard) |
|---|---|---|
| 架构 | P2P 网状网络 | 中心化星型架构 |
| 单点故障 | 无(节点间可直连) | 有(服务器宕机则全断) |
| 延迟 | 低(P2P 直连时) | 较高(流量经中心服务器) |
| 配置复杂度 | 简单(无需服务端配置) | 复杂(需维护服务端) |
| 穿透能力 | 强(支持 NAT 穿透) | 弱(需公网 IP) |
| 加密方式 | AES-256-GCM | 依实现而定 |
连接建立流程
节点 A 中转服务器 节点 B
│ │ │
│──── 注册(网络名+密码)──→│ │
│ │←── 注册(网络名+密码)───│
│ │ │
│←── 获取节点 B 的地址信息 ─│ │
│ │ │
│──────────── 尝试 P2P 直连(UDP 打洞)────────────────→│
│ │ │
│ P2P 成功:直接通信(低延迟) │
│ P2P 失败:通过中转服务器转发(高兼容性) │功能概述
- 将不同地点的设备组成虚拟局域网,分配虚拟 IP
- 支持多种传输协议(TCP、UDP、WebSocket、WebSocket over TLS)
- 自动尝试 P2P 直连,失败时回退到服务器中转
- 支持通过公共服务器或自建服务器中转
- 提供网络拓扑图、节点列表、隧道状态等可视化信息
- 数据全程 AES-256-GCM 加密,保障通信安全
配置说明
进入 EasyTier 客户端 页面,点击 新建 按钮:
基础配置
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| 名称 | 字符串 | ✅ | — | 实例名称 |
| 启用 | 布尔 | ✅ | true | 是否启用 |
| 网络名称 | 字符串 | ✅ | — | 虚拟网络标识,同一网络的设备需填写相同值 |
| 网络密码 | 字符串 | ❌ | — | 网络访问密码,留空表示无密码 |
| 虚拟 IPv4 | 字符串 | ❌ | 自动分配 | 本设备在虚拟网络中的 IP,如 10.144.144.1 |
服务器配置
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| 服务器地址 | 字符串 | ❌ | 公共服务器 | 中转服务器地址,格式:协议://ip:port |
支持的服务器地址格式:
| 格式 | 说明 | 适用场景 |
|---|---|---|
tcp://1.2.3.4:11010 | TCP 连接 | 通用,穿透性好 |
udp://1.2.3.4:11010 | UDP 连接 | 延迟低,但部分网络会屏蔽 |
ws://1.2.3.4:11010 | WebSocket 连接 | 可穿透 HTTP 代理 |
wss://1.2.3.4:11010 | WebSocket over TLS | 最强穿透性,可穿透 HTTPS 代理 |
监听配置
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| 监听协议 | 枚举 | ❌ | tcp | 本地监听协议 |
| 监听端口 | 整数 | ❌ | 11010 | 本地监听端口(用于其他节点直连) |
高级选项
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| 禁用 P2P | 布尔 | ❌ | false | 禁用 P2P 直连,所有流量走服务器中转 |
| 禁用加密 | 布尔 | ❌ | false | 禁用数据加密(不推荐,仅用于调试) |
| 启用 IPv6 | 布尔 | ❌ | false | 启用 IPv6 虚拟网络 |
| 延迟优先 | 布尔 | ❌ | false | 优先选择延迟最低的路径 |
网络拓扑配置示例
拓扑一:星型拓扑(中心节点中转)
适合有一台公网服务器作为中心节点的场景,所有设备通过中心节点通信:
云服务器(中心节点)
10.144.144.1
/ | \
家庭NAS 公司PC 手机
10.144.144.2 10.144.144.3 10.144.144.4配置方式: 云服务器部署 EasyTier 服务端,其他设备均将服务器地址指向云服务器。
优点: 配置简单,连接稳定
缺点: 所有流量经过中心节点,延迟较高,带宽受限于服务器
拓扑二:全互联拓扑(P2P 直连)
适合所有设备都能互相 P2P 直连的场景(如同一局域网或 NAT 类型较好):
家庭NAS ←──────→ 公司PC
↑ ↘ ↗ ↑
│ 手机 ←── │
└──────────────┘配置方式: 所有设备加入同一网络,不指定服务器(使用公共服务器辅助打洞),EasyTier 自动建立 P2P 连接。
优点: 延迟最低,带宽最大
缺点: 依赖 NAT 类型,Symmetric NAT 可能无法直连
拓扑三:混合拓扑(P2P + 中转)
EasyTier 默认工作模式,自动选择最优路径:
家庭NAS ←── P2P直连 ──→ 公司PC
↑ ↑
└──── 中转服务器 ────────┘
(P2P失败时使用)配置方式: 配置中转服务器地址,同时保持 P2P 启用(默认)。EasyTier 优先尝试 P2P,失败时自动切换到中转。
优点: 兼顾延迟和稳定性,自动适应网络环境
缺点: 配置略复杂
完整配置示例
示例:三台设备异地组网
设备 A(家里 NAS):
| 字段 | 值 |
|---|---|
| 名称 | 家庭 NAS |
| 网络名称 | my-home-network |
| 网络密码 | secret123 |
| 虚拟 IPv4 | 10.144.144.1 |
| 服务器地址 | tcp://云服务器IP:11010 |
设备 B(公司电脑):
| 字段 | 值 |
|---|---|
| 名称 | 公司电脑 |
| 网络名称 | my-home-network |
| 网络密码 | secret123 |
| 虚拟 IPv4 | 10.144.144.2 |
| 服务器地址 | tcp://云服务器IP:11010 |
设备 C(云服务器,作为中转):
配置 EasyTier 服务端,监听端口 11010。
配置完成后,设备 B 可通过 10.144.144.1 访问家里 NAS 的所有服务。
各平台配置差异
Linux
# 需要 NET_ADMIN 权限,通常需要 root 或 sudo
# Docker 部署时需要额外参数:
docker run --cap-add NET_ADMIN --device /dev/net/tun ...
# 检查 TUN 设备是否可用
ls /dev/net/tun
# 查看虚拟网卡状态
ip addr show easytier0Windows
- 需要安装 WinTUN 或 TAP-Windows 驱动(NetPanel 安装包已内置)
- 首次运行可能弹出 UAC 权限提示,需要允许
- 防火墙可能需要放行 EasyTier 进程
macOS
# macOS 需要安装 utun 支持(系统内置,无需额外安装)
# 检查虚拟网卡
ifconfig utun0
# 如遇权限问题,在系统偏好设置 → 安全性与隐私 中允许Android / iOS
- 使用 EasyTier 官方 App(需单独下载)
- 配置相同的网络名称和密码即可加入
- Android 需要开启 VPN 权限
直连 vs 中转性能对比
| 指标 | P2P 直连 | 服务器中转 |
|---|---|---|
| 延迟 | 低(取决于物理距离) | 较高(+服务器延迟) |
| 带宽 | 高(受限于两端上行) | 受限于服务器带宽 |
| 稳定性 | 依赖 NAT 类型 | 稳定 |
| 适用场景 | 视频流、大文件传输 | 远程控制、SSH |
网络状态查看
NetPanel 提供了多个 EasyTier 状态查看页面:
- 节点列表:查看所有在线节点及其虚拟 IP、延迟信息
- 网络拓扑:可视化展示节点间的连接关系(P2P/中转用不同颜色标识)
- 隧道状态:查看各节点间的隧道类型和流量统计
- 网络事件:查看节点加入/离开等事件日志
网络诊断
当组网出现问题时,按以下步骤排查:
步骤 1:确认节点在线
在 NetPanel 节点列表 页面,确认目标节点状态为"在线",延迟有正常数值。
步骤 2:Ping 虚拟 IP
# Linux / macOS
ping 10.144.144.2
# Windows
ping 10.144.144.2
# 如果 ping 不通,检查对端防火墙是否放行 ICMP步骤 3:检查防火墙
# Linux:检查 iptables 是否放行虚拟网卡流量
iptables -L INPUT | grep easytier
# 临时放行(测试用)
iptables -I INPUT -i easytier0 -j ACCEPT
iptables -I FORWARD -i easytier0 -j ACCEPT步骤 4:查看 EasyTier 日志
在 NetPanel 系统日志 页面,筛选 EasyTier 相关日志,查看连接错误信息。
步骤 5:验证网络名称和密码
确认所有设备填写的网络名称和网络密码完全一致(区分大小写)。
常见问题
Q:节点显示已连接但无法访问对端服务?
A:检查对端服务是否监听在 0.0.0.0(而非 127.0.0.1),以及对端防火墙是否放行对应端口。
Q:延迟很高,如何优化?
A:1) 启用"延迟优先"选项;2) 选择地理位置更近的中转服务器;3) 检查是否走了 P2P 直连(在隧道状态页面查看)。
Q:P2P 直连一直失败?
A:可能是 Symmetric NAT 环境,建议使用服务器中转(禁用 P2P 选项),或在路由器上配置 UPnP/端口映射。
Q:Docker 部署时 TUN 设备不可用?
A:确保 Docker 启动参数包含 --cap-add NET_ADMIN --device /dev/net/tun,且宿主机内核支持 TUN 模块(modprobe tun)。
Q:Windows 上虚拟网卡创建失败?
A:以管理员身份运行 NetPanel,或检查 WinTUN 驱动是否正确安装。
官方资源
NetPanel 内置 EasyTier
NetPanel 发布包中已内置对应平台的 EasyTier 二进制文件,无需单独下载。上方下载地址适用于需要单独使用 EasyTier 的场景。
TUN 设备权限
EasyTier 需要创建 TUN 虚拟网卡,在 Linux 上需要 NET_ADMIN 权限或 root 权限。Docker 部署时需要添加 --cap-add NET_ADMIN 和 --device /dev/net/tun。
公共服务器
如果没有自建服务器,可以使用 EasyTier 官方提供的公共服务器(不填写服务器地址时默认使用)。公共服务器仅用于中转,数据经过加密,但建议敏感场景自建服务器。