ERR_SOCKS_CONNECTION_FAILED: SOCKS-проксі не встановив з'єднання

Chrome дістався до SOCKS-проксі, але рукостискання не вдалося. У звичайному Chrome найчастіша причина — SOCKS5 з логіном і паролем, яких браузер не підтримує.

Оновлено · Редакція Prokso

Коротко
  • ERR_SOCKS_CONNECTION_FAILED означає, що рукостискання з SOCKS-проксі не вдалося
  • У Chrome найчастіша причина — SOCKS5 з логіном і паролем, які браузер не підтримує, або тип, що не відповідає порту
  • Для SOCKS5 у Chrome увімкніть доступ за IP, а для входу за логіном беріть HTTP-порт 823

Що означає помилка

У net_error_list.h Chromium код -120 ERR_SOCKS_CONNECTION_FAILED означає, що не вдалося встановити з'єднання з SOCKS-проксі для цільового хоста. Код -121 ERR_SOCKS_CONNECTION_HOST_UNREACHABLE — SOCKS-проксі не зміг підключитися до цільового хоста, бо той недосяжний.

Вихідний код Chromium показує, коли саме з'являється -120 для SOCKS5. Браузер у привітанні пропонує тільки режим без автентифікації, і якщо сервер вимагає інший спосіб, наприклад логін і пароль, з'єднання завершується цією помилкою. Так само -120 буває, коли сервер закрив з'єднання під час рукостискання, відповів не за протоколом SOCKS5 або повернув будь-який код помилки, а також коли назва сайту довша за 255 символів.

Код -121 у нинішньому коді Chromium повертає лише клієнт SOCKS4. Якщо ви бачите саме його, браузер говорить із проксі за протоколом SOCKS4, хоча порт 824 Prokso працює за SOCKS5. А якщо не вдалося навіть відкрити TCP-з'єднання з проксі, Chrome покаже вже не SOCKS-помилку, а ERR_PROXY_CONNECTION_FAILED.

Причини

  • SOCKS5 з логіном і паролем у Chrome. Документація Chromium прямо каже, що для SOCKSv5 Chrome не підтримує жодних методів автентифікації. Шлюз просить логін, браузер його не пропонує, і рукостискання зупиняється.
  • Тип проксі не відповідає порту. У налаштуваннях вибрано SOCKS5, а порт 823 — HTTP. Шлюз відповідає не за протоколом SOCKS5, і Chrome завершує з'єднання з помилкою -120.
  • Запис socks= без схеми. За документацією Chromium, у правилі socks=gw.prokso.com:824 без схеми проксі вважається SOCKS4. Звідси і -121 там, де мав працювати SOCKS5.
  • Помилка на боці шлюзу чи сайту. Якщо проксі не зміг підключитися до сайту, він повертає код помилки SOCKS5, а Chrome показує -120. Детальніше — на сторінках general SOCKS server failure і connection refused.
  • Неправильний тип у профілі антидетект-браузера. Профіль має власні поля типу, хоста, порту, логіна й пароля. Якщо SOCKS5 стоїть на HTTP-порту або навпаки, рукостискання не вдасться так само.

Як виправити

  1. Перевірте пару тип і порт: SOCKS5 — порт 824 (новий IP на кожен запит), HTTP — порт 823, а фіксовані порти 10000–20000 приймають обидва протоколи. Довідка — на сторінці шлюзу.
  2. У звичайному Chrome для SOCKS5 увімкніть доступ за IP в особистому кабінеті (до 5 адрес): логін тоді не потрібен, і рукостискання без автентифікації пройде.
  3. Якщо потрібен вхід за логіном і паролем, у Chrome беріть HTTP-проксі: для HTTP-проксі Chromium підтримує схеми Basic, Digest, Negotiate і NTLM.
  4. У рядку --proxy-server пишіть схему явно: socks5://gw.prokso.com:824, а не socks=gw.prokso.com:824.
  5. Перевірте SOCKS5-доступ поза браузером: curl -x socks5h://ЛОГІН:ПАРОЛЬ@gw.prokso.com:824 https://prokso.com/ip. Помилка curl (97) з текстом «User was rejected by the SOCKS5 server» означає неправильний логін або пароль. Більше прикладів — в інструкції curl.

Як перевірити, що все запрацювало

Відкрийте в браузері сторінку перевірки IP: там має бути адреса проксі й країна, яку ви вибрали. Якщо замість SOCKS-помилки з'явилася ERR_PROXY_CONNECTION_FAILED, браузер не може відкрити з'єднання з самим шлюзом: перевірте хост, порт і мережу.

Діагностика за 2 хвилини

Спершу вставте рядок у перевірку проксі. Якщо там проксі працює, причина в програмі чи її налаштуваннях. Якщо ні — перевірте рядок з терміналу:

curl -v -x "http://ЛОГІН:ПАРОЛЬ@gw.prokso.com:823" https://api.ipify.org
  • Рядок < HTTP/1.1 407 одразу після CONNECT — відповідає проксі. Назва після коду, наприклад NO_USER, підказує причину.
  • Проксі відповів на CONNECT кодом 200, а далі прийшов інший код — проксі працює, цю відповідь дав сайт.
  • Жодної відповіді, лише тайм-аут — з'єднання не дійшло до проксі: перевірте хост, порт і мережу.

Інструкції, де трапляється ця помилка

Питання й відповіді

Чому SOCKS5 працює в curl і Python, а в Chrome ні?

curl і бібліотеки Python уміють передавати логін і пароль SOCKS5. Chrome — ні: за документацією Chromium, для SOCKSv5 він не підтримує жодних методів автентифікації. Що таке SOCKS5 — у <a href="/glossary/socks5">глосарії</a>.

Скільки Chrome чекає на рукостискання SOCKS?

У вихідному коді Chromium тайм-аут рукостискання SOCKS становить 30 секунд від моменту, коли з'єднання з проксі вже відкрито. Якщо проксі не відповідає довше, спроба переривається.

Що робити, якщо помилка лише на одному сайті?

Тоді з'єднання з проксі є, а не вдається підключення до сайту, і шлюз повертає код помилки SOCKS5. Повторіть запит: на порту 824 він піде через новий IP. Якщо сайт недоступний і без проксі, причина в самому сайті.

Резидентські $1.59, мобільні $2.50, серверні $0.65 за 1 ГБ

Реєстрація за хвилину, доступи одразу після оплати.

Створити акаунт