From b1f2b4f6c162fdd47055e292719b81c7bf6a431f Mon Sep 17 00:00:00 2001 From: mouyong Date: Wed, 20 Aug 2025 09:34:02 +0800 Subject: [PATCH] =?UTF-8?q?fix(proxy):=20=E5=BC=BA=E5=88=B6=20SOCKS5=20?= =?UTF-8?q?=E4=BB=A3=E7=90=86=E4=BD=BF=E7=94=A8=20IPv4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit WHAT: 为 SOCKS5 代理配置添加 family: 4 选项强制使用 IPv4 地址族 WHY: 解决 IPv4 主机名在代理连接时被意外解析到 IPv6 地址的问题,确保代理连接的稳定性和可预期性 HOW: 在 SocksProxyAgent 构造函数中添加 family: 4 配置选项;保持与现有 HTTP/HTTPS 代理的兼容性;无破坏性变更 --- src/routes/openaiRoutes.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/routes/openaiRoutes.js b/src/routes/openaiRoutes.js index 2a237f26..9d67e73f 100644 --- a/src/routes/openaiRoutes.js +++ b/src/routes/openaiRoutes.js @@ -21,7 +21,9 @@ function createProxyAgent(proxy) { if (proxy.type === 'socks5') { const auth = proxy.username && proxy.password ? `${proxy.username}:${proxy.password}@` : '' const socksUrl = `socks5://${auth}${proxy.host}:${proxy.port}` - return new SocksProxyAgent(socksUrl) + return new SocksProxyAgent(socksUrl, { + family: 4, + }) } else if (proxy.type === 'http' || proxy.type === 'https') { const auth = proxy.username && proxy.password ? `${proxy.username}:${proxy.password}@` : '' const proxyUrl = `${proxy.type}://${auth}${proxy.host}:${proxy.port}`