EasyTier 是由 Rust 和 Tokio 驱动一个简单、安全、去中心化的内网穿透 远程 组网方案,开源项目。
优点
- 去中心化:无需依赖中心化服务,节点平等且独立
- 公网 IP 组网:支持利用共享的公网节点组网, 可以使用 EasyTier 公共 Peers
- 低占用: 即使最垃圾的机器也可以跑
- 跨平台支持
- NAT 穿透:支持基于 UDP 的 NAT 穿透,即使在复杂的网络环境下也能建立稳定的连接
- 子网代理(点对网):节点可以将可访问的网段作为代理暴露给 远程 子网,允许其他节点通过该节点访问这些子网
- 智能路由:根据流量智能选择链路,减少延迟,提高吞吐量
- TCP 支持:在 UDP 受限的情况下,通过并发 TCP 链接提供可靠的数据传输,优化性能
- 高可用性:支持多路径和在检测到高丢包率或网络错误时切换到健康路径
- 安全:支持利用 WireGuard 加密通信,也支持 AES-GCM 加密保护中转流量
- IPV6 支持:支持利用 IPV6 组网
项目情况
部署
这里以手动安装和 docker 部署方式为例
手动安装部署
EasyTier 采用 rust 开发,交叉编译成二进制文件,部署极其方便简单
直接下载已经编译好的文件,安装即可,下面分几步执行
EasyTier 默认是不区分客户端还是服务端,故本次部署即是服务端又是客户端。一般情况下 开放监听端口为服务端,不开放监听端口为客户端
Linux-x86_64
适用于 Debian 系列,其它架构系统类似。默认 root 终端执行。
下载 EasyTier
1 | $ mkdir -p /etc/et && cd /etc/et |
解压
1 | $ unzip easytier-linux-x86_64-v2.1.1.zip |
编写配置文件
默认路径为 /etc/et/config.toml
,内容如下:
1 | instance_name = "default" |
另外当服务跑起来后,也可以使用 easytier-cli node config
命令查看节点配置文件
编写启动守护文件并启动
1 | $ cat > /etc/systemd/system/easytier.service <<EOF |
可以使用配置文件,也可以使用命令行参数方式,如果节点配置都一样,推荐使用配置文件方式。
启动服务
1 | # 开机自启并立即启动 |
如果使用命令行参数,每次启动后需要 reload 一下
1 | $ systemctl daemon-reload |
查询服务是否正常
执行 easytier-cli peer
, 由于使用的是公共节点,所以会有节点信息
如下是我自己的组网节点
使用 Docker 部署
编写 docker-compose.yml
- 首先创建一个目录(如 easytier),然后在该目录下创建 docker-compose.yml 文件,内容如下:
1 | services: |
- 启动服务
1 | $ docker compose pull |
同理,如果需要查看节点信息,可以使用 docker exec -it easytier easytier-cli peer
命令
需要自行放行相关端口,如 32379, 32380 等
其他系统部署
Windows 部署可以参考官方文档
Windows Scoop 安装
在 PowerShell 执行下列代码以安装 Scoop
1 | irm get.scoop.sh | iex |
示例: nssm.exe install easytier_service C:\Scoop\apps\easytier\current\easytier-core.exe -i 192.168.66.81 -e tcp://public.easytier.top:11010 --dev-name easytier0 --network-name xxxx --network-secret xxxx
注意:Windows 下需要管理员权限执行, 相关路径也需要确定,不一定是
C:\Scoop\
,可能是当前用户目录下的scoop
目录
打开 services.msc 找到 easytier_service,修改为延迟启动
其他
仅供参考,不对其安全性负责
本文转载自:「Solitudes」,原文:https://ysicing.me/easytier ,版权归原作者所有。欢迎投稿,投稿邮箱: editor@hi-linux.com。