dpl/docs/maintenance/CLOUD_FLARE_AUDIT.md

11 KiB
Raw Permalink Blame History

Cloudflare 订阅配置与调优审查

核对日期:2026-10-11。依据用户最初的 DNS/橙云、独立网关、AnyTLS 节点、共享资源保护和追加真实 IP 自动同步要求重新建立检查项,并补查订阅客户端兼容性及性能设置。随后用户追加授权原机场 fu101.gembox-sub.com 的 Cloudflare 调优,并要求缓存规则覆盖将来更换的订阅子域名。不是只重验原聊天留下的待办。

初次审查为只读;后续按用户追加授权修改了 Cloudflare 缓存和配置规则,并完成有效订阅复验。网关、面板、节点代码及数据库配置没有变更,服务没有重启。现状可以确认;不能仅凭现状证明某项过去未做一定由浏览器权限造成,或保证所有潜在优化都已穷尽。

现场结果

项目 本轮证据 结论
DNS/代理边界 c2 A=65.99.193.129、已代理;us01 A=64.44.115.18、仅 DNS 符合订阅走 CF、原生 AnyTLS 不走普通橙云的设计
严格回源 TLS dpl 区域页面 Full (strict),新增的 BIC 配置规则未设置 SSL 已复核
边缘证书 *.deeplink-subscribe.com 和根域名通用证书有效,至 2027-01-09 覆盖 c2
源站证书/续期 网关证书域名、有效期匹配,独立 Certbot 根目录、禁用目录钩子及定时器配置存在 本轮只读核对;续期 dry-run 沿用此前结果,没有重跑
个性化订阅缓存 唯一活动规则 Bypass cache - deeplink-subscribe.com (all hosts),所有传入请求,顺序 1 已按用户最新要求扩大到整个订阅区域,无后续缓存资格规则覆盖
规则部署后响应 正式有效订阅连续标准路径请求和短路径均 200、有效 JSON、private/no-store、DYNAMIC,无 Age/HIT/cf-mitigated 重新验收通过;不是禁用用户的错误页测试
TLS/HTTP 性能 TLS 1.3、HTTP/2、HTTP/3、HTTP/2 to Origin 页面启用 基础协议项已启用;源站未启用 h2,仅配置支持状态不代表实际 h2 回源
HTTP/压缩实测 额外有效订阅协商 HTTP/2,gzip 响应自动解码后仍为有效 JSON;Alt-Svc 广告 h3 H2/gzip 通过;未强制 H3 或实测 Brotli/Zstd
IPv6 与原始 IP IPv6 开启,Pseudo IPv4=off,删除访问者 IP 标头的托管转换关闭 未覆盖或移除 CF-Connecting-IP
Worker/转换覆盖 无 Worker 路由、请求/响应标头转换、源站规则或旧式页面规则;配置规则仅有本次 BIC 例外 未发现这些方式导致订阅改写
Bot Fight/Under Attack Bot Fight 关闭,I'm under attack 关闭 本轮请求没有挑战页
自定义防火墙/限流 自定义 WAF 和速率限制规则为零;托管规则列表未创建 不等于关闭 Cloudflare 平台自带 DDoS/自动防护
BIC 全区域默认开启;Subscription client compatibility - c2 对精确主机下的订阅 API 和 /s/ 路径关闭 已经用户明确批准后实施;其他路径保留默认检查
最低边缘 TLS 仍为默认 TLS 1.0 有可评估的安全收紧;尚未实施,不影响当前现代客户端成功请求
HTML/JS 优化 Rocket Loader、Speed Brain、Fonts、Early Hints、RUM 关闭 不把网页渲染优化误用于 JSON/YAML 订阅;本轮保持原值
真实 IP 同步 新旧相关 Nginx vhost 引用受管理文件,22 段与本轮官方 HTTPS 列表逐集合一致,定时器 active 同步实际接通;每天执行,非实时推送;无主动失败告警和故障注入验收
共享资源保护 新旧网关容器运行、独立上游/卷/网络;原 XrayR PID/启动时间保持;Nginx -t 成功 此次 CF 调优没有重启网关。历史首次签发曾触发原网关一次重启,不能改写为从未影响

Cloudflare 返回 DYNAMIC 与显式 Bypass cache 并不矛盾,官方说明支持这一表现。缓存规则设置

已实施的兼容规则与原机场调优

BIC 只筛查请求头,并非订阅令牌认证。关闭会减少一层请求头筛查,不能说风险完全不变。当前有效订阅本来就可通过,不能把 BIC 认定为历史地区失败的根因。自动审批最初拒绝部署,要求具体授权;用户在获知风险后明确回复“批准”,之后正常浏览器部署成功,没有采用绕过审批的控制方式。BIC 官方说明、配置规则设置

以下两条 Configuration Rule 均只添加 Browser Integrity Check=Off,不跳过全部 WAF,不改网关 UA/IP 过滤、限流或令牌校验:

Subscription client compatibility - c2
(http.host eq "c2.deeplink-subscribe.com" and
 (http.request.uri.path eq "/api/v1/client/subscribe" or starts_with(http.request.uri.path, "/s/")))

Subscription client compatibility - fu101
(http.host eq "fu101.gembox-sub.com" and
 (starts_with(http.request.uri.path, "/sub/") or
  http.request.uri.path eq "/api/v1/client/subscribe" or
  starts_with(http.request.uri.path, "/api/v1/client/subscribe/")))

原订阅主机兼有管理入口,因此不能把 BIC 例外扩大到该主机所有路径。区域默认 BIC 仍开启,管理路径不匹配以上表达式。

原机场项目 现场结果与本次操作
DNS fu101 A=65.99.193.129,已代理;未更改记录
回源 TLS 区域原为 Full/自动模式;新增 Strict origin TLS - fu101.gembox-sub.com,仅精确主机 SSL=Strict,顺序 1,活动;区域默认及其他主机保持原值
源站证书 fu101 证书 SAN 匹配,有效至 2026-12-17;已在 Strict 规则启用后成功拉取有效订阅
缓存 新增后再按用户要求扩大:Bypass cache - gembox-sub.com (all hosts),所有传入请求,绕过缓存,顺序 1,唯一活动规则
客户端兼容 上述 fu101 BIC 例外为配置规则顺序 2,活动;不覆盖管理入口,不修改 SSL
真实响应 原生 /sub/ 路径的 sing-box JSON 与 Clash YAML 均 200、有效配置、no-store、DYNAMIC,无 Age/HIT/cf-mitigated;gzip JSON 解码通过
保留网关过滤 无 UA 的兼容 API 请求仍为 403;现场 map 明确将空 UA 标记为拒绝对象。本次没有关闭该过滤,不把该响应认作 CF 挑战或全客户端验收通过
网络与安全默认 IPv6 开,Pseudo IPv4=Off;区域默认 BIC 开,Bot Fight/Precursor 关;Cloudflare 平台自动/DDoS 防护保留
协议与网页项 页面 HTTP/2、HTTP/3、HTTP/2 to Origin、TLS 1.3 开;0-RTT、Early Hints、Speed Brain 关;原有 RUM 开,未更改。未证明实际 h2 回源或 H3 客户端协商
共享服务 四个新旧网关/管理容器运行,ID/启动时间与变更前一致,Nginx 语法通过;没有操作原上游、卷、端口或服务重启

原机场生产项目由当前 Nginx 确认为 /www/wwwroot/fuuuu.cloud;不能照搬 CoDocs 中旧的 /www/wwwroot/fuuu.cloud 路径。原应用为 SSPanel-Uim,订阅入口是 /sub/{token}/{subtype},不是 dpl 的标准 API。有效令牌仅在原生产服务器的进程内存使用。

订阅域名轮换与缓存范围

用户明确要求同一区域更换订阅前缀时自动覆盖。两个区域的 Cache Rule 已分别改为“所有传入请求”(表达式 true),动作仅 Bypass cache;没有新增重复规则、浏览器 TTL 覆盖或修改源站 no-store 标头。这是区域级规则:覆盖该区域根域和当前/未来子域名经 CF 代理的 HTTP 请求,不覆盖另一个新购区域,不影响 DNS only 的节点流量。

同一区域从 a 改到 b 后无需改缓存规则;仍须完成 DNS/代理、Nginx vhost、证书与续期、网关允许的 Host/上游、面板订阅 URL,以及精确主机范围的 BIC/TLS 规则调整,再做有效订阅复验。缓存配置不会自动让新主机上线,也不会解除地区封锁。后续若在这两个专用订阅区域部署静态站点,全部请求也会绕过 CF 边缘缓存,届时须单独设计例外和规则顺序。缓存规则顺序

回退

  • 仅回退本次缓存范围扩大:在原规则 ID 上恢复原名称及主机精确匹配,仍为 Bypass cache;变更前值保存在 codex/output/cloudflare-audit-20261011/cache-rules-before-expansion.json。dpl 的缓存规则原先已存在,不能直接删除来回退。
  • 回退 BIC:停用本次两条 Subscription client compatibility 配置规则,恢复区域默认检查。不操作管理入口或网关过滤。
  • 回退原机场 Strict:停用本次 Strict origin TLS - fu101.gembox-sub.com,回到原区域 Full/自动模式;不更改区域设置或证书。
  • 回到原机场本轮调优前:另行停用本轮新增的原机场 Cache Rule。勿删除其他区域或后来新增规则;先核对当前状态仍为本轮结果。

仍未实施的可选调优

  1. 核对实际客户端和该区域其他代理主机后,评估把 dpl 最低边缘 TLS 从 1.0 提至 1.2。免费套餐的普通设置覆盖区域全部代理主机;按主机单独设置需要 ACM。本轮没有购买产品或改变 TLS 下限。Minimum TLS 官方说明
  2. 日常观测订阅失败率和边缘/源站耗时后,才评估付费路由或额外性能产品。缓存加速不适用于含用户凭据的个性化订阅;0-RTT 关闭、HSTS 未启用、边缘 Always Use HTTPS 未启用不自动等同漏做。当前正式订阅 URL 使用 HTTPS,源站 HTTP 已 301 到 HTTPS。没有点击“启用所有可用设置”,没有宣称实测性能收益。HTTP/2、HTTP/3、内容压缩
  3. 官方 IP 段同步每天在宿主机时间 02:00 后随机最多 15 分钟执行,当前配置与官方列表相符;变化后最多等待下一轮成功同步,下载失败保留最后有效值。未来可单独评估更频繁同步和失败告警,本轮没有改共享定时器,不能保证 IP 调整时绝无短暂识别波动。

验收与数据边界

有效用户令牌只在生产服务器进程内存中使用,没有输出、复制或保存订阅令牌/正文;只输出白名单响应头和非私密节点参数。未改变用户、未恢复临时用户、未运行代理客户端产生正式用户节点流量。QA 不在当前下发用户集合,四个授权套餐关联正确,套餐其他字段与精确备份一致。

本轮请求来自生产服务器;手机 GUI、系统 TUN、多地区、IPv6 端到端、H3、不同客户端 UA 全覆盖、同步故障注入与真实告警均未执行。本地节点连通按用户要求继续跳过。两区域缓存扩大、两订阅路径 BIC 例外、原机场 Strict 已部署,保存后的真实订阅与共享服务复验通过。文档本地已更新,Git 提交/推送状态以当轮交付记录为准。

页面证据保存于 codex/output/cloudflare-audit-20261011/:c2-cache-zone-enabled.png、old-cache-zone-enabled.png、c2-bic-enabled.png、old-bic-enabled.png、old-strict-enabled.png。它们对应不同配置阶段,旧的精确主机缓存截图不代表最终缓存范围。