办公网只放行 443 出站,脚本调模型接口一直 ReadTimeout,curl 加 -v 显示卡在 CONNECT 阶段,最后报 failed to connect to proxy after 20001 ms。

一开始怀疑是「请求走的是 http 而不是 https」,查了一圈,方向不对。

把日志和配置对完,能解释这个现象的基本就这几处。代理只允许 443 未放行其他端口。也可能是代理需要认证 请求没带凭据。

还有一种情况,域名在代理侧解析失败。

上来先确认卡在代理的哪一步

curl -v -x http://proxy:8080 https://api.openai.com/v1/models

接着确认是否需要代理认证头

curl -v -x http://user:pass@proxy:8080 https://api.openai.com/v1/models

再往下把所有请求统一走 443

python patch_client.py --scheme https

等前面都确认过,再把代理地址写进环境变量后复测

$env:HTTPS_PROXY='http://proxy:8080'; curl -s https://api.openai.com/v1/models -o NUL -w "%{http_code}"

这台环境是别人交接的,不少默认值被动过,只能一项项核。

同事提醒我看一下最近一次发布,时间点确实对得上。

恢复的判定其实很直接。curl 与脚本都能在三秒内拿到响应,CONNECT 阶段通过,不再出现超时。

这里还有个坑。先看 CONNECT 有没有成功再怀疑服务端,代理层的 20001 毫秒几乎都是没放通。线上能稳定复现的问题都不算难,难的是只在大流量下才出现的那种。

作者 9823189