Aiapi-doc/apps/hapi-advanced.md

288 lines
9.2 KiB
Markdown
Raw Normal View History

2026-05-14 11:01:11 +08:00
# Hapi 进阶配置Cloudflare 优选 IP 高速穿透
2026-05-13 17:03:56 +08:00
**没有公网 IP使用 Cloudflare 优选 IP打造高速内网穿透通道**
2026-05-14 11:01:11 +08:00
> **适用场景**:已配置 Cloudflare Tunnel但访问速度慢、延迟高
> **解决方案**:利用 Cloudflare for SaaS + 优选 IP 服务,绕过拥堵节点
> **前置要求**:已完成 [Hapi 基础配置](/apps/hapi),并拥有两个域名
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
## 📺 视频教程
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
推荐先观看视频:[没有公网 IPCloudflare 优选 IP高速内网穿透 - 哔哩哔哩](https://www.bilibili.com/video/BV1PPy6YzE5C)
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
视频完整演示了配置过程,建议先看一遍再上手操作。
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
## 🎯 你正在解决什么问题
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
### 默认 Tunnel 的痛点
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
直接用 Cloudflare Tunnel 绑定域名时常见以下问题:
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
- ❌ Cloudflare 分配的 Anycast IP 在国内可能被绕路(绕到美国、欧洲)
- ❌ 运营商 QoS 限速,访问速度慢
- ❌ 延迟高达数百毫秒,严重影响使用体验
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
![优选 IP 前的访问速度](https://minio.oneinai.com/oneinai/images/docs/hapi/优选前.png)
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
### 优选 IP 方案的优势
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
通过本教程的配置,可以做到:
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
- ✅ 强制流量走对国内网络友好的节点(香港、新加坡等)
- ✅ 大幅提升访问速度,延迟降至几十毫秒
- ✅ 完全免费,利用 Cloudflare 企业级功能
- ✅ 稳定性高,自动切换最优路由
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
![优选 IP 后的访问速度](https://minio.oneinai.com/oneinai/images/docs/hapi/优选后.png)
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
> 🚀 **速度提升对比**
> 从两张对比图可以看到,优选 IP 后访问延迟从数百毫秒降到几十毫秒,页面加载也更顺畅。
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
## 🔍 原理解析
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
### 流量走向链路
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
当用户访问你的域名时,流量按以下路径流转:
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
```
用户浏览器
DNS 解析hapi.justdo.xin
CNAME → cdn.ttdk.fun
CNAME → isp.qzz.io优选 IP 调度器)
返回最优 Cloudflare IP根据用户运营商
Cloudflare 边缘节点(通过 Host Header 识别)
SaaS 路由hapi.justdo.xin → hapi.ttdk.fun
Cloudflare Tunnel加密隧道
你的本地服务器 localhost:3006
```
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
> 💡 **提示**
> [isp.qzz.io](https://isp.qzz.io/) 在这里充当"智能交警",根据你的网络环境自动选择最优路线。
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
### 核心技术要点
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
1. **优选 IP 调度器**[isp.qzz.io](https://isp.qzz.io/) 会根据用户的运营商(电信/联通/移动),返回当前速度最快、延迟最低的 Cloudflare 官方 CDN 节点 IP。
2. **Cloudflare for SaaS**:通过 Custom Hostnames 功能把"访问域名"和"隧道域名"解耦,实现"走优选 IP 进隧道"。
3. **DNS 链式解析**:通过 CNAME 链把用户请求引导到优选 IP同时保持 Cloudflare 对域名的正确识别。
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
> 💡 **关于优选 IP 调度器**
> [isp.qzz.io](https://isp.qzz.io/) 是社区维护的 Cloudflare 优选 IP 调度服务,会自动测速并返回对当前网络环境最优的 Cloudflare CDN 节点。访问该网站可查看更多说明。
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
## 🛠️ 配置步骤
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
### 前置准备
2026-05-13 17:03:56 +08:00
你需要准备:
2026-05-14 11:01:11 +08:00
1. **主力域名**:用于展示给用户访问(例如:`hapi.justdo.xin`
2. **辅助域名**:用于承载 Cloudflare Tunnel例如`ttdk.fun`
3. 两个域名都需要托管在 Cloudflare
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
> ⚠️ **重要说明**
> - 主力域名和辅助域名**不能是同一个域名**
> - 辅助域名需要是你自己拥有的,不能用别人的
> - 两个域名都必须在 Cloudflare 上管理
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
### 第一步:配置 Cloudflare Tunnel辅助域名
2026-05-13 17:03:56 +08:00
在辅助域名(例如 `ttdk.fun`)上设置 Tunnel
2026-05-14 11:01:11 +08:00
1. 登录 Cloudflare选择辅助域名
2. 进入 **Zero Trust → Access → Tunnels**
3. 创建隧道并安装 cloudflared
4. 配置公共主机名:
- **子域名**`hapi`
- **域名**`ttdk.fun`
- **服务**`http://localhost:3006`
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
完成后,你应该可以通过 `hapi.ttdk.fun` 访问 Hapi 服务。
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
### 第二步:启用 Cloudflare for SaaS辅助域名
2026-05-13 17:03:56 +08:00
在辅助域名(`ttdk.fun`)上启用 SaaS 功能:
2026-05-14 11:01:11 +08:00
1. 进入 Cloudflare 控制台
2. 选择 `ttdk.fun` 域名
3. 进入 **SSL/TLS → Custom Hostnames**
4. 点击 **Add Custom Hostname**
5. 填写:
- **Custom Hostname**`hapi.justdo.xin`(主力域名)
- **Wildcard**:不勾选
6. 点击 **Add Custom Hostname**
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
> 💡 **提示**
> 添加后会生成 2 条 TXT 验证记录,先保留页面,下一步会用到。
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
### 第三步:配置 DNS 解析(主力域名)
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
在主力域名(`justdo.xin`)的 DNS 设置中添加以下记录。
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
#### 3.1 添加 SSL 验证记录
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
把第二步生成的 2 条 TXT 记录添加到主力域名的 DNS
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
| 类型 | 名称 | 内容 | 代理状态 |
| --- | --- | --- | --- |
| TXT | `_acme-challenge.hapi` | `xxxxxxxxxx`(从 SaaS 页面复制) | 仅限 DNS |
| TXT | `_acme-challenge.hapi` | `yyyyyyyyyy`(从 SaaS 页面复制) | 仅限 DNS |
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
#### 3.2 添加 CNAME 记录
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
| 类型 | 名称 | 目标 | 代理状态 |
| --- | --- | --- | --- |
| CNAME | `cdn` | `isp.qzz.io` | 仅限 DNS ⚠️ |
| CNAME | `hapi` | `cdn.justdo.xin` | 仅限 DNS ⚠️ |
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
> 🚨 **关键配置**
> **必须关闭小黄云(代理状态设为「仅限 DNS」**。
> 一旦开启代理,会导致 DNS 解析链中断,无法触发优选 IP。
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
### 第四步:配置回退源(辅助域名)
2026-05-13 17:03:56 +08:00
在辅助域名(`ttdk.fun`)的 DNS 设置中:
2026-05-14 11:01:11 +08:00
| 类型 | 名称 | 目标 | 代理状态 |
| --- | --- | --- | --- |
| CNAME | `hapi` | `[你的隧道ID].cfargotunnel.com` | 已代理 ✅ |
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
> 💡 **提示**
> 这条记录通常在创建 Tunnel 时会自动生成。请确保小黄云为**开启**状态(已代理)。
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
### 第五步:等待 SSL 证书生效
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
1. 回到辅助域名的 **SSL/TLS → Custom Hostnames** 页面
2. 查看 `hapi.justdo.xin` 的状态
3. 等待几分钟,状态变为 **Active有效** 即配置成功
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
> ⏳ **耐心等待**
> SSL 证书签发通常需要 5-15 分钟。如超过 30 分钟仍未生效,请检查 TXT 记录是否正确添加。
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
## ✅ 验证配置
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
### 测试访问
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
在浏览器中访问 `https://hapi.justdo.xin`,能正常打开 Hapi 界面即表示配置成功。
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
### 测试速度提升
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
使用 ping 或测速工具对比延迟。
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
**优化前**
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
```bash
ping hapi.ttdk.fun
# 延迟通常 200-500ms
```
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
**优化后**
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
```bash
ping hapi.justdo.xin
# 延迟通常 20-100ms
```
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
## 🎓 角色分配总结
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
| 角色 | 域名示例 | 作用 |
| --- | --- | --- |
| **主力域名** | `hapi.justdo.xin` | 最终展示给用户访问的地址 |
| **辅助域名** | `hapi.ttdk.fun` | 承载 Tunnel 的「回退源」,用户不直接感知 |
| **优选 IP 调度器** | [isp.qzz.io](https://isp.qzz.io/) | 像「交警」,告诉流量走哪条不堵的路 |
| **中转域名** | `cdn.justdo.xin` | 作为跳板,把主力域名引向优选 IP 池 |
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
## 🔧 故障排查
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
### SSL 证书一直显示 Pending
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
**可能原因**
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
- TXT 记录添加错误或未生效
- DNS 传播尚未完成
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
**解决方法**
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
1. 使用 [DNS 检查工具](https://dnschecker.org/) 验证 TXT 记录
2. 等待 DNS 全球传播(最长 24 小时)
3. 必要时重新添加 Custom Hostname
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
### 访问显示 526 错误
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
**可能原因**
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
- 辅助域名的 `hapi` 记录未开启代理(小黄云)
- Tunnel 未正确配置
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
**解决方法**
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
1. 确认 `hapi.ttdk.fun` 的小黄云为**开启**状态
2. 检查 Tunnel 是否正常运行
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
### 访问仍然很慢
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
**可能原因**
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
- 主力域名的 CNAME 记录开启了代理
- DNS 解析链断裂
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
**解决方法**
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
1. 确认 `hapi.justdo.xin``cdn.justdo.xin` 的小黄云均为**关闭**状态
2. 使用 `nslookup` 检查 DNS 解析链是否完整
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
## 🚀 进阶优化
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
### 自建优选 IP 服务
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
如果你追求更稳定的体验,可以:
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
1. 使用 CloudflareSpeedTest 工具本地测速
2. 手动选择最优 IP
3. 创建自己的优选域名,替代 `isp.qzz.io`
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
### 多运营商优化
2026-05-13 17:03:56 +08:00
可以针对不同运营商配置不同的优选路径:
2026-05-14 11:01:11 +08:00
- 电信用户:`cdn-ct.yourdomain.com`
- 联通用户:`cdn-cu.yourdomain.com`
- 移动用户:`cdn-cm.yourdomain.com`
2026-05-13 17:03:56 +08:00
通过 DNS 智能解析GeoDNS根据用户运营商返回不同的 CNAME 记录。
2026-05-14 11:01:11 +08:00
## 📚 相关资源
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
- [Cloudflare for SaaS 官方文档](https://developers.cloudflare.com/cloudflare-for-platforms/cloudflare-for-saas/)
- [Cloudflare Tunnel 文档](https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/)
- [isp.qzz.io - 优选 IP 调度器](https://isp.qzz.io/)
- [视频教程Cloudflare 优选 IP 配置](https://www.bilibili.com/video/BV1PPy6YzE5C)
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
## ⚠️ 安全提醒
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
1. 不要泄露 Tunnel 令牌
2. 定期检查 Custom Hostnames 配置
3. [isp.qzz.io](https://isp.qzz.io/) 是社区维护的优选 IP 服务,可靠但非官方,必要时可自建
4. 建议配合 Cloudflare Access 限制访问来源
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
## 💡 总结
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
通过这套配置,你可以做到:
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
- ✅ 不花一分钱
- ✅ 利用 Cloudflare 企业级 SaaS 功能
- ✅ 把原本数百毫秒延迟的内网穿透优化到接近直连的体验
- ✅ 打造一条「高速内网穿透通道」
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
这是目前免费方案中,提升 Cloudflare 内网穿透速度的**天花板级别配置**。
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
---
2026-05-13 17:03:56 +08:00
2026-05-14 11:01:11 +08:00
**下一步**:配置完成后,你就可以在任何地方高速访问 Hapi 服务了 🎉