办公网只放行 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 毫秒几乎都是没放通。线上能稳定复现的问题都不算难,难的是只在大流量下才出现的那种。
