Files
mnote/design/cloudflare.md
T

58 lines
3.5 KiB
Markdown
Raw Normal View History

2026-01-15 20:54:21 +08:00
在 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 协议**,这两个操作对延迟的优化最明显。
要不要我帮你整理一份**隧道延迟测试的脚本**,可以自动检测不同区域节点的延迟并推荐最优选项?