Как исправить ошибку 407 Proxy Authentication Required
Обновлено:
Ошибка 407 — новость лучше, чем кажется: устройство подключилось к прокси, и сетевой маршрут доступен. Прокси лишь сообщает, что не получил верные логин и пароль. Поэтому почти в каждом случае ошибка 407 решается проверкой учетных данных, а не настройками роутера или файрвола.
Причины ошибки 407: от частых к редким
- Неверный или отсутствующий логин/пароль. Опечатка в одном символе или лишний пробел на конце, скопированный вместе с паролем. Это объясняет большинство обращений с ошибкой 407.
- Данные вставлены не в те поля. Вся строка
ip:port:user:passпопадает в поле хоста, либо логин оказывается в поле пароля. Некоторые программы разделяют эти четыре поля автоматически, другие — нет. - Приложение вообще не отправляет учетные данные. В системных настройках прокси хранятся только адрес и порт. Приложения, которые не умеют запрашивать пароль, подключаются без заголовка авторизации и получают ответ 407.
- Спецсимволы в URL прокси. В формате
http://user:pass@host:portтакие символы в пароле, как@,:или#, должны быть закодированы методом percent-encoding (@превращается в%40), иначе строка разделится некорректно.
Как на самом деле выглядит ошибка 407
Мы воспроизвели ошибку на тестовом прокси, указав демонстрационный адрес 203.0.113.10:8080 и заведомо неверную пару user123:pass456. При запросе к HTTPS-сайту команда curl -x http://user123:[email protected]:8080 https://example.com выводит curl: (56) CONNECT tunnel failed, response 407. При запросе к обычному HTTP-сайту с флагом -w %{http_code} curl выводит просто 407.
Добавьте флаг -v, чтобы проверить, отправлялись ли данные авторизации вообще. В логе отобразится > CONNECT example.com:443 HTTP/1.1, затем > Proxy-Authorization: Basic ... и только потом 407. Если строки Proxy-Authorization нет, клиент вовсе не передал данные для входа.
Чекер прокси VinaProxy отображает эту ситуацию как auth failed (407). В Headless Chrome, где нет окна ввода логина и пароля, она проявляется как ERR_TUNNEL_CONNECTION_FAILED; подробнее см. на странице ошибки подключения туннеля.
Решения для разных платформ
- Windows и Chrome: Chrome использует системные настройки прокси Windows (Параметры > Сеть и Интернет > Прокси-сервер), где задаются только адрес и порт. При первой загрузке страницы Chrome открывает окно авторизации для ввода логина и пароля прокси. Если вы ошиблись при вводе, а окно больше не появляется, закройте все окна Chrome и откройте заново.
- Антидетект-браузеры (AdsPower, GoLogin, GenLogin): указывайте хост, порт, логин и пароль в отдельных полях. Полностью очистите поле пароля и вставьте его заново вместо редактирования. Пошаговые инструкции по полям доступны в руководстве по настройке GoLogin.
- Смартфоны: на iPhone в меню Настройки > Wi-Fi > (i) > Настройка прокси есть переключатель «Аутентификация»; если он выключен, возникнет ошибка 407. Android обычно принимает только хост и порт, поэтому приложения, требующие авторизации, могут вместо этого показывать общую ошибку подключения.
- curl: передавайте
-U "user:pass"отдельно, а не внутри URL — это поможет избежать проблем со спецсимволами. - Python requests: укажите
http://user:pass@host:portдля обоих ключей (httpиhttps) в словареproxies, а сложные пароли кодируйте с помощьюurllib.parse.quote.
Данные верны, но ошибка 407 сохраняется
Далее проверьте протокол. VinaProxy предоставляет HTTP(S)-прокси с авторизацией по логину и паролю, а также SOCKS5 — выбирайте протокол, указанный в вашем заказе в панели управления. Если чекер возвращает not socks5, этот порт работает по HTTP и не должен настраиваться как SOCKS5.
Пошаговая инструкция
- 1
Скопируйте строку прокси из панели управления
Откройте заказ в панели управления VinaProxy и скопируйте строку целиком, чтобы не вводить данные вручную.
- 2
Проверьте строку через чекер прокси
Вставьте ее в чекер прокси. Результат
auth failed (407)подтвердит, что проблема в учетных данных, а не в сети. - 3
Заново введите логин и пароль
Очистите оба поля в вашей программе и вставьте данные заново, убедившись в отсутствии начальных и конечных пробелов.
- 4
Убедитесь, что протокол совпадает с заказом
Укажите тип прокси (HTTP или SOCKS5) в точности как в заказе и сохраните настройки.
- 5
Если ошибка не исчезла, проверьте подключение через curl -v
Выполните
curl -vсо своими реальными данными и найдите строкуProxy-Authorizationперед статусом 407.
Часто задаваемые вопросы
Может ли ошибка 407 возникать из-за блокировки прокси провайдером?
Нет. Код 407 возвращает сам прокси, а значит, соединение до него доходит. При блокировке маршрута обычно возникает таймаут или отказ в подключении; подробнее см. в статье таймаут прокси.
Почему Chrome постоянно запрашивает логин и пароль прокси?
При каждом неверном вводе возвращается новый ответ 407, и Chrome запрашивает данные снова. Проверьте клавишу Caps Lock и убедитесь, что раскладка клавиатуры или метод ввода не добавляют в пароль диакритические знаки или посторонние символы.
Как указать пароль со знаком @ в URL прокси?
Закодируйте его: @ как %40, : как %3A, # как %23. В curl флаг -U позволяет обойтись вообще без кодирования.
Selenium или Puppeteer выдает ошибку туннеля вместо 407. Это та же проблема?
Обычно да. Headless Chrome не может отобразить окно авторизации, поэтому ошибка 407 проявляется как ERR_TUNNEL_CONNECTION_FAILED. Передайте учетные данные через механизм авторизации используемой библиотеки, как описано в руководстве по Selenium.
Приватные прокси с готовыми учетными данными
В каждом заказе VinaProxy вы получаете готовую строку ip:port:user:pass: скопируйте один раз и вставьте в любую программу.
Посмотреть тарифы на прокси