Як виправити помилку 407 Proxy Authentication Required
Updated:
Помилка 407 — краща новина, ніж здається: ваш пристрій з'єднався з проксі, і мережевий шлях відкритий. Проксі просто повідомляє, що не отримав дійсні ім'я користувача та пароль. Саме тому майже будь-яка помилка 407 вирішується з боку облікових даних, а не у вашому роутері чи брандмауері.
Причини помилки 407: від найімовірніших
- Неправильні або відсутні ім'я користувача/пароль. Одна одруківка або зайвий пробіл у кінці, скопійований разом із паролем. Це пояснює більшість звернень щодо помилки 407.
- Дані вставлено не в ті поля. Увесь рядок
ip:port:user:passпотрапляє в поле Host, або ім'я користувача опиняється в полі пароля. Деякі інструменти розділяють ці чотири поля автоматично, інші — ні. - Застосунок взагалі не надсилає облікові дані. Налаштування проксі в операційній системі зберігають лише адресу та порт. Програми, які не вміють запитувати пароль, підключаються без заголовка автентифікації та отримують у відповідь 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): вказуйте Host, Port, Username та Password в окремих полях. Повністю очистьте поле пароля та вставте його заново замість редагування. Покрокову інструкцію для кожного поля наведено в посібнику з налаштування 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) з авторизацією за user:pass, а також SOCKS5, тому виберіть саме той протокол, який вказано у вашому замовленні на панелі керування. Якщо чекер відповідає not socks5, цей порт працює за протоколом HTTP і не повинен налаштовуватися як SOCKS5.
Покроково
- 1
Скопіюйте рядок проксі з панелі керування
Відкрийте замовлення на панелі керування VinaProxy і скопіюйте повний рядок замість того, щоб вводити його вручну.
- 2
Перевірте рядок у проксі-чекері
Вставте його в проксі-чекер. Результат
auth failed (407)підтверджує проблему з обліковими даними, а не з мережею. - 3
Введіть ім'я користувача та пароль заново без зайвих пробілів
Очистьте обидва поля у вашій програмі та вставте дані знову без пробілів на початку чи в кінці.
- 4
Узгодьте протокол із замовленням
Вкажіть тип проксі HTTP або SOCKS5 відповідно до даних замовлення, а потім збережіть.
- 5
Виконайте трасування через curl -v, якщо проблема не зникає
Запустіть
curl -vзі своїми реальними даними та перевірте наявність рядкаProxy-Authorizationперед помилкою 407.
Часті запитання
Чи може помилка 407 виникати через те, що мій ISP блокує проксі?
Ні. Помилку 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, який достатньо скопіювати один раз і вставити будь-де.
Подивитися ціни на проксі