Частые причины#
- После вставленных учётных данных остался пробел или перевод строки.
- Для специальных символов пароля в URL прокси не применено URL-кодирование.
- Клиент отправляет учётные данные только в ответ на запрос аутентификации, а используемый инструмент не поддерживает обмен с кодом 407; помогает предварительная отправка заголовка
Proxy-Authorization. - После смены пароля истёк льготный период действия старого пароля.
- В режиме белого списка изменился исходный IP.
Быстрая проверка#
curl -v -x http://USER:PASS@res.hodlproxy.com:9000 https://api.ipify.orgКак выглядит ответ 407#
HTTP/1.1 407 Proxy Authentication Required
Proxy-Authenticate: Basic realm="proxy"
Content-Length: 0Этот код отправляет прокси, а не сайт: запрос так и не покинул шлюз. Клиент должен повторить его с заголовком Proxy-Authorization с верными учётными данными.
407, 401 и 403#
| Код | Кто отправляет | Что означает |
|---|---|---|
| 407 | Прокси | Сначала авторизуйтесь на прокси |
| 401 | Сайт | Авторизуйтесь на сайте |
| 403 | Сайт (или политика прокси) | Доступ запрещён независимо от авторизации |
Как исправить 407 в популярных инструментах#
| Инструмент | Решение |
|---|---|
| cURL | Укажите учётные данные в URL прокси или через --proxy-user user:pass; кодируйте спецсимволы в URL. |
| Python requests | Используйте http://user:pass@host:port в proxies; закодируйте пароль через urllib.parse.quote. |
| Node.js (axios) | Передайте proxy: { host, port, auth: { username, password } } или прокси-агент с учётными данными в URL. |
| Puppeteer | Запустите с --proxy-server=host:port и вызовите page.authenticate({ username, password }). |
| Playwright | Передайте proxy: { server, username, password } при запуске или для контекста. |
| Selenium / Chrome | Chrome игнорирует учётные данные в --proxy-server: используйте белый список IP, расширение или локальный ретранслятор, который их добавит. |
from urllib.parse import quote
proxy = f"http://USER-cc-us:{quote('p@ss:w/rd', safe='')}@res.hodlproxy.com:9000"Как это работает в HodlProxy#
HodlProxy возвращает статус 407 с кодом invalid_credentials. Текущая пара учётных данных отображается в панели управления, старый пароль после смены действует ещё десять минут, а при авторизации по белому списку для передачи параметров можно указать любое имя пользователя.
Часто задаваемые вопросы#
Почему я получаю 407 с правильным логином и паролем?
Обычно из-за невидимого символа, скопированного вместе с ними, незакодированного спецсимвола в URL прокси или клиента, который не отвечает на запрос 407. Проверьте те же данные через cURL, чтобы отделить проблему инструмента от проблемы аккаунта.
Можно ли вообще избежать 407?
Да: добавьте IP своего сервера в белый список в личном кабинете и подключайтесь без учётных данных. Таргетинг в этом случае задаётся в кабинете.
407 — это блокировка со стороны сайта?
Нет. Ответ 407 приходит от прокси до того, как запрос дошёл до сайта. Блокировка сайтом выглядит как 403, 429, капча или страница проверки.