HTTP 407 Proxy Authentication Required: як виправити
407 повертає сам проксі, а не сайт: він вимагає облікові дані, яких не отримав. Пояснюємо, що саме викликає цю помилку, і розбираємо виправлення для curl, браузерів, Python, Windows і корпоративних проксі.
Що насправді означає 407
HTTP 407 Proxy Authentication Required приходить від проксі, а не від сайту призначення. Це спосіб проксі сказати: «Я перешлю твій запит, але спершу доведи, хто ти». На рівні проксі це близнюк 401: у відповіді є заголовок Proxy-Authenticate зі схемою, якої проксі хоче (зазвичай Basic), а клієнт має повторити запит із заголовком Proxy-Authorization. Якщо облікових даних немає, вони поламані або неправильні — ви отримуєте 407.
З автентифікованими проксі на кшталт s4m — SOCKS5 на 1080, HTTP на 3128, обидва з USER:PASS — 407 майже завжди означає одне з чотирьох: облікові дані не передані, передані неправильні, у паролі є спецсимволи, що зламали розбір URL, або інструмент, яким ви користуєтеся, читає облікові дані не там, куди ви їх поклали (класика для Puppeteer і Scrapy). Нижче виправлення від найчастішого до найрідшого. Контекст — у гайді з автентифікації проксі та в огляді проксі.
Правильні облікові дані — для кожного інструмента
Ті самі USER:PASS, але в тому місці, звідки їх реально читає кожен інструмент. Підставте свої облікові дані.
# curl: inline in URL, or with -U (URL-encode special chars, e.g. @ -> %40) curl -x http://USER:[email protected]:3128 https://api.ipify.org curl -x proxy.s4m.online:3128 -U USER:PASS https://api.ipify.org # wget: dedicated flags wget -e https_proxy=proxy.s4m.online:3128 \ --proxy-user=USER --proxy-password=PASS https://example.com # Python requests: credentials belong in the proxy URL # proxies = {"http": "http://USER:[email protected]:3128", # "https": "http://USER:[email protected]:3128"} # requests.get(url, proxies=proxies) # Environment variables (many tools read these): export HTTPS_PROXY="http://USER:[email protected]:3128" # Special characters? URL-encode the password: # pa@ss -> pa%40ss (Python: urllib.parse.quote(pw, safe='')) # Verify it worked: a 200 with an IP body means auth passed. curl -o /dev/null -s -w "%{http_code}\n" \ -x http://USER:[email protected]:3128 https://api.ipify.org
Лагодимо 407 крок за кроком
Ідіть списком згори вниз; більшість 407 закривається на кроці 3.
Переконайтеся, що проксі вимагає автентифікації
Проксі s4m вимагають USER:PASS. 407 означає, що проксі не отримав дійсних облікових даних, — тож питання лише в тому, де ваші губляться, а не в тому, чи потрібна автентифікація взагалі.
Перевірте облікові дані до символа
Скопіюйте USER і PASS з панелі ще раз. Зайвий пробіл у кінці, одна не та літера чи протермінований доступ — усе це дає 407. Спершу перевірте їх однією командою curl -x.
Кодуйте спецсимволи в URL
Якщо в паролі є @, :, /, # або схоже — закодуйте їх (@ стає %40). Без кодування вони ламають URL проксі, і клієнт надсилає неправильні або обрізані облікові дані.
Кладіть облікові дані туди, звідки їх читає інструмент
Частина інструментів ігнорує облікові дані в URL: Puppeteer потребує page.authenticate(), Scrapy — заголовка Proxy-Authorization. Підбирайте спосіб під інструмент, а не лише під проксі.
Браузери, Windows і корпоративні проксі
У браузері 407 зазвичай виглядає як спливне вікно входу від проксі; правильні ім'я користувача та пароль його закривають. Коли браузер автоматизований, саме це вікно і є проблемою — headless Chromium не має чим на нього відповісти. Тому Puppeteer використовує page.authenticate(), Playwright приймає облікові дані у своєму об'єкті проксі, а Selenium потребує невеликого розширення. У Windows перевірте системний проксі в налаштуваннях і проксі окремих застосунків: застаріле збережене там значення дає 407 в інструментах, які успадковують системний проксі.
Корпоративні проксі додають нюанс: деякі використовують NTLM або Kerberos замість Basic, тож звичайного USER:PASS замало — потрібен режим NTLM у вашому інструменті. Сам s4m працює на стандартному Basic USER:PASS, тож із нашими ендпоінтами NTLM не знадобиться. Якщо облікові дані точно правильні, а 407 не зникає, перевірте порт (1080 SOCKS5, 3128 HTTP) і перевірте ендпоінт через інструменти. Споріднену помилку Chrome розібрано в гайді про ERR_PROXY_CONNECTION_FAILED.
Відповіді на питання
Помилка 407 — це провина сайту чи проксі?
Проксі. HTTP 407 Proxy Authentication Required повертає саме проксі, а не сайт призначення: він повідомляє, що йому потрібні дійсні облікові дані, перш ніж він перешле запит. До сайту справа взагалі не доходить, доки ви не автентифікуєтеся.
Чому 407 з'являється навіть із правильним паролем?
Найчастіше в паролі є спецсимволи, які ламають URL проксі, тож клієнт надсилає не те значення. Закодуйте їх для URL (наприклад, @ стає %40). Ще перевірте, що інструмент читає облікові дані саме звідти, куди ви їх поклали.
Як полагодити 407 у Puppeteer, Playwright чи Selenium?
Браузери ігнорують облікові дані у прапорці проксі. У Puppeteer використовуйте page.authenticate(), у Playwright — поля username/password об'єкта проксі, у Selenium — невелике розширення з обліковими даними.
Чи використовує s4m автентифікацію NTLM?
Ні. s4m використовує стандартну автентифікацію Basic USER:PASS на портах 1080 (SOCKS5) і 3128 (HTTP). NTLM стосується лише деяких корпоративних проксі, а не наших ендпоінтів.
Проксі з простою автентифікацією
Проксі s4m працюють на звичайному USER:PASS на proxy.s4m.online — без NTLM і без сюрпризів. SOCKS5 та HTTP дата-центру з оплатою за трафік, а для доступу за білим списком є виділений IP.
Цю сторінку знаходять за запитами
- HTTP 407 proxy authentication required
- як обійти блокування сайтів
- свіжий список безкоштовних проксі
- як обійти геоблокування за допомогою VPN або проксі
- кращі налаштування проксі 2026
- проксі для парсингу
- wireguard інструкція
- http проксі
- купити http проксі
- проксі у WhatsApp
- socks5 проксі налаштування
- авторизація проксі
Реальні пошукові фрази, на які відповідає ця сторінка — за посиланнями відкриються матеріали, що розкривають тему глибше.