EasyTier/EasyTier
GitHub: EasyTier/EasyTier
EasyTier 是一款去中心化的 Mesh VPN 工具,支持 WireGuard 加密和高效的 NAT 穿透,无需中心服务器即可实现跨平台多节点的安全组网。
Stars: 10678 | Forks: 1045
# EasyTier
[](https://github.com/EasyTier/EasyTier/releases)
[](https://github.com/EasyTier/EasyTier/blob/main/LICENSE)
[](https://github.com/EasyTier/EasyTier/commits/main)
[](https://github.com/EasyTier/EasyTier/issues)
[](https://github.com/EasyTier/EasyTier/actions/workflows/core.yml)
[](https://github.com/EasyTier/EasyTier/actions/workflows/gui.yml)
[](https://github.com/EasyTier/EasyTier/actions/workflows/test.yml)
[](https://deepwiki.com/EasyTier/EasyTier)
[简体中文](/README_CN.md) | [English](/README.md)
:11010
```
2. 在节点 B 上运行:
```
# 以管理员权限运行
sudo easytier-core -d --network-name abc --network-secret abc -p tcp://:11010
```
执行成功后,可以使用 `easytier-cli` 查看网络状态:
```
| ipv4 | hostname | cost | lat_ms | loss_rate | rx_bytes | tx_bytes | tunnel_proto | nat_type | id | version |
| ------------ | -------------- | ----- | ------ | --------- | -------- | -------- | ------------ | -------- | ---------- | --------------- |
| 10.126.126.1 | abc-1 | Local | * | * | * | * | udp | FullCone | 439804259 | 2.6.0-70e69a38~ |
| 10.126.126.2 | abc-2 | p2p | 3.452 | 0 | 17.33 kB | 20.42 kB | udp | FullCone | 390879727 | 2.6.0-70e69a38~ |
| | PublicServer_a | p2p | 27.796 | 0.000 | 50.01 kB | 67.46 kB | tcp | Unknown | 3771642457 | 2.6.0-70e69a38~ |
```
您可以测试节点间的连通性:
```
# 测试连通性
ping 10.126.126.1
ping 10.126.126.2
```
注意:如果无法 ping 通,可能是防火墙阻止了传入流量。请关闭防火墙或添加允许规则。
为了提高可用性,您可以同时连接多个共享节点:
```
# 连接到多个共享节点
sudo easytier-core -d --network-name abc --network-secret abc -p tcp://:11010 -p udp://:11010
```
一旦您的网络设置成功,您可以轻松地将其配置为在系统启动时自动启动。请参阅 [一键注册服务指南](https://easytier.cn/en/guide/network/oneclick-install-as-service.html),获取有关将 EasyTier 注册为系统服务的分步说明。
#### 去中心化组网
EasyTier 从根本上说是去中心化的,没有服务器和客户端之分。只要一台设备能与虚拟网络中的任何节点通信,它就可以加入虚拟网络。以下是设置去中心化网络的方法:
1. 启动第一个节点(节点 A):
```
# 启动第一个节点
sudo easytier-core -i 10.144.144.1
```
启动后,该节点将默认监听以下端口:
- TCP: 11010
- UDP: 11010
- WebSocket: 11011
- WebSocket SSL: 11012
- WireGuard: 11013
2. 连接第二个节点(节点 B):
```
# 使用公网 IP 连接到第一个节点
sudo easytier-core -i 10.144.144.2 -p udp://FIRST_NODE_PUBLIC_IP:11010
```
3. 验证连接:
```
# 测试连通性
ping 10.144.144.2
# 查看已连接的节点
easytier-cli peer
# 查看路由信息
easytier-cli route
# 查看本地节点信息
easytier-cli node
```
对于更多要加入网络的节点,它们可以使用 `-p` 参数连接到网络中的任何现有节点:
```
# 使用公网 IP 连接到任意现有节点
sudo easytier-core -i 10.144.144.3 -p udp://ANY_EXISTING_NODE_PUBLIC_IP:11010
```
### 🔍 高级功能
#### 子网代理
假设网络拓扑如下,节点 B 希望将其可访问的子网 10.1.1.0/24 共享给其他节点:
```
flowchart LR
subgraph Node A Public IP 22.1.1.1
nodea[EasyTier
10.144.144.1] end subgraph Node B nodeb[EasyTier
10.144.144.2] end id1[[10.1.1.0/24]] nodea <--> nodeb <-.-> id1 ``` 要共享子网,请在启动 EasyTier 时添加 `-n` 参数: ``` # 与其他节点共享子网 10.1.1.0/24 sudo easytier-core -i 10.144.144.2 -n 10.1.1.0/24 ``` 子网代理信息将自动同步到虚拟网络中的每个节点,并且每个节点将自动配置相应的路由。您可以验证子网代理设置: 1. 检查路由信息是否已同步(proxy_cidrs 列显示被代理的子网): ``` # 查看路由信息 easytier-cli route ```  2. 测试是否可以访问被代理子网中的节点: ``` # 测试到代理子网的连通性 ping 10.1.1.2 ``` #### WireGuard 集成 EasyTier 可以充当 WireGuard 服务器,允许任何装有 WireGuard 客户端的设备(包括 iOS 和 Android)访问 EasyTier 网络。以下是一个设置示例: ``` flowchart LR ios[[iPhone
WireGuard Installed]] subgraph Node A Public IP 22.1.1.1 nodea[EasyTier
10.144.144.1] end subgraph Node B nodeb[EasyTier
10.144.144.2] end id1[[10.1.1.0/24]] ios <-.-> nodea <--> nodeb <-.-> id1 ``` 1. 启用 WireGuard 门户启动 EasyTier: ``` # 监听 0.0.0.0:11013 并使用 10.14.14.0/24 子网给 WireGuard 客户端 sudo easytier-core -i 10.144.144.1 --vpn-portal wg://0.0.0.0:11013/10.14.14.0/24 ``` 2. 获取 WireGuard 客户端配置: ``` # 获取 WireGuard 客户端配置 easytier-cli vpn-portal ``` 3. 在输出配置中: - 将 `Interface.Address` 设置为 WireGuard 子网中的可用 IP - 将 `Peer.Endpoint` 设置为 EasyTier 节点的公网 IP/域名 - 将修改后的配置导入到您的 WireGuard 客户端 #### 自建公共共享节点 您可以运行自己的公共共享节点来帮助其他节点相互发现。公共共享节点只是一个普通的 EasyTier 网络(具有相同的网络名称和密钥),其他网络可以连接到它。 要运行公共共享节点: ``` # 无需为公共共享节点指定 IPv4 地址 sudo easytier-core --network-name mysharednode --network-secret mysharednode ``` ## 相关项目 - [ZeroTier](https://www.zerotier.com/):用于连接设备的全球虚拟网络。 - [TailScale](https://tailscale.com/):旨在简化网络配置的 VPN 解决方案。 ### 联系我们 - 💬 **[Telegram 群组](https://t.me/easytier)** - 👥 **[QQ 群]** - 1群 [949700262](https://qm.qq.com/q/wFoTUChqZW) - 2群 [837676408](https://qm.qq.com/q/4V33DrfgHe) - 3群 [957189589](https://qm.qq.com/q/YNyTQjwlai) ## 许可证 EasyTier 是在 [LGPL-3.0](https://github.com/EasyTier/EasyTier/blob/main/LICENSE) 下发布的。
10.144.144.1] end subgraph Node B nodeb[EasyTier
10.144.144.2] end id1[[10.1.1.0/24]] nodea <--> nodeb <-.-> id1 ``` 要共享子网,请在启动 EasyTier 时添加 `-n` 参数: ``` # 与其他节点共享子网 10.1.1.0/24 sudo easytier-core -i 10.144.144.2 -n 10.1.1.0/24 ``` 子网代理信息将自动同步到虚拟网络中的每个节点,并且每个节点将自动配置相应的路由。您可以验证子网代理设置: 1. 检查路由信息是否已同步(proxy_cidrs 列显示被代理的子网): ``` # 查看路由信息 easytier-cli route ```  2. 测试是否可以访问被代理子网中的节点: ``` # 测试到代理子网的连通性 ping 10.1.1.2 ``` #### WireGuard 集成 EasyTier 可以充当 WireGuard 服务器,允许任何装有 WireGuard 客户端的设备(包括 iOS 和 Android)访问 EasyTier 网络。以下是一个设置示例: ``` flowchart LR ios[[iPhone
WireGuard Installed]] subgraph Node A Public IP 22.1.1.1 nodea[EasyTier
10.144.144.1] end subgraph Node B nodeb[EasyTier
10.144.144.2] end id1[[10.1.1.0/24]] ios <-.-> nodea <--> nodeb <-.-> id1 ``` 1. 启用 WireGuard 门户启动 EasyTier: ``` # 监听 0.0.0.0:11013 并使用 10.14.14.0/24 子网给 WireGuard 客户端 sudo easytier-core -i 10.144.144.1 --vpn-portal wg://0.0.0.0:11013/10.14.14.0/24 ``` 2. 获取 WireGuard 客户端配置: ``` # 获取 WireGuard 客户端配置 easytier-cli vpn-portal ``` 3. 在输出配置中: - 将 `Interface.Address` 设置为 WireGuard 子网中的可用 IP - 将 `Peer.Endpoint` 设置为 EasyTier 节点的公网 IP/域名 - 将修改后的配置导入到您的 WireGuard 客户端 #### 自建公共共享节点 您可以运行自己的公共共享节点来帮助其他节点相互发现。公共共享节点只是一个普通的 EasyTier 网络(具有相同的网络名称和密钥),其他网络可以连接到它。 要运行公共共享节点: ``` # 无需为公共共享节点指定 IPv4 地址 sudo easytier-core --network-name mysharednode --network-secret mysharednode ``` ## 相关项目 - [ZeroTier](https://www.zerotier.com/):用于连接设备的全球虚拟网络。 - [TailScale](https://tailscale.com/):旨在简化网络配置的 VPN 解决方案。 ### 联系我们 - 💬 **[Telegram 群组](https://t.me/easytier)** - 👥 **[QQ 群]** - 1群 [949700262](https://qm.qq.com/q/wFoTUChqZW) - 2群 [837676408](https://qm.qq.com/q/4V33DrfgHe) - 3群 [957189589](https://qm.qq.com/q/YNyTQjwlai) ## 许可证 EasyTier 是在 [LGPL-3.0](https://github.com/EasyTier/EasyTier/blob/main/LICENSE) 下发布的。
标签:AES-GCM, Android, DNS 反向解析, DSL, IP 地址批量处理, Mesh网络, P2P, Rust, SD-WAN, VPN, WireGuard, ZeroTier替代, 内网穿透, 加密通信, 去中心化, 可视化界面, 开源, 异地组网, 点对点, 私有网络, 组网, 网络安全, 网络流量审计, 请求拦截, 远程访问, 连接性, 通知系统, 隐私保护, 隧道