Cloudflare Tunnel + WARP 兼容性陷阱:所有子域名 HTTP 跳转 HTTPS 失效折腾实录

作者:

在

本 Homelab 采用 Cloudflare Tunnel 零公网 IP 暴露内网服务,包含 1Panel、NAS、WordPress 等业务,域名体系为 *.ikunv.com。

云端已完整配置:

  • SSL/TLS 模式:严格 / 完全 HTTPS
  • 开启「始终使用 HTTPS」
  • 页面规则、转换规则全部配置 强制 HTTP→HTTPS 301 跳转

全局恒定前提

  • 所有域名 HTTPS 直接访问 100% 正常
  • 全程故障只存在于连接Warp后 HTTP 访问无法触发跳转HTTPS
  • 后端服务、反向代理、证书、Tunnel 连通性无任何异常

问题现象

✅ 非 WARP 全部环境:完全正常

直连宽带、手机流量、第三方 VPN、OpenVPN,所有网络下:

http://任意子域名 → 正常 301 跳转 HTTPS

❌ 只要连接 Cloudflare WARP:必现故障

只要设备启用 WARP 客户端,无论设备、账号、网络:

http://任意子域名 → 400 Bad Request

固定报错:

The plain HTTP request was sent to HTTPS port

多设备、多账号、多环境交叉验证(本人实测补充)

为了排除设备环境、账号差异、客户端 Bug、网络特殊性,我做了完整对照测试,彻底锁定问题触发条件:

测试设备

  1. 主力电脑(Windows)
  2. 备用手机(Android)

测试账号环境

  1. 个人 WARP 账号
  2. 另一套独立团队 Zero Trust 账号(不同组织、不同密钥)

对照网络

  1. 本地直连网络
  2. 第三方商业 VPN(非 Cloudflare 链路)
  3. 两套不同账号的 Cloudflare WARP

最终统一测试结论

  • 只要开启 WARP(无论设备、无论账号、无论团队环境):HTTP 全部 400、跳转失效
  • 只要不走 WARP(直连 / 第三方 VPN / 普通代理):跳转全部正常

由此彻底排除:

  • 本机环境问题
  • 单一账号配置问题
  • 特定客户端版本 Bug
  • 本地路由 / 软路由特殊规则干扰

怀疑Cloudflare WARP 官方链路与 Tunnel 兼容性冲突

排查全过程

第一阶段:误判 OpenClash Fake-IP 干扰(排查失败)

最初怀疑旁路由 Fake-IP 虚拟解析导致跳转异常。

操作:

  • Fake-IP-Filter 加入 +*.ikunv.com
  • 强制真实 DNS + 公共 fallback DNS

结果:

仅优化非 WARP 环境解析,对 WARP 400 问题完全无效,故障依旧复现。

证明:和本地 DNS、Fake-IP、软路由无关。

第二阶段:排查 Tunnel 协议与 TLS 配置(彻底排除)

为了排除后端协议不匹配,反复全量测试:

  • Tunnel Service 交替切换 HTTP / HTTPS
  • 反复开关 noTLSVerify: true
  • 云端 SSL 严格模式保持开启

实测结论:

无论怎么调整 Tunnel TLS、验证开关、协议模式,WARP 下 HTTP 400 报错完全不会改善。

再次确认:

后端 HTTPS 访问全程稳定,问题不在服务端、不在 Tunnel、不在证书,只在 WARP 链路预处理阶段。

第三阶段:穷尽云端规则修复(全部无效)

完整测试官方所有常规解决方案:

  • 重建页面规则、重写跳转表达式
  • 删除重建 Tunnel、更换 Token
  • 强制 HTTP2 协议启动 cloudflared
  • 软路由强制域名直连
  • 关闭 WARP 深度包检测、智能路由

所有常规方案全部无效。

根因最终定位

结合多环境对照测试结果可以确定:

当设备流量进入 WARP 官方内网隧道 后,Cloudflare 会对同生态的 Tunnel 流量做特殊协议预处理:

  • 用户明文 HTTP 请求
  • 在官方链路内部被异常协议升级 / 篡改
  • 最终流量到达节点时协议不匹配
  • 直接抛出 400 端口协议错误

此故障发生在 Cloudflare 骨干网链路层面

不经过用户本地配置、不经过后端代理、不受用户任何设置控制

判断可能为Cloudflare Tunnel + WARP 兼容性缺陷,用户侧无法全局修复。

临时规避方案

解决方案

Zero Trust → Settings → WARP Client → Split Tunnels

将 *.ikunv.com 加入 排除域名列表

效果

本机访问:HTTP 跳转恢复正常、400 消失

硬性局限

  1. 仅本机生效:该策略是本地客户端规则
  2. 外网所有 WARP 用户依旧报错
  3. 无法从云端彻底根治,只能终端规避

最终状态汇总

✅ 直连 / 第三方 VPN / 普通网络:跳转正常

✅ 本机 WARP 拆分隧道排除后:访问正常

❌ 外网任意 WARP 用户访问 HTTP:依旧 400

❌ 无云端彻底修复方案

技术总结

本次完整复盘了 Cloudflare Tunnel 与 WARP 兼容性疑难故障,通过控制变量法完成多维度交叉测试:覆盖双设备、多 WARP 团队账号、第三方 VPN、本地直连等网络环境,精准锁定故障触发条件。

逐层排除了本地 DNS、Fake-IP 解析、Tunnel 协议配置、云端 HTTPS 重写规则、客户端参数等干扰因素,最终定位问题为 Cloudflare 链路兼容问题,非用户配置问题导致。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注