From 39b823d3dfb3c36a3fc7cfaee3a88a9b99e32538 Mon Sep 17 00:00:00 2001 From: cmliu Date: Fri, 7 Nov 2025 02:37:00 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=9B=B4=E6=96=B0SOCKS5=E5=8F=AF?= =?UTF-8?q?=E7=94=A8=E6=80=A7=E9=AA=8C=E8=AF=81=E5=87=BD=E6=95=B0=EF=BC=8C?= =?UTF-8?q?=E5=A2=9E=E5=BC=BA=E9=94=99=E8=AF=AF=E4=BF=A1=E6=81=AF=E4=B8=AD?= =?UTF-8?q?=E7=9A=84=E4=BB=A3=E7=90=86=E5=8F=82=E6=95=B0=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _worker.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/_worker.js b/_worker.js index 0aaa911..c8c308f 100644 --- a/_worker.js +++ b/_worker.js @@ -1201,9 +1201,11 @@ async function 解析地址端口(proxyIP) { async function SOCKS5可用性验证(代理协议 = 'socks5', 代理参数) { try { parsedSocks5Address = await 获取SOCKS5账号(代理参数); } catch (err) { return { success: false, error: err.message, proxy: 代理协议 + "://" + 代理参数 }; } + const { username, password, hostname, port } = parsedSocks5Address; + const 完整代理参数 = username && password ? `${username}:${password}@${hostname}:${port}` : `${hostname}:${port}`; try { const tcpSocket = 代理协议 == 'socks5' ? await socks5Connect('check.socks5.090227.xyz', 80) : await httpConnect('check.socks5.090227.xyz', 80); - if (!tcpSocket) return { success: false, error: '无法连接到代理服务器', proxy: 代理协议 + "://" + 代理参数 }; + if (!tcpSocket) return { success: false, error: '无法连接到代理服务器', proxy: 代理协议 + "://" + 完整代理参数 }; try { const writer = tcpSocket.writable.getWriter(), encoder = new TextEncoder(); await writer.write(encoder.encode(`GET /cdn-cgi/trace HTTP/1.1\r\nHost: check.socks5.090227.xyz\r\nConnection: close\r\n\r\n`)); @@ -1212,12 +1214,12 @@ async function SOCKS5可用性验证(代理协议 = 'socks5', 代理参数) { let response = ''; try { while (true) { const { done, value } = await reader.read(); if (done) break; response += decoder.decode(value, { stream: true }); } } finally { reader.releaseLock(); } await tcpSocket.close(); - return { success: true, proxy: 代理协议 + "://" + 代理参数, ip: response.match(/ip=(.*)/)[1], loc: response.match(/loc=(.*)/)[1] }; + return { success: true, proxy: 代理协议 + "://" + 完整代理参数, ip: response.match(/ip=(.*)/)[1], loc: response.match(/loc=(.*)/)[1] }; } catch (error) { try { await tcpSocket.close(); } catch (e) { console.log('关闭连接时出错:', e); } - return { success: false, error: error.message, proxy: 代理协议 + "://" + 代理参数 }; + return { success: false, error: error.message, proxy: 代理协议 + "://" + 完整代理参数 }; } - } catch (error) { return { success: false, error: error.message, proxy: 代理协议 + "://" + 代理参数 }; } + } catch (error) { return { success: false, error: error.message, proxy: 代理协议 + "://" + 完整代理参数 }; } } //////////////////////////////////////////////////////HTML伪装页面/////////////////////////////////////////////// async function nginx() {