Skip to content

Hapi 进阶配置:Cloudflare 优选 IP 高速穿透

� 视频教程推荐

没有公网 IP?Cloudflare 优选 IP,高速内网穿透 - 哔哩哔哩

视频详细演示了完整的配置过程,强烈建议先观看视频再进行操作

🎯 你正在解决什么问题?

默认 Tunnel 的痛点

当你直接使用 Cloudflare Tunnel 绑定域名时:

  • ❌ Cloudflare 分配的 Anycast IP 在国内可能被绕路(绕到美国、欧洲)
  • ❌ 运营商 QoS 限速,访问速度慢
  • ❌ 延迟高达几百毫秒,严重影响使用体验

优选 IP 方案的优势

通过本教程的配置:

  • ✅ 强制流量走对国内网络友好的节点(香港、新加坡等)
  • ✅ 大幅提升访问速度,延迟降低到几十毫秒
  • 完全免费,利用 Cloudflare 企业级功能
  • ✅ 稳定性高,自动切换最优路由

🔍 原理解析

流量走向链路

当用户访问你的域名时,流量是这样流转的:

text
用户浏览器
  ↓ DNS 解析:hapi.nassaapi.xyz
  ↓ CNAME → cdn.nassaapi.xyz
  ↓ CNAME → isp.qzz.io(优选 IP 调度器)
  ↓ 返回最优 Cloudflare IP(根据用户运营商)
Cloudflare 边缘节点(通过 Host Header 识别)
  ↓ SaaS 路由:hapi.nassaapi.xyz → hapi.ttdk.fun
  ↓ Cloudflare Tunnel(加密隧道)
你的本地服务器 localhost:3006

核心技术要点

  1. 优选 IP 调度器isp.qzz.io 会根据用户的网络环境(电信 / 联通 / 移动),返回当前速度最快、延迟最低的 Cloudflare 官方 CDN 节点 IP
  2. Cloudflare for SaaS:通过 Custom Hostnames 功能,把「访问域名」和「隧道域名」解耦,实现「走优选 IP 进隧道」
  3. DNS 链式解析:通过 CNAME 链,把用户请求引导到优选 IP 池,同时保持 Cloudflare 对域名的正确识别

💡 关于优选 IP 调度器

isp.qzz.io 是一个社区维护的 Cloudflare 优选 IP 调度服务,会自动测速并返回对你当前网络环境最优的 Cloudflare CDN 节点。

🛠️ 配置步骤

前置准备

你需要准备两个 Cloudflare 域名

  1. 主力域名:用户实际访问的域名(例如:hapi.nassaapi.xyz
  2. 辅助域名:承载 Cloudflare Tunnel(例如:ttdk.fun,可以是另一个便宜域名)
  3. 两个域名都需要托管在 Cloudflare

⚠️ 重要说明

  • 主力域名和辅助域名不能是同一个域名
  • 辅助域名需要是你自己拥有的,不能用别人的
  • 两个域名都必须在 Cloudflare 上管理

第一步:配置 Cloudflare Tunnel(辅助域名)

在辅助域名(例如 ttdk.fun)上设置 Tunnel:

  1. 进入 Cloudflare,选择辅助域名
  2. 进入 Zero Trust → Access → Tunnels
  3. 创建隧道并安装 cloudflared
  4. 配置公共主机名
    • 子域名:hapi
    • 域名:ttdk.fun
    • 服务:http://localhost:3006

完成后你应该能通过 hapi.ttdk.fun 访问你的 Hapi 服务。

第二步:启用 Cloudflare for SaaS(辅助域名)

在辅助域名(ttdk.fun)上启用 SaaS 功能:

  1. 进入 Cloudflare 控制台 → 选择 ttdk.fun 域名
  2. 进入 SSL/TLS → Custom Hostnames
  3. 点击 Add Custom Hostname
  4. 填写:
    • Custom Hostnamehapi.nassaapi.xyz(主力域名)
    • Wildcard:不勾选
  5. 点击 Add Custom Hostname

💡 提示

添加后会生成 2 条 TXT 验证记录,先不着急配置,继续下一步。

第三步:配置 DNS 解析(主力域名)

主力域名nassaapi.xyz)的 DNS 设置中添加以下记录:

3.1 添加 SSL 验证记录

从第二步中复制 Cloudflare 生成的 2 条 TXT 记录,添加到主力域名的 DNS:

类型名称
TXT_acme-challenge.hapixxxxxxxxxx(从 CF 复制)
TXT_acme-challenge.hapiyyyyyyyyyy(从 CF 复制)

3.2 添加 CNAME 记录

类型名称代理状态
CNAMEcdnisp.qzz.io☁️ 仅限 DNS(灰色)
CNAMEhapicdn.nassaapi.xyz☁️ 仅限 DNS(灰色)

🚨 关键配置

必须关闭小黄云(代理状态设为「仅限 DNS」)!

如果开启代理,会导致 DNS 解析链中断,无法触发优选 IP

第四步:配置回退源(辅助域名)

在辅助域名(ttdk.fun)的 DNS 设置中:

类型名称代理状态
CNAMEhapi[你的隧道ID].cfargotunnel.com🟠 已代理(橙色)

💡 提示

这条记录通常在创建 Tunnel 时自动生成。确保小黄云是开启状态(已代理)。

第五步:等待 SSL 证书生效

  1. 回到辅助域名的 SSL/TLS → Custom Hostnames 页面
  2. 查看 hapi.nassaapi.xyz 的状态
  3. 等待几分钟,状态变为 Active(有效) 即表示配置成功

⏳ 耐心等待

SSL 证书签发通常需要 5–15 分钟,请耐心等待。如果超过 30 分钟仍未生效,检查 TXT 记录是否正确添加。

✅ 验证配置

测试访问

打开浏览器访问 https://hapi.nassaapi.xyz,应该能正常打开 Hapi 管理界面。

测试速度提升

使用 curl 测试延迟:

bash
# 测试延迟
curl -w "@-" -o /dev/null -s https://hapi.nassaapi.xyz <<'EOF'
DNS 解析时间: %{time_namelookup}s
TCP 建连时间: %{time_connect}s
首字节时间: %{time_starttransfer}s
总耗时:      %{time_total}s
EOF

配置优选 IP 前后,首字节时间会从几百毫秒降低到几十毫秒。

🎓 角色分配总结

域名角色作用关键配置
主力域名 nassaapi.xyz对外展示CNAME 到 cdn.*isp.qzz.io(小黄云
辅助域名 ttdk.fun承载 Tunnel + SaaSTunnel + Custom Hostname + 回退源(小黄云

🔧 故障排查

SSL 证书一直显示 Pending?

  • 检查 TXT 记录是否正确添加到主力域名
  • 检查记录是否为「仅限 DNS」状态
  • 等待 30 分钟后仍未生效,删除并重新添加

访问显示 526 错误?

说明 Custom Hostname 的 SSL 握手失败。检查辅助域名的 SSL/TLS 模式为 FullFull (strict)

访问仍然很慢?

  • 确认主力域名的 CNAME 指向了 isp.qzz.io
  • 确认主力域名的小黄云全部关闭
  • 尝试更换优选 IP 服务(见下方进阶优化)

🚀 进阶优化

自建优选 IP 服务

如果不想依赖 isp.qzz.io,可以自建优选 IP:

多运营商优化

针对不同运营商(电信/联通/移动)提供不同的 IP 池,进一步优化延迟。

📚 相关资源

⚠️ 安全提醒

  • 隧道 ID 不要泄露给他人
  • 如果使用公网访问,建议启用 Cloudflare 的 Access 策略
  • 定期检查访问日志,排查异常流量

💡 总结

通过双域名 + 优选 IP + Cloudflare for SaaS 的组合,你可以在完全免费的前提下,获得接近专线的访问体验。

非常适合:

  • 家宽用户(无公网 IP)
  • 海外 VPS 部署(需要国内用户访问)
  • 需要高速稳定远程控制 AI 编程助手的场景

和谐、友善、互助、开心