Ошибка 403 Forbidden при работе через прокси: как понять, забанен ли IP
Ошибка прокси 403 Forbidden означает, что запрос дошёл до сервера, был понят, но в доступе отказали. Это не обрыв связи и не неверный пароль: кто-то сознательно сказал «нет». Главное в диагностике — выяснить, кто именно отказал: сам прокси или сайт, и что стало причиной — адрес, подсеть или поведение вашего софта. Ниже — порядок проверки, который отвечает на это за 5–10 минут.
Что значит ошибка прокси 403 Forbidden
Код 403 возвращает тот, кто стоит последним в цепочке и принял решение отказать. Вариантов два.
- Отказал прокси-сервер. Логин и пароль приняты, но правила прокси запрещают этот запрос: закрытый порт назначения, запрещённый домен, ограничение по IP клиента. Если бы не прошла авторизация, вы увидели бы ошибку 407, а не 403.
- Отказал сайт. Прокси честно передал запрос, а сайт или его защита (Cloudflare, DDoS-Guard, собственный WAF) решили, что пускать вас не надо. Это самый частый случай.
Сам по себе код 403 не говорит, что IP забанен навсегда. Сайт может отказывать из-за User-Agent, отсутствия cookies, неподходящей страны или слишком частых запросов. Поэтому сначала собираем улики, потом делаем выводы.
Кто вернул 403: прокси или сайт
Самый быстрый способ — посмотреть заголовки ответа. Через curl это одна команда:
curl -I -x http://login:pass@IP:PORT https://site.ru/
Флаг -I выводит только заголовки. По ним обычно сразу видно, чей это ответ.
| Признак в ответе | Кто отказал |
|---|---|
Заголовки cf-ray, Server: cloudflare | Защита Cloudflare перед сайтом |
| Страница «Error 1020 Access denied» | Правило firewall на Cloudflare |
Server: ddos-guard | DDoS-Guard перед сайтом |
| Простая страница «403 Forbidden nginx» | Веб-сервер сайта |
| Ответ без заголовков сайта, страница от прокси | Сам прокси-сервер |
Если в ответе есть заголовок Set-Cookie с доменом сайта или его фирменная страница ошибки — прокси точно ни при чём, запрос дошёл до цели.
Как понять, забанен ли IP
Чтобы отделить бан адреса от других причин, повторите один и тот же запрос в разных условиях и сравните результат.
- Без прокси. Откройте сайт со своего домашнего интернета. Если 403 и здесь — проблема не в прокси: сайт закрыт для вашей страны или требует авторизации.
- Через этот же прокси, но из обычного браузера. Если в браузере страница открывается, а скрипт получает 403 — сайт отсекает софт по User-Agent, заголовкам или отпечатку TLS. Адрес тут не виноват.
- Через другой прокси той же страны. Если на соседнем адресе всё открывается — забанен конкретный IP.
- Через прокси другой страны. Если не открывается ни один адрес одной страны, а другой страны работает — у сайта гео-фильтр или заблокирована вся подсеть хостера.
Заодно проверьте, какой адрес видит сайт. Команда curl -x http://login:pass@IP:PORT https://api64.ipify.org покажет внешний IP. Подробнее о проверках — в статье как проверить прокси на работоспособность.
Особенность IPv6-прокси
У IPv6-прокси есть нюанс, который часто путает диагностику. Если у сайта нет IPv6-адреса, ваш индивидуальный IPv6 до него не доходит: соединение идёт по IPv4, и сайт видит IPv4-адрес сервера. Проверить, поддерживает ли сайт IPv6, можно командой:
dig AAAA site.ru +short
Пустой ответ — у сайта только IPv4. В этом случае смена IPv6-адреса внутри той же страны ничего не изменит, а смена страны — изменит. Если AAAA-запись есть, сайт видит именно ваш IPv6. Многие антифрод-системы оценивают IPv6 не по одному адресу, а по подсети /64 или /48, поэтому бан может накрыть сразу соседние адреса.
Частые причины 403 и что с ними делать
Адрес из дата-центра
Часть сайтов — некоторые маркетплейсы, стриминги, банки — по умолчанию не пускают трафик из сетей хостинг-провайдеров. Они проверяют не конкретный IP, а принадлежность к автономной системе дата-центра. Ротация серверных адресов тут не поможет, нужен другой тип прокси. Честно: все серверные прокси, включая наши, под такие сайты не подходят.
Слишком частые запросы
Обычно сайт сначала отвечает ошибкой 429, а при продолжении переводит адрес в 403 на часы или сутки. Снизьте частоту, добавьте паузы между запросами и распределите нагрузку на несколько адресов. Как считать нужное количество — в разборе прокси для парсинга.
Скрипт выглядит как скрипт
Запрос с заголовком User-Agent: python-requests/2.31 или без Accept-Language многие WAF режут сразу. Передавайте заголовки реального браузера, сохраняйте cookies между запросами. Если защита проверяет JavaScript, обычный HTTP-клиент не пройдёт — нужен браузер под управлением Playwright или Puppeteer.
Гео-ограничение
Сайт может работать только для определённых стран. Сервис для жителей Германии отдаст 403 на адрес из Нидерландов. Решение — прокси нужной страны.
Запрет на стороне прокси
Если по заголовкам видно, что ответил сам прокси, причина в его правилах: закрыт порт назначения или ресурс в списке запрещённых. Здесь поможет только поддержка провайдера — пришлите им адрес прокси, целевой URL и время запроса.
Что делать, если IP действительно в бане
Если проверка показала, что отказ привязан к адресу, вариантов немного:
- сменить адрес и не повторять то, что привело к бану, иначе новый IP уйдёт следом;
- если бан накрыл подсеть — сменить страну или провайдера;
- подождать: временные блокировки по частоте запросов обычно снимаются сами через несколько часов, постоянные — нет;
- для аккаунтов закрепить за каждым свой адрес и не прыгать между ними — частая смена IP для одного профиля сама по себе выглядит подозрительно.
В ModJus смена гео делается в Telegram-боте @ModJus_bot, а список стран — на странице локаций. Цена одинаковая для всех стран — 10 ₽ за прокси на 30 дней, поэтому проверить гипотезу «дело в стране» можно за копейки.
Короткий алгоритм
Получили 403 — посмотрите заголовки через curl -I и поймите, кто отказал. Если сайт — сравните запрос без прокси, из браузера, через соседний адрес и через другую страну. Первое различие в результатах и укажет причину: софт, конкретный IP, подсеть или гео. Менять адрес имеет смысл только после того, как вы исключили заголовки и частоту запросов, иначе новый IP получит тот же 403 через десять минут.