环境
- SmartSub 版本:3.7.0
- 操作系统:Windows
- 代理客户端:Clash Verge / mihomo,监听
127.0.0.1:7897
复现步骤
- 设置中把代理模式设为
custom,代理地址填 http://127.0.0.1:7897,日志确认出现 proxy applied: custom http://127.0.0.1:7897。
- 添加一个直连不可达的 OpenAI 兼容 provider,例如 Gemini:
- apiUrl:
https://generativelanguage.googleapis.com/v1beta/openai/
- modelName:
gemini-3.5-flash-lite
- 填好 API key
- 对任意 1 条字幕(如
Hello)执行翻译/测试。
实际行为
- 日志出现:
OpenAI translation failed: Connection error.
- 单次请求约 60~70 秒后超时失败
- 此时应用的日志里同时存在
proxy applied: custom http://127.0.0.1:7897,说明代理配置已生效,但翻译请求并未走代理
预期行为
自定义代理(custom proxy)应作用于 AI 翻译请求,代理不可达时给出明确提示。
分析
翻译请求使用官方 openai Node SDK 构造客户端,形如:
new OpenAI({ baseURL: apiUrl, apiKey: apiKey })
未传入任何代理 agent(如 HttpsProxyAgent),因此请求由 Node 直连发出,完全不经过应用配置的代理。应用日志里的 proxy applied: custom 只作用于其他网络(模型下载、更新等),翻译请求是另一条路径。
验证数据:
- 同一代理下
curl --proxy http://127.0.0.1:7897 .../v1beta/openai/models → HTTP 200
- 不走代理直接
curl .../v1beta/openai/models → HTTP 000(连接失败)
临时方法
在本地起一个 OpenAI 兼容中继(强制走代理转发到目标 API),把 provider 的 apiUrl 指向 http://127.0.0.1:<port>/v1。
建议修复
- 为 openai 客户端传入基于
proxyUrl 的代理 agent(https-proxy-agent / tunnel);
- 或在请求前校验目标地址是否可达并给出明确的代理提示。
环境
127.0.0.1:7897复现步骤
custom,代理地址填http://127.0.0.1:7897,日志确认出现proxy applied: custom http://127.0.0.1:7897。https://generativelanguage.googleapis.com/v1beta/openai/gemini-3.5-flash-liteHello)执行翻译/测试。实际行为
OpenAI translation failed: Connection error.proxy applied: custom http://127.0.0.1:7897,说明代理配置已生效,但翻译请求并未走代理预期行为
自定义代理(custom proxy)应作用于 AI 翻译请求,代理不可达时给出明确提示。
分析
翻译请求使用官方 openai Node SDK 构造客户端,形如:
未传入任何代理 agent(如
HttpsProxyAgent),因此请求由 Node 直连发出,完全不经过应用配置的代理。应用日志里的proxy applied: custom只作用于其他网络(模型下载、更新等),翻译请求是另一条路径。验证数据:
curl --proxy http://127.0.0.1:7897 .../v1beta/openai/models→ HTTP 200curl .../v1beta/openai/models→ HTTP 000(连接失败)临时方法
在本地起一个 OpenAI 兼容中继(强制走代理转发到目标 API),把 provider 的 apiUrl 指向
http://127.0.0.1:<port>/v1。建议修复
proxyUrl的代理 agent(https-proxy-agent/tunnel);