EasyTier:用 Rust 写的去中心化虚拟组网工具

EasyTier 在 GitHub 上拿到了 12,160 Star。

这个项目做了一件事,让你不用依赖任何中心服务器,就能把多台设备组成一个虚拟局域网。底层用 Rust 和 Tokio 写的,走的是去中心化路线,所有节点地位平等。

正文顶部截图

1、 它解决什么问题

传统的 VPN 方案,要么得租一台有公网 IP 的服务器做中转,要么得在路由器上折腾端口映射和 NAT 穿透。对个人用户来说,光是搞清楚自己家宽带是 NAT 几就够头疼了。

EasyTier 把这些都简化了。你只需要在每台设备上跑一个 EasyTier 进程,给它们配好相同的网络名称和密码,节点之间就会自动发现彼此、自动建连。没有服务器和客户端的区分,任何一个节点都能充当其他节点的接入点。

README区域截图

2、 核心能力

去中心化架构:节点之间没有主从关系,一个节点挂了不影响其他节点之间的连接。

NAT 穿透:支持 UDP 和 IPv6 穿透,实测 NAT4 到 NAT4 的场景也能打穿。打不通的情况下会自动走中继。

跨平台:Windows、macOS、Linux、FreeBSD、Android 都支持,CPU 架构覆盖 x86、ARM、MIPS。

加密通信:支持 AES-GCM 和 WireGuard 两种加密方式,传输层全程加密。

子网代理:一台设备可以把自己所在的局域网子网共享给虚拟网络里的其他节点。比如你有一台在公司内网的机器,可以通过它让家里的设备访问公司网段。

智能路由:节点之间有多条路径可选时,会自动选延迟最低的那条。

3、 怎么用

最简单的用法是借助社区提供的公共节点组网。两台设备分别执行:

# 节点 A
sudo easytier-core -d --network-name mynet --network-secret mypass -p tcp://共享节点IP:11010

# 节点 B
sudo easytier-core -d --network-name mynet --network-secret mypass -p tcp://共享节点IP:11010

执行完之后,两台设备就在同一个虚拟网络里了,可以互相 ping 通。用 easytier-cli 命令可以查看当前网络状态,包括各节点的 IP、延迟、流量等信息。

如果想完全去中心化,不依赖任何公共节点,也可以自己搭建。第一台设备直接启动就行,它会监听默认端口,后续设备通过 -p 参数指定已有节点的地址加入网络。

# 第一个节点
sudo easytier-core -i 10.144.144.1

# 后续节点连接第一个节点
sudo easytier-core -i 10.144.144.2 -p udp://第一个节点的IP:11010

安装方式也很直接。Linux 下一条 curl 命令搞定,Windows 下一条 PowerShell 命令搞定,macOS 可以用 Homebrew,也可以直接从 GitHub Releases 页面下载预编译的二进制文件。静态链接,没有依赖,下载就能跑。

4、 WireGuard 兼容

EasyTier 内置了 WireGuard 门户功能。开启之后,任何装了 WireGuard 客户端的设备(包括手机)都能通过 WireGuard 协议接入 EasyTier 网络。

这意味着你可以在 iPhone 或 Android 手机上用 WireGuard 客户端连回家里的虚拟网络,不需要额外装 App。

配置方法是在启动 EasyTier 时加一个参数:

sudo easytier-core -i 10.144.144.1 --vpn-portal wg://0.0.0.0:11013/10.14.14.0/24

然后用 easytier-cli vpn-portal 命令导出 WireGuard 客户端配置文件,导入手机的 WireGuard 客户端就能用了。

5、 和 ZeroTier、Tailscale 的区别

ZeroTier 和 Tailscale 是这个领域最知名的两个产品。EasyTier 跟它们最大的区别在于架构:ZeroTier 需要一个根服务器来做协调,Tailscale 依赖官方的控制服务器。EasyTier 是纯去中心化的,不需要连任何外部服务。

在功能上,EasyTier 支持的协议更多,包括 TCP、UDP、WebSocket、WireGuard,传输链路全程零拷贝,对高丢包环境做了 KCP/QUIC 优化。

6、 适合什么场景

异地组网访问家里的 NAS 或者开发环境。把分散在不同地方的设备拉到同一个网段,不用公网 IP,不用改路由器设置。

远程办公场景下,通过子网代理功能访问公司内网资源。只需要一台能连到虚拟网络的设备做桥接。

搭建个人的 WireGuard VPN,用 EasyTier 管理节点和路由,比手动配置 WireGuard 省事很多。

项目开源,采用 LGPL-3.0 协议。

搭建个人的 WireGuard VPN,用 EasyTier 管理节点和路由,比手动配置 WireGuard 省事很多。

项目开源,采用 LGPL-3.0 协议。

更多推荐