主题
Hapi 进阶配置: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核心技术要点
- 优选 IP 调度器:isp.qzz.io 会根据用户的网络环境(电信 / 联通 / 移动),返回当前速度最快、延迟最低的 Cloudflare 官方 CDN 节点 IP
- Cloudflare for SaaS:通过 Custom Hostnames 功能,把「访问域名」和「隧道域名」解耦,实现「走优选 IP 进隧道」
- DNS 链式解析:通过 CNAME 链,把用户请求引导到优选 IP 池,同时保持 Cloudflare 对域名的正确识别
💡 关于优选 IP 调度器
isp.qzz.io 是一个社区维护的 Cloudflare 优选 IP 调度服务,会自动测速并返回对你当前网络环境最优的 Cloudflare CDN 节点。
🛠️ 配置步骤
前置准备
你需要准备两个 Cloudflare 域名:
- 主力域名:用户实际访问的域名(例如:
hapi.nassaapi.xyz) - 辅助域名:承载 Cloudflare Tunnel(例如:
ttdk.fun,可以是另一个便宜域名) - 两个域名都需要托管在 Cloudflare
⚠️ 重要说明
- 主力域名和辅助域名不能是同一个域名
- 辅助域名需要是你自己拥有的,不能用别人的
- 两个域名都必须在 Cloudflare 上管理
第一步:配置 Cloudflare Tunnel(辅助域名)
在辅助域名(例如 ttdk.fun)上设置 Tunnel:
- 进入 Cloudflare,选择辅助域名
- 进入 Zero Trust → Access → Tunnels
- 创建隧道并安装
cloudflared - 配置公共主机名:
- 子域名:
hapi - 域名:
ttdk.fun - 服务:
http://localhost:3006
- 子域名:
完成后你应该能通过 hapi.ttdk.fun 访问你的 Hapi 服务。
第二步:启用 Cloudflare for SaaS(辅助域名)
在辅助域名(ttdk.fun)上启用 SaaS 功能:
- 进入 Cloudflare 控制台 → 选择
ttdk.fun域名 - 进入 SSL/TLS → Custom Hostnames
- 点击 Add Custom Hostname
- 填写:
- Custom Hostname:
hapi.nassaapi.xyz(主力域名) - Wildcard:不勾选
- Custom Hostname:
- 点击 Add Custom Hostname
💡 提示
添加后会生成 2 条 TXT 验证记录,先不着急配置,继续下一步。
第三步:配置 DNS 解析(主力域名)
在主力域名(nassaapi.xyz)的 DNS 设置中添加以下记录:
3.1 添加 SSL 验证记录
从第二步中复制 Cloudflare 生成的 2 条 TXT 记录,添加到主力域名的 DNS:
| 类型 | 名称 | 值 |
|---|---|---|
TXT | _acme-challenge.hapi | xxxxxxxxxx(从 CF 复制) |
TXT | _acme-challenge.hapi | yyyyyyyyyy(从 CF 复制) |
3.2 添加 CNAME 记录
| 类型 | 名称 | 值 | 代理状态 |
|---|---|---|---|
CNAME | cdn | isp.qzz.io | ☁️ 仅限 DNS(灰色) |
CNAME | hapi | cdn.nassaapi.xyz | ☁️ 仅限 DNS(灰色) |
🚨 关键配置
必须关闭小黄云(代理状态设为「仅限 DNS」)!
如果开启代理,会导致 DNS 解析链中断,无法触发优选 IP。
第四步:配置回退源(辅助域名)
在辅助域名(ttdk.fun)的 DNS 设置中:
| 类型 | 名称 | 值 | 代理状态 |
|---|---|---|---|
CNAME | hapi | [你的隧道ID].cfargotunnel.com | 🟠 已代理(橙色) |
💡 提示
这条记录通常在创建 Tunnel 时自动生成。确保小黄云是开启状态(已代理)。
第五步:等待 SSL 证书生效
- 回到辅助域名的 SSL/TLS → Custom Hostnames 页面
- 查看
hapi.nassaapi.xyz的状态 - 等待几分钟,状态变为 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 + SaaS | Tunnel + Custom Hostname + 回退源(小黄云开) |
🔧 故障排查
SSL 证书一直显示 Pending?
- 检查 TXT 记录是否正确添加到主力域名
- 检查记录是否为「仅限 DNS」状态
- 等待 30 分钟后仍未生效,删除并重新添加
访问显示 526 错误?
说明 Custom Hostname 的 SSL 握手失败。检查辅助域名的 SSL/TLS 模式为 Full 或 Full (strict)。
访问仍然很慢?
- 确认主力域名的 CNAME 指向了
isp.qzz.io - 确认主力域名的小黄云全部关闭
- 尝试更换优选 IP 服务(见下方进阶优化)
🚀 进阶优化
自建优选 IP 服务
如果不想依赖 isp.qzz.io,可以自建优选 IP:
- CloudflareSpeedTest:定时测速
- 配合 DDNS 工具,动态更新 CNAME 到最优 IP
多运营商优化
针对不同运营商(电信/联通/移动)提供不同的 IP 池,进一步优化延迟。
📚 相关资源
⚠️ 安全提醒
- 隧道 ID 不要泄露给他人
- 如果使用公网访问,建议启用 Cloudflare 的 Access 策略
- 定期检查访问日志,排查异常流量
💡 总结
通过双域名 + 优选 IP + Cloudflare for SaaS 的组合,你可以在完全免费的前提下,获得接近专线的访问体验。
非常适合:
- 家宽用户(无公网 IP)
- 海外 VPS 部署(需要国内用户访问)
- 需要高速稳定远程控制 AI 编程助手的场景