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-порту або навпаки, рукостискання не вдасться так само.
Як виправити
- Перевірте пару тип і порт: SOCKS5 — порт 824 (новий IP на кожен запит), HTTP — порт 823, а фіксовані порти 10000–20000 приймають обидва протоколи. Довідка — на сторінці шлюзу.
- У звичайному Chrome для SOCKS5 увімкніть доступ за IP в особистому кабінеті (до 5 адрес): логін тоді не потрібен, і рукостискання без автентифікації пройде.
- Якщо потрібен вхід за логіном і паролем, у Chrome беріть HTTP-проксі: для HTTP-проксі Chromium підтримує схеми Basic, Digest, Negotiate і NTLM.
- У рядку
--proxy-serverпишіть схему явно:socks5://gw.prokso.com:824, а неsocks=gw.prokso.com:824. - Перевірте 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 ГБ
Реєстрація за хвилину, доступи одразу після оплати.