在 Electron 应用就绪阶段之后,配置窗口实际将要使用的会话:

const proxySession = session.fromPartition('persist:proxy-work');

await proxySession.setProxy({
  mode: 'fixed_servers',
  proxyRules: 'socks5://127.0.0.1:1080'
});

const window = new BrowserWindow({
  webPreferences: { session: proxySession }
});

使用应用现有的导入/生命周期。该窗口的请求使用 proxySession;任意 Node 客户端和其他分区不会继承它。对于获准的公共浏览,SOCKS5 代理列表提供候选端点;请选择无需 SOCKS 账户、可用于 Chromium 受支持路径的一个。

对于已经使用过的会话,决定如何处理池化的连接。Electron 记录了 closeAllConnections(),用于旧路由否则可能残留的情况;调用它可能会中断正在进行的工作。更新设置不会移动已有的套接字。

对实际 URL 使用 resolveProxy 来检查选择结果。单独确认连接/出口,包括绕过情况以及独立配置的会话。

Chromium 的 SOCKS5 实现不支持 SOCKS 身份验证方法。HTTP 登录回调和 URL 中的密码都不会添加该支持。对于需要凭据的服务,请使用有文档说明的兼容方案,而不是从共享监听器上移除身份验证。

相关文章