Після етапу готовності застосунку 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() там, де старий маршрут інакше міг би залишитися; його виклик може перервати поточну роботу. Оновлення налаштувань не переміщує наявні сокети.

Використовуйте resolveProxy для фактичної URL-адреси, щоб перевірити вибір. Підтвердьте з'єднання/вихід окремо, включно з обходами та незалежно налаштованими сеансами.

Реалізація SOCKS5 у Chromium не підтримує метод автентифікації SOCKS. HTTP-зворотні виклики входу та пароль в URL цього не додають. Для служби, що потребує облікових даних, використовуйте документовану сумісну схему замість вилучення автентифікації зі спільного слухача.

Схожі статті