最近圈子里的风声有点紧,新技术这东西是一把双刃剑。前阵子大家都在折腾 GPT 5.6 的反代服务,想着不仅自己用,还能分发给朋友或者做个小项目。结果,很多人刚搭建好主节点,兴致勃勃地去配置子代理(或者叫中转节点)的时候,结果却迎头泼了一盆冷水——连不上!

主代理跑得好好的,一旦上了子代理,就开始疯狂报错或者直接超时。这到底是哪儿出了问题?今天咱们不整虚的,直接来复盘一下这个“坑”,顺便聊聊具体的解决思路。

问题出在哪儿?

首先,我们要明白“反代”和“子代理”在这一场景下的关系。通常的架构是:用户 -> 子代理(中转/CDN)-> 主反代节点 -> 官方 API。

网络架构示意图:用户经由子代理/CDN中转连接至主反代节点,最终到达官方API

典型的反代架构流向:用户 -> 子代理 -> 主节点 -> 官方 API

既然主代理能用,说明主节点到目标服务的链路是通的。那么问题大概率就卡在了“用户 -> 子代理”或者“子代理 -> 主节点”这两段。根据最近几个案例的复盘,绝大多数问题都集中在 Host 头和 SNI(服务名称指示)的处理上。

核心雷区:Header 和 SNI 的篡改

这是最容易踩坑的地方。

  1. Host 头透传失败 子代理在转发请求时,如果不小心修改了 Host 字段,主节点在验证请求时就会认为来源不合法。特别是如果你想通过 Cloudflare Workers 或者 Nginx 作为中转层时,默认配置往往会把 Host 改成中转服务器的域名。你得确保在配置文件里手动把 Host 设置回目标 API 的域名,或者干脆告诉中转软件“不要动 Host”。

SNI握手过程示意图,展示客户端与服务器之间的TLS连接建立流程

SNI(服务名称指示)握手流程示意

  1. SNI 与分流的冲突 这一点在用 Nginx 或者路由器做软路由分流时特别常见。GPT 5.6 的很多 API 端点可能走了新的 IP 段或者 SNI 指纹。如果你的子代理开启了 SNI 阻断或者错误的分流规则,握手的瞬间就会被掐断。检查一下你的分流规则表,是不是把目标域名的 SNI 误伤进了广告或者阻断列表?

  2. TLS 指纹伪装不足 现在的防御手段越来越高级了。如果在子代理这一层没有做好 TLS 指纹的伪装(比如 JA3 指纹),主节点可能会识别出这是一个非浏览器的请求,从而拒绝服务。如果你用的是比较旧版的中转工具,建议替换成支持 TLS 指纹伪装更新的客户端版本试试。

实操排查三步走

如果是遇到“子代理用不了”的情况,别急着换节点,按下面这个顺序排查,成功率能高很多:

  1. 直连测试(排除法) 先绕过子代理,直接用客户端请求主代理节点。如果直连没问题,那就能 100% 确定锅在子代理上。

  2. 抓包看细节(动真格) 在子代理服务器上用 tcpdump 或者服务器自带的日志工具抓包。看看发出去的包里,Host 到底是什么?SNI 握手的信息对不对?有时候配置改了没生效,抓包一眼就能看穿。

  3. 关闭中间件的“自作聪明” 如果你用的是 Cloudflare,检查一下“橙云”代理设置是不是把某些必要的 Header 过滤了。暂时关掉 CDN 代理,改成只解析 DNS(灰云),测试一下连通性。能连上,那就说明是 CDN 层面的问题,得去调整 Page Rules 或者 Edge Function 去做 Header 透传。

写在最后

搞这种技术羊毛和反向代理,就是不断的发现问题、解决问题的过程。GPT 5.6 出来的时间不长,很多反代的配置逻辑和以前不完全一样,遇到子代理失效真的很正常。

核心就那几点:Host 别乱动,SNI 别拦错,指纹要伪装。搞定了这三点,基本也就稳了。大家在搭建的过程中如果有其他的新发现,欢迎在下面讨论,咱们一起把这个方案完善起来。

标签: none

AI Skills Smart Station on Nick Launches

评论已关闭