基于 Easytier 的内网穿透 VPN 组网方案部署
| 分类:软件工具 | 阅读量:796
标签:内网穿透 , VPN , Easytier
项目地址
https://github.com/EasyTier/EasyTier
简介
Easytier
是一个简单、安全、去中心化的内网穿透 VPN 组网方案,使用 Rust
语言和 Tokio
框架实现。
特点
- 去中心化:无需依赖中心化服务,节点平等且独立。
- 安全:支持利用 WireGuard 加密通信,也支持 AES-GCM 加密保护中转流量。
- 高性能:全链路零拷贝,性能与主流组网软件相当。
- 跨平台:支持 MacOS/Linux/Windows/FreeBSD/Android ,未来将支持 IOS 。可执行文件静态链接,部署简单。
- 无公网 IP 组网:支持利用共享的公网节点组网,可参考配置指南。
- NAT 穿透:支持基于 UDP 的 NAT 穿透,即使在复杂的网络环境下也能建立稳定的连接。
- 子网代理(点对网):节点可以将可访问的网段作为代理暴露给 VPN 子网,允许其他节点通过该节点访问这些子网。
- 智能路由:根据流量智能选择链路,减少延迟,提高吞吐量。
- TCP 支持:在 UDP 受限的情况下,通过并发 TCP 链接提供可靠的数据传输,优化性能。
- 高可用性:支持多路径和在检测到高丢包率或网络错误时切换到健康路径。
- IPV6 支持:支持利用 IPV6 组网。
安装为windows服务
前往NSSM官网 [https://nssm.cc/download] 下载NSSM并解压到本地目录;
下载好 命令行版easytier-core.exe,记住存放目录,如 D:\Software\Easytier\cli\easytier-core.exe
;
将其注册为windows服务,如命名为 easytier_service
;
nssm.exe install easytier_service D:\Software\Easytier\cli\easytier-core.exe --ipv4 10.144.144.2 --network-name abc --network-secret abc -e tcp://public.easytier.top:11010
运行 services.msc
,找到 easytier_service
服务,启用并将其设置为延时启动;
如要删除服务:nssm.exe remove easytier_service
;
注意:注册成服务后程序(指easytier-core.exe)不能修改、删除或移动,否则需要删除以重新注册或修改win注册表;
为方便执行 easytier-cli.exe
查看连接情况,可将其存放到 C:\Users\Administrator
(Administrator是你windows用户名)底下,随意打开 cmd 或 powershell 即可执行,如:easytier-cli.exe peer
。
自建公共服务器
用户可以使用自己的公网节点自建用于无公网 IP 组网的公共服务器,方便其他无公网 IP 的用户组网。
需要不带任何参数启动 EasyTier,该节点就可作为公共服务器使用(不需要 root 权限):
easytier-core
另外 EasyTier 支持服务器集群。每个虚拟网络(通过相同的网络名称和密钥建链)都可以充当公共服务器集群,其他网络的节点可以连接到公共服务器集群中的任意节点,无需公共 IP 即可发现彼此。运行自建的公共服务器集群与运行虚拟网络完全相同,不过可以跳过配置 ipv4 地址。
也可以使用以下命令加入官方公共服务器集群,后续将实现公共服务器集群的节点间负载均衡:
sudo easytier-core --network-name easytier --network-secret easytier -p tcp://public.easytier.top:11010
关闭转发
另外,默认情况下, EasyTier 的每个节点都允许为其他虚拟网提供转发服务,即使该节点已经指定了 网络名 (--network-name
) 和 网络密钥 (--network-secret
)、并已加入一个虚拟网。
若需改变此行为,可通过 --relay-network-whitelist
参数限定可被转发的网络名白名单(空格分割的通配符列表,如 "ab* abc"
)。当该参数的列表为空时,就不会为所有其他网络提供转发服务。
EasyTier 可以做到不转发其他虚拟网的网络包,而是只帮助他们建立 P2P 链接,只需将白名单置空,并设置仅转发 RPC 流量即可。参考命令为:
easytier-core --relay-network-whitelist --relay-all-peer-rpc