Приведи друга: тебе 15% с каждого заказа, ему скидка 10%
ГлавнаяДокументация407 Proxy Authentication Required

407 Proxy Authentication Required

Ответ 407 приходит от нас, а не от сайта, к которому вы шли. Адресат этого запроса не видел.

Что это значит

Мы не смогли сопоставить ваше соединение с аккаунтом. Либо неверны учётные данные, либо, что бывает гораздо чаще, строка логина не разобралась из-за кривого суффикса.

Ответ 401 это совсем другая история: он приходит от адресата и означает, что вас отверг сайт. Если вы видите 401, прокси отработал.

Обычные причины

По частоте: пробел в названии города вместо дефиса, код страны строчными, недопустимое значение TTL, учётные данные в поле, которое их игнорирует, и только потом действительно неверный пароль.

Отдельного упоминания заслуживают инструменты на Chromium. Флаг --proxy-server принимает только хост и порт, поэтому всё до собаки тихо отбрасывается. Puppeteer требует page.authenticate, Playwright требует отдельных полей, а Selenium требует selenium-wire или сгенерированного расширения.

Кривое и правильное

login_c_us                  wrong, country code must be upper case
login_c_US_city_New York    wrong, space instead of a hyphen
login_c_US_ttl_10m          wrong, only 30s, 15m and 1h exist
login_c_US_city_New-York    correct

Как локализовать

Сократите логин до голого аккаунта без суффиксов и попробуйте снова. Если так работает, добавляйте по одному суффиксу, пока не сломается, и последний добавленный и есть виновник.

Деление логина пополам

curl -x login:password@proxy.sotaproxy.com:10000 https://api.ipify.org
curl -x login_c_US:password@proxy.sotaproxy.com:10000 https://api.ipify.org
curl -x login_c_US_s_1_ttl_15m:password@proxy.sotaproxy.com:10000 https://api.ipify.org

Где учётные данные теряются молча

Регулярный источник 407 это инструмент, который принимает URL прокси с учётными данными и затем игнорирует эту часть. Обычный подозреваемый это автоматизация на Chromium: флаг запуска берёт хост и порт, а всё до собаки исчезает без предупреждения.

Три решения для инструментов на Chromium

# Puppeteer: flag for the address, authenticate for the credentials
args: ["--proxy-server=http://proxy.sotaproxy.com:10000"]
await page.authenticate({ username: "login_c_US", password: "password" });

# Playwright: separate fields, per context
proxy={"server": "http://proxy.sotaproxy.com:10000",
       "username": "login_c_US", "password": "password"}

# Selenium: selenium-wire, credentials inside the URL