问题描述
当前代理探测默认目标是 https://www.gstatic.com/generate_204。我遇到一种情况:代理本身是可用的,但因为无法访问 gstatic/google,被后台探测判定为失败,前端显示为“代理握手被关闭(鉴权或协议不匹配)”,这个文案会让人误以为是用户名密码或 scheme 配错了。
复现环境
- 项目:
gpt2api
- 部署方式:Docker Compose
- 相关默认配置:
proxy.probe_target_url = https://www.gstatic.com/generate_204
proxy.probe_timeout_sec = 10
- 代码位置:
internal/settings/model.go
internal/proxy/prober.go
复现步骤
- 在后台新增一个 HTTP 代理(用户名/密码已脱敏)
- 手动点击“探测”
- 页面提示:
探测失败:代理握手被关闭(鉴权或协议不匹配)
实际验证
同一条代理通过外部请求测试时:
http://httpbin.org/ip -> 200
https://api.ipify.org?format=json -> 200
https://www.gstatic.com/generate_204 -> 连接被远端关闭 / EOF
https://www.google.com/generate_204 -> 同样 EOF
也就是说:
- 代理鉴权本身大概率是成功的
- 代理对部分普通 HTTP/HTTPS 站点可用
- 只是对默认探测目标
gstatic/google 不通,结果被判成了“代理握手失败”
相关代码行为
当前默认探测目标:
{Key: ProxyProbeTargetURL, Type: "url", Category: "gateway", Default: "https://www.gstatic.com/generate_204", Label: "代理探测目标 URL", Desc: "返回 2xx/3xx 视为成功,留空使用默认"}
当前 EOF 映射文案:
case strings.Contains(low, "unexpected eof"),
low == "eof",
strings.HasSuffix(low, ": eof"):
return "代理握手被关闭(鉴权或协议不匹配)"
期望行为
希望至少有下面两点改进中的一个:
-
优化默认探测目标
- 默认不要使用
gstatic/google 这类在部分代理上容易被限制的站点
- 或者文档里明确提醒:默认探针只代表“能否访问该目标”,不代表代理整体不可用
-
优化错误提示
- 对 EOF /
RemoteDisconnected 一类错误,文案不要直接指向“鉴权或协议不匹配”
- 可以改成更中性的提示,例如:
代理连接被对端关闭(可能是目标站限制 / 代理线路问题 / 鉴权问题)
- 或者把原始错误附带出来,方便排障
建议
我个人更倾向于:
- 保留
proxy.probe_target_url 可配置
- 但把默认值换成一个更通用、对代理更友好的轻量地址
- 同时把 EOF 的错误文案改得更中性一些
这样能减少“代理其实可用,但被默认探针误判”的情况。
问题描述
当前代理探测默认目标是
https://www.gstatic.com/generate_204。我遇到一种情况:代理本身是可用的,但因为无法访问gstatic/google,被后台探测判定为失败,前端显示为“代理握手被关闭(鉴权或协议不匹配)”,这个文案会让人误以为是用户名密码或 scheme 配错了。复现环境
gpt2apiproxy.probe_target_url = https://www.gstatic.com/generate_204proxy.probe_timeout_sec = 10internal/settings/model.gointernal/proxy/prober.go复现步骤
探测失败:代理握手被关闭(鉴权或协议不匹配)实际验证
同一条代理通过外部请求测试时:
http://httpbin.org/ip->200https://api.ipify.org?format=json->200https://www.gstatic.com/generate_204-> 连接被远端关闭 / EOFhttps://www.google.com/generate_204-> 同样 EOF也就是说:
gstatic/google不通,结果被判成了“代理握手失败”相关代码行为
当前默认探测目标:
{Key: ProxyProbeTargetURL, Type: "url", Category: "gateway", Default: "https://www.gstatic.com/generate_204", Label: "代理探测目标 URL", Desc: "返回 2xx/3xx 视为成功,留空使用默认"}当前 EOF 映射文案:
期望行为
希望至少有下面两点改进中的一个:
优化默认探测目标
gstatic/google这类在部分代理上容易被限制的站点优化错误提示
RemoteDisconnected一类错误,文案不要直接指向“鉴权或协议不匹配”代理连接被对端关闭(可能是目标站限制 / 代理线路问题 / 鉴权问题)建议
我个人更倾向于:
proxy.probe_target_url可配置这样能减少“代理其实可用,但被默认探针误判”的情况。