用cloudfare搭建自己的免费机场-edgetunnel
项目地址:https://github.com/cmliu/edgetunnel
视频教程:https://www.youtube.com/watch?v=WEWniFliC3U&feature=youtu.be
💡 快速部署
📖 详尽图文教程:edgetunnel 部署指南
⚠️ Error 1101问题:视频解析
⚙️ Workers 部署
「 Workers 部署文字教程 」
部署 CF Worker:
- 在 CF Worker 控制台中创建一个新的 Worker。
- 将 worker.js 的内容粘贴到 Worker 编辑器中。
- 在左侧的
设置选项卡中,选择变量>添加变量。
变量名称填写ADMIN,值则为你的管理员密码,后点击保存即可。
绑定 KV 命名空间:
- 在
绑定选项卡中选择添加绑定 +>KV 命名空间>添加绑定,然后选择一个已有的命名空间或创建一个新的命名空间进行绑定。 变量名称填写KV,然后点击添加绑定即可。
- 在
给 Workers绑定 自定义域:
- 在 workers控制台的
触发器选项卡,下方点击添加自定义域。 - 填入你已转入 CF 域名解析服务的次级域名,例如:
vless.google.com后 点击添加自定义域,等待证书生效即可。
- 在 workers控制台的
访问后台:
- 访问
https://vless.google.com/admin输入管理员密码即可登录后台。
- 访问
🛠 Pages 上传 部署方法 最佳推荐!!! 图文教程
「 Pages 上传文件部署文字教程 」
部署 CF Pages:
绑定 KV 命名空间:
- 在
设置选项卡中选择绑定>+ 添加>KV 命名空间,然后选择一个已有的命名空间或创建一个新的命名空间进行绑定。 变量名称填写KV,然后点击保存后重试部署即可。
- 在
给 Pages绑定 CNAME自定义域:视频教程
- 在 Pages控制台的
自定义域选项卡,下方点击设置自定义域。 - 填入你的自定义次级域名,注意不要使用你的根域名,例如:
您分配到的域名是fuck.cloudns.biz,则添加自定义域填入lizi.fuck.cloudns.biz即可; - 按照 CF 的要求将返回你的域名DNS服务商,添加 该自定义域
lizi的 CNAME记录edgetunnel.pages.dev后,点击激活域即可。
- 在 Pages控制台的
访问后台:
- 访问
https://lizi.fuck.cloudns.biz/admin输入管理员密码即可登录后台。
- 访问
🛠 Pages + GitHub 部署方法
「 Pages + GitHub 部署文字教程 」
部署 CF Pages:
- 在 Github 上先 Fork 本项目,并点上 Star !!!
- 在 CF Pages 控制台中选择
连接到 Git后,选中edgetunnel项目后点击开始设置。 - 在
设置构建和部署页面下方,选择环境变量(高级)后并添加变量
变量名称填写ADMIN,值则为你的管理员密码,后点击保存并部署即可。
绑定 KV 命名空间:
- 在
设置选项卡中选择绑定>+ 添加>KV 命名空间,然后选择一个已有的命名空间或创建一个新的命名空间进行绑定。 变量名称填写KV,然后点击保存后重试部署即可。
- 在
给 Pages绑定 CNAME自定义域:视频教程
- 在 Pages控制台的
自定义域选项卡,下方点击设置自定义域。 - 填入你的自定义次级域名,注意不要使用你的根域名,例如:
您分配到的域名是fuck.cloudns.biz,则添加自定义域填入lizi.fuck.cloudns.biz即可; - 按照 CF 的要求将返回你的域名DNS服务商,添加 该自定义域
lizi的 CNAME记录edgetunnel.pages.dev后,点击激活域即可。
- 在 Pages控制台的
访问后台:
- 访问
https://lizi.fuck.cloudns.biz/admin输入管理员密码即可登录后台。
- 访问
🔑 环境变量说明
| 变量名 | 必填 | 示例 | 详细备注 |
|---|---|---|---|
| ADMIN | ✅ | 123456 |
后台管理面板登录密码 |
| KEY | ❌ | CMLiussss |
快速订阅路径密钥,访问 /CMLiussss 即可快速获取节点 |
| UUID | ❌ | 90cd4a77-141a-43c9-991b-08263cfe9c10 |
强制固定UUID,只支持UUIDv4标准格式 |
| PROXYIP | ❌ | proxyip.cmliussss.net:443 |
全局自定义反代 IP |
| URL | ❌ | https://cloudflare-error-page-3th.pages.dev |
默认主页伪装地址(可填写网页 URL 或 1101) |
| GO2SOCKS5 | ❌ | blog.cmliussss.com,*.ip111.cn,*google.com |
强制走 SOCKS5 的名单 (* 为全局,域名用逗号分隔) |
| DEBUG | ❌ | 1或true |
开发者模式,默认关闭调试日志功能(console.log),设置1或true则开启调试日志功能 |
| OFF_LOG | ❌ | 1或true |
默认开启日志记录功能,设置1或true则关闭日志记录功能 |
| BEST_SUB | ❌ | 1或true |
默认关闭作为优选订阅生成器的功能,设置1或true则开启该功能 |
| PRELOAD_RACE_DIAL | ❌ | 1或true |
默认关闭作为预加载竞速拨号的功能,设置1或true则开启该功能 |
cloudfare操作步骤
绑定自定义域(没有的可以去DNSHE申请一个免费的)
尽量使用二级域名,不要直接用根域名,需要等待 TLS 证书签发完成后再测试。CNAME记录直接在 Cloudflare DNS 页添加
绑定KV命名空间。
进入 设置 -> 绑定 -> 添加绑定,选择 KV 命名空间,绑定名必须填:KV。
源码里直接读取的绑定名就是 KV,填错了后台配置、日志、优选地址都无法持久化。
绑定完成后,重新部署一次项目。
管理面板入口
https://(你的自定义域)/admin
优化设置
1.修复 ProxyIP(必做,效果最显著)
背景:CF Worker 被 Cloudflare 限制,无法直接访问 Cloudflare 托管的网站,需要 ProxyIP 做中转。ProxyIP 失效是节点大量失败最主要的原因。
进后台 → 设置 → ProxyIP,填入多个备用地址,用换行分隔,失效时自动切换:
proxyip.cmliussss.net,
cdn-all.xn–b6gac.eu.org,
cdn.xn–b6gac.eu.org,
edgetunnel.anycast.eu.org,
cdn.anycast.eu.org
验证是否有效:https://check.proxyip.cmliussss.net/
预期效果:配置后,连接失败的节点基本消除。
2.用本地测速找最优 IP(核心优化)
edgetunnel 默认随机抽取 CF IP,质量完全靠运气。通过本地测速找到对你当前网络延迟最低的 IP,是最直接有效的优化。
下载 CloudflareSpeedTest
Windows
前往 CloudflareSpeedTest Releases 下载 cfst_windows_amd64.zip,,解压后得到 cfst.exe,在解压目录打开终端运行,也可以直接双击程序运行。
macOS
mkdir ~/cfst && cd ~/cfst
curl -L -o cfst.zip https://ghfast.top/https://github.com/XIU2/CloudflareSpeedTest/releases/download/v2.3.4/cfst_darwin_amd64.zip
unzip cfst.zip
chmod +x cfst
Linux
mkdir ~/cfst && cd ~/cfst
wget https://ghfast.top/https://github.com/XIU2/CloudflareSpeedTest/releases/download/v2.3.4/cfst_linux_amd64.tar.gz
tar -zxvf cfst_linux_amd64.tar.gz
chmod +x cfst
注意:关闭代理后再测速
必须关闭代理,否则测出的是代理服务器到 CF 的延迟,对本机没有意义。
用 HTTPing 模式测速
./cfst -httping -tl 150 -sl 5 -p 15
| 参数 | 含义 |
|---|---|
| -httping | HTTP 测速模式,必须加,过滤掉”TCP 通但 HTTP 代理不可用”的假可用 IP |
| -tl 150 | 只保留延迟 150ms 以内的 IP |
| -sl 5 | 只保留下载速度 5MB/s 以上的 IP |
| -p 15 | 输出前 15 个结果 |
实测参考(每次不同,仅示例):
| IP 地址 | 延迟(ms) | 速度(MB/s) | 地区 |
|---|---|---|---|
| 162.159.45.46 | 44.10 | 13.03 | NRT(东京) |
| 162.159.44.188 | 45.34 | 11.82 | NRT(东京) |
| 172.64.53.100 | 59.02 | 13.42 | NRT(东京) |
| 172.64.52.232 | 62.29 | 13.43 | NRT(东京) |
| 162.159.38.157 | 64.46 | 12.82 | NRT(东京) |
把测速结果填入后台
后台 → 优选订阅生成 → 模式选「自定义订阅(支持汇聚订阅)」
格式为 IP地址:端口#备注名,每行一个:
162.159.45.46:443#NRT优选1
162.159.44.188:443#NRT优选2
172.64.53.100:443#NRT优选3
172.64.52.232:443#NRT优选4
162.159.38.157:443#NRT优选5
3. 开启「优选IP作为反代IP」(推荐)
原理:开启后,订阅中的优选 IP 同时也被当作 ProxyIP 使用,入口和出口合并为同一个 IP,减少一跳中转,理论上降低 5~30ms 延迟。
后台 → 优选订阅生成 → 「优选IP作为反代IP」开关 → 开启
开启后重新拉取订阅即可生效。
中国移动:
中国电信:
4. 开启 ECH(推荐)
原理:ECH(Encrypted Client Hello)是 TLS 1.3 的扩展,对握手阶段的 SNI 字段加密。GFW 无法通过 SNI 识别目标域名,从而减少针对性的 QoS 限速和干扰,降低延迟抖动,提高连接稳定性。
前提:Clash Verge Rev 使用 Meta 内核,已原生支持 ECH,可以直接用。
后台 → ECH 配置 → 开启,填入:
| 字段 | 推荐值 |
|---|---|
| ECH DNS | cloudflare-ech.com |
| ECH SNI | 留空,或填你自己的伪装域名 |
保存后重新拉取订阅,节点链接中会自动附加 ECH 参数。
如果开启后节点全部不通,先关掉 ECH 验证基础链路是否正常,再重新测试。ECH 应该在基础链路稳定的前提下开启。
5. 测试不同端口(可选)
默认端口 443,但不同运营商对不同端口的 QoS 策略不同,可以逐一测试:
后台 → 优选订阅生成 → 「指定优选端口」
| 端口 | 说明 |
|---|---|
| 443 | 默认,最通用 |
| 2053 | 联通/移动可能更快 |
| 2083 | CF 支持的备用 TLS 端口 |
| 2087 | CF 支持的备用 TLS 端口 |
| 8443 | 备用 |
建议每个端口单独跑一次测速,对比延迟后选最低的固定使用。
6. 定期维护
CF IP 质量会随时间变化,建议每 1~2 周重新测速一次:
7. 常见问题
测速工具测出来很好,但 Clash 里还是 Timeout
原因:TCP 测速会过滤不掉”TCP 可达但 HTTP 代理不可用”的 IP,必须用 HTTPing 模式。
解决:测速时加 -httping 参数,再把结果填入自定义订阅。
ProxyIP 填了多个,但节点还是失败
原因:填入的 ProxyIP 本身已经失效,或格式有误。
解决:用验证工具 check.proxyip.cmliussss.net 逐一测试,只保留验证通过的地址。
开了 ECH 之后节点全部不通
原因:客户端版本、DNS 配置或链路环境不支持 ECH。
解决:先关闭 ECH,确认基础链路正常后,再用保守配置(ECH DNS 填 cloudflare-ech.com,ECH SNI 留空)重新测试。
测速之后多久需要重测
原因:CF IP 的路由质量会随时间变化,优选结果不是永久有效的。
解决:建议每周重测1-2次,或发现节点明显变慢时重测。





