EasyTier + Cloudflare Tunnel 实现无服务器组网

清夏晚风 Lv7

前言

在没有公网 IP 的情况下,如何实现异地设备组网一直是困扰很多人的问题。传统的解决方案通常需要:

  • 购买云服务器作为中转
  • 申请公网 IP(越来越困难)
  • 使用第三方商业 VPN 服务

本文将介绍一种完全免费、无需服务器、无需公网 IP的组网方案:EasyTier + Cloudflare Tunnel

方案原理

EasyTier 简介

EasyTier 是一个简单、安全、去中心化的异地组网方案,由 Rust 语言和 Tokio 框架实现。主要特点包括:

  • 去中心化:节点平等独立,无需中心化服务
  • 安全:支持 WireGuard 加密通信,AES-GCM 加密中转流量
  • 高性能:全链路零拷贝,性能优异
  • 跨平台:支持 Windows、Linux、macOS、Android、iOS
  • NAT 穿透:高效 UDP、IPv6 穿透,可打通 NAT4-NAT4 网络

Cloudflare Tunnel 简介

Cloudflare Tunnel 是 Cloudflare 提供的免费内网穿透服务,通过 cloudflared 客户端建立安全连接到 Cloudflare 边缘网络。

组合优势

方案 需要服务器 需要公网 IP 费用 复杂度
传统 VPN
商业组网工具
EasyTier 公共服务器 免费
EasyTier + Cloudflare Tunnel 免费

准备工作

1. 注册 Cloudflare 账号

访问 Cloudflare 官网 注册账号。

2. 下载 EasyTier

根据你的操作系统下载对应版本:

  • Windows: easytier-gui.exe
  • Linux: easytier-core 二进制文件
  • macOS: 支持 Intel 和 Apple Silicon

3. 下载 cloudflared

访问 cloudflared releases 下载对应系统的客户端。

配置步骤

第一步:创建 Cloudflare Tunnel

  1. 登录 Cloudflare One Dashboard
  2. 依次点击 NetworkTunnelsCreate a tunnel
  3. 选择 Cloudflared 作为连接器
  4. 输入隧道名称(如 easytier-relay
  5. 根据你的系统选择安装方式,复制安装命令
1
2
3
4
5
6
# Windows PowerShell 示例(以管理员身份运行)
# 下载并安装 cloudflared
winget install --id Cloudflare.cloudflared

# 登录认证
cloudflared tunnel login
  1. 认证完成后,创建隧道:
1
2
3
4
# 创建隧道
cloudflared tunnel create easytier-relay

# 记录输出的 Tunnel ID,后续会用到

第二步:配置 Tunnel 路由

方式一:使用 Cloudflare Dashboard 配置(推荐)

  1. 在 Tunnel 详情页,点击 Public Hostname 标签
  2. 点击 Add a public hostname
  3. 配置 WebSocket 转发:
    • Subdomain: easytier-ws(自定义)
    • Domain: 选择你的域名
    • Path: 留空
    • Type: HTTP
    • URL: localhost:11011(EasyTier 的 WS 端口)
  4. 点击 Save hostname

Cloudflare Tunnel HTTP 配置

方式二:使用配置文件

创建配置文件 config.yml

1
2
3
4
5
6
7
8
9
10
# cloudflared 配置文件
tunnel: <你的 Tunnel ID>
credentials-file: C:\Users\<用户名>\.cloudflared\<Tunnel ID>.json

# 配置 HTTP 转发到 EasyTier WS 端口(11011)
ingress:
- hostname: easytier-ws.yourdomain.com
service: http://localhost:11011
# 默认规则
- service: http_status:404

注意

  • 需要在 Cloudflare DNS 中添加对应的 CNAME 记录,指向 <Tunnel ID>.cfargotunnel.com
  • 虽然 Type 选择 HTTP,但 Cloudflare 会自动处理 HTTPS 加密(WSS)

第三步:启动 EasyTier 服务端

在作为服务端的设备上(可以是家中任意一台电脑或服务器):

1
2
# 启动 EasyTier 服务端(以 Windows 为例)
easytier-core.exe --relay-network-whitelist --relay-all-peer-rpc -m server --file-log-level info --file-log-dir=.

参数说明:

参数 说明
--relay-network-whitelist 启用网络白名单中继
--relay-all-peer-rpc 允许所有对等节点 RPC
-m server 以服务器模式运行
--file-log-level info 日志级别为 info

第四步:启动 Cloudflared

1
2
# 运行隧道
cloudflared tunnel run easytier-relay

或使用配置文件:

1
cloudflared tunnel --config config.yml run

第五步:客户端连接

其他设备通过 Cloudflare Tunnel 提供的域名连接到 EasyTier 网络:

TCP 连接方式

1
2
# 使用 TCP 协议连接
easytier-core -d --network-name mynetwork -p tcp://easytier-tcp.yourdomain.com:443 --no-listener

WebSocket 连接方式(推荐)

1
2
3
# 使用 WebSocket 协议连接(穿透性更好)
# 注意:通过 Cloudflare Tunnel 时,使用 ws:// 协议,Cloudflare 会自动升级为 WSS
easytier-core -d --network-name mynetwork -p ws://easytier-ws.yourdomain.com:443 --no-listener

参数说明:

参数 说明
-d 后台运行(守护进程模式)
--network-name 网络名称,所有设备需保持一致
-p 对端地址,使用 Cloudflare Tunnel 提供的域名
--no-listener 不监听端口,仅作为客户端

第六步:配置网络密码(可选但推荐)

为了安全起见,建议设置网络密码:

1
2
3
4
5
# 服务端
easytier-core --relay-network-whitelist --relay-all-peer-rpc -m server --network-secret yourpassword

# 客户端(使用 ws:// 协议,Cloudflare 自动处理加密)
easytier-core -d --network-name mynetwork --network-secret yourpassword -p ws://easytier-ws.yourdomain.com:443 --no-listener

使用 GUI 客户端(Windows 推荐)

对于 Windows 用户,可以使用 EasyTier GUI 客户端,操作更简便:

  1. 下载并运行 easytier-gui.exe
  2. 点击 创建网络加入网络
  3. 填写以下信息:
    • 网络名称:自定义(如 mynetwork
    • 网络密码:自定义(可选但推荐)
    • 虚拟 IP:自动分配或手动指定
    • 对等节点ws://easytier-ws.yourdomain.com:443(Cloudflare 会自动升级为 WSS)
  4. 点击 运行网络

EasyTier GUI 界面

常见问题与解决方案

1. 连接超时或握手失败

现象

1
connection error. err: wait resp error: wait handshake timeout

解决方案

  • 检查 Cloudflare Tunnel 是否正常运行
  • 确认 DNS 记录已正确配置并生效
  • 尝试切换 TCP 和 WebSocket 协议
  • 检查防火墙是否放行相关端口

2. 客户端无法发现服务端

排查步骤

  1. 确认服务端 EasyTier 已启动并监听端口
  2. 检查 cloudflared 日志是否有连接记录
  3. 使用 cloudflared tunnel info <tunnel-name> 查看隧道状态
  4. 确认客户端使用的域名和端口正确

3. NAT 穿透失败

优化建议

  • 启用 --relay-all-peer-rpc 参数
  • 确保服务端有公网出口或使用 Cloudflare Tunnel 中转
  • 检查路由器 UPnP 设置

4. 性能优化

如果网络延迟较高,可以尝试:

1
2
3
4
5
# 启用 KCP 协议优化弱网性能
easytier-core --enable-kcp ...

# 指定网卡(多网卡环境)
easytier-core --dev-name eth0 ...

高级配置

多节点组网

当有超过 2 台设备时,EasyTier 会自动建立 P2P 连接:

1
2
3
4
5
设备 A (服务端) <--Cloudflare Tunnel--> 设备 B

P2P 直连

设备 C <-------------------------> 设备 B

子网路由宣告

如果需要访问设备所在局域网的其他设备:

1
2
# 在设备上宣告子网路由
easytier-core -d --network-name mynetwork -p ws://easytier-ws.yourdomain.com:443 --proxy-networks 192.168.1.0/24

使用 Docker 部署

服务端 Docker 部署示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
version: '3'
services:
easytier:
image: easytier/easytier:latest
container_name: easytier-server
restart: always
network_mode: host
command: >
--relay-network-whitelist
--relay-all-peer-rpc
-m server
--network-name mynetwork
--network-secret yourpassword
volumes:
- ./logs:/logs

安全建议

  1. 设置强密码:使用 --network-secret 参数
  2. 限制网络白名单:使用 --relay-network-whitelist 仅允许指定网络
  3. 定期更新:保持 EasyTier 和 cloudflared 为最新版本
  4. 监控日志:启用 --file-log-level info 记录连接日志
  5. 使用 HTTPS/WSS:优先使用加密协议

总结

通过 EasyTier + Cloudflare Tunnel 的组合,我们可以:

零成本:完全免费,无需购买服务器
无公网 IP:利用 Cloudflare 边缘网络
去中心化:节点平等,不依赖单一服务
跨平台:支持各种操作系统
易扩展:随时添加新设备到网络

这种方案特别适合:

  • 家庭 NAS 远程访问
  • 异地办公组网
  • 开发测试环境共享
  • 游戏联机

参考链接

  • Title: EasyTier + Cloudflare Tunnel 实现无服务器组网
  • Author: 清夏晚风
  • Created at : 2026-04-15 20:11:14
  • Updated at : 2026-05-29 14:43:35
  • Link: https://blog.yuil.cn/2026/04/15/组网相关工具/虚拟软件/EasyTier/EasyTier+Cloudflare Tunnel实现无服务器组网/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments