Files
mnote/design/cloudflare.md
T
2026-01-15 20:54:21 +08:00

58 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
在 Cloudflare Tunnel 中遇到本地到 Cloudflare 的高延迟,通常和**隧道连接的节点选择、网络路由、本地环境配置**有关,以下是针对性的解决步骤(按优先级排序):
### 一、优先优化:切换 Cloudflare Tunnel 连接的边缘节点
Cloudflare Tunnel 默认会自动选择“最近”的边缘节点,但实际网络路由可能导致延迟高,可手动指定低延迟节点:
1. **查看当前连接的节点**
在本地运行隧道的终端中,执行 `cloudflared tunnel info <你的隧道名称>`,查看输出中的 `Connected to` 字段(如 `ams` 对应阿姆斯特丹节点)。
2. **手动指定低延迟节点**
修改隧道启动命令,添加 `--edge-ip-version auto --region <目标区域代码>` 参数(区域代码参考 Cloudflare 边缘节点列表,如 `hkg` 对应香港、`sfo` 对应旧金山):
```bash
# 示例:指定香港节点(适合国内/亚洲地区)
cloudflared tunnel run --region hkg <你的隧道名称>
```
3. **测试不同区域节点的延迟**:
用 `ping` 测试 Cloudflare 边缘节点的延迟(如 `ping hkg.cloudflare.com`),选择延迟最低的区域(通常国内选 `hkg`、`sin` 新加坡,欧美选 `sfo`、`lax`)。
### 二、检查本地网络与路由问题
1. **测试本地网络基础延迟**
先排除本地网络本身的问题:
- 测试本地到 Cloudflare 公共 IP 的延迟:`ping 1.1.1.1`Cloudflare DNS 地址),若延迟本身超过 100ms,说明本地网络到 Cloudflare 骨干网的路由存在拥堵。
- 切换本地网络(如从 Wi-Fi 换有线、换不同运营商网络),验证是否是网络环境导致。
2. **关闭本地代理/VPN 干扰**
若本地开启了代理、VPN,可能会改变隧道的网络路由,导致延迟升高,建议临时关闭后重新启动隧道测试。
### 三、优化 Cloudflare Tunnel 配置
1. **启用 QUIC 协议**
Cloudflare Tunnel 支持更高效的 QUIC 协议(默认用 HTTP/2),可降低延迟:
在隧道配置文件(通常是 `~/.cloudflared/config.yml`)中添加:
```yaml
protocol: quic
```
然后重启隧道。
2. **调整隧道连接池大小**
增加隧道的连接数,避免单连接拥堵:
在 `config.yml` 中添加:
```yaml
max-conns: 10 # 默认为 4,可适当增大到 8-12
```
### 四、检查 Cloudflare 账号与隧道状态
1. **查看隧道的健康状态**
在 Cloudflare 控制台的“网络→隧道”页面,检查隧道的“状态”是否为“健康”,若显示“不稳定”,可重启本地 `cloudflared` 进程。
2. **确认隧道绑定的域名解析**
若隧道绑定了自定义域名,检查域名的解析是否指向 Cloudflare 边缘节点(而非直接解析到本地 IP),错误的解析会绕开 Cloudflare 导致延迟升高。
### 五、极端情况:更换 Cloudflare 区域
若以上方法无效,可尝试将 Cloudflare 账号的“默认区域”切换到离本地更近的区域:
1. 登录 Cloudflare 控制台,进入“我的个人资料→区域”;
2. 选择离本地物理位置最近的区域(如国内选“Asia”),保存后重新启动隧道。
通过以上步骤,通常能解决大部分 Cloudflare Tunnel 的高延迟问题。优先尝试**切换边缘节点+启用 QUIC 协议**,这两个操作对延迟的优化最明显。
要不要我帮你整理一份**隧道延迟测试的脚本**,可以自动检测不同区域节点的延迟并推荐最优选项?