Прямой и обратный прокси: в чём разница

Чем прямой прокси на стороне клиента отличается от обратного перед сайтом, где каждый стоит на пути запроса и какой из них продают как «прокси».

Редакция Prokso 6 мин чтения Гайды
Прямой и обратный прокси: в чём разница
Коротко
  • Прямой прокси работает на стороне клиента и показывает сайту свой адрес вместо вашего
  • Обратный прокси стоит перед сайтом: nginx, CDN, балансировщик — он скрывает и защищает сервер
  • Сервисы прокси, включая Prokso, продают прямые прокси: адреса для ваших запросов
  • Backconnect-шлюз — прямой прокси с одним адресом подключения и большим пулом адресов выхода
  • Прозрачный прокси перехватывает трафик без настроек на устройстве, и пользователь о нём может не знать

Слово «прокси» используют для двух разных вещей. Одни покупают прокси, чтобы собирать цены или вести аккаунты. Другие настраивают прокси на своём сервере, чтобы сайт выдерживал нагрузку. Технически это родственники, но задачи у них противоположные.

Ниже — чем прямой прокси отличается от обратного, где каждый стоит на пути запроса и почему сервисы прокси продают именно прямые. Если вы только начинаете разбираться, сначала загляните в статью что такое прокси-сервер.

Посредник, который работает на вас

Прокси-сервер — это посредник между двумя сторонами соединения. Прямой прокси (forward proxy) стоит на стороне клиента. Вы отправляете запрос не сайту, а прокси, а он уже сам идёт на сайт и возвращает вам ответ.

Путь запроса в словах выглядит так: ваш компьютер → прямой прокси → интернет → сайт. Сайт видит адрес прокси, а не ваш. О том, что за прокси стоит конкретный человек, он не знает, если вы сами себя не выдадите.

Прямой прокси настраивают у себя: в браузере, в антидетекте, в скрипте, в системе. Выбор, через какой прокси идти, делает клиент. Сайт в этой схеме ничего не настраивает и ничего не решает.

Общаться с прямым прокси программа может по разным протоколам. Чаще всего это HTTP, HTTPS или SOCKS5, с логином и паролем или с доступом по IP. Протокол влияет на то, какие программы смогут подключиться, но роль прокси от этого не меняется: он по-прежнему стоит на вашей стороне и выпускает запросы со своего адреса.

Для чего нужен прямой прокси

Главное, что даёт прямой прокси, — другой адрес для ваших запросов. Из этого вытекают все типичные задачи:

  • Сбор открытых данных. Скрипт распределяет запросы по разным адресам и не упирается в лимит одного IP.
  • Проверка гео. Вы смотрите цены, выдачу или рекламу так, как их видит покупатель в Польше или Германии.
  • Работа с несколькими аккаунтами. У каждого профиля свой адрес, и площадка не связывает их по IP.
  • Тестирование сайтов и приложений из разных стран перед запуском.
  • Корпоративный доступ. Компания пускает сотрудников в интернет через свой прокси и контролирует, куда они ходят.

Посредник, который работает на сайт

Обратный прокси (reverse proxy) стоит на стороне сервера. Посетитель думает, что обращается к сайту, а на самом деле его встречает прокси. Он принимает запрос, решает, какому из серверов его передать, и возвращает ответ.

Путь запроса: посетитель → интернет → обратный прокси → сервер сайта. Посетитель не видит настоящий адрес сервера и обычно не знает, сколько серверов стоит за прокси. Настраивает такую схему владелец сайта, а не клиент.

Самые известные примеры — веб-сервер nginx в роли прокси, балансировщики нагрузки и CDN вроде Cloudflare, которые ставят перед сайтом. Когда вы открываете крупный сайт, ваш запрос почти наверняка сначала проходит через обратный прокси.

Что умеет обратный прокси

  • Балансировка нагрузки. Запросы распределяются между несколькими серверами, и сайт не падает при наплыве посетителей.
  • Кэширование. Картинки, стили и неизменные страницы отдаются из памяти прокси, а сервер не тратит на них ресурсы.
  • TLS-терминация. Прокси принимает защищённое соединение HTTPS, расшифровывает его и передаёт запрос серверу внутри своей сети.
  • WAF — фильтр веб-запросов. Прокси отсекает подозрительные запросы, атаки и слишком частые обращения до того, как они дойдут до сервера.
  • Скрытие сервера. Настоящий адрес сервера не светится, и атаковать его напрямую сложнее.

Именно обратный прокси сайта обычно отвечает вам ошибкой 429 или показывает проверку браузера. Это решение владельца сайта, и прямой прокси его не отменяет: он меняет адрес, но правила и лимиты сайта действуют на любой адрес.

Сравнение в одной таблице

ПризнакПрямой проксиОбратный прокси
Где стоитМежду клиентом и интернетомМежду интернетом и сервером сайта
Кто настраиваетКлиент: в браузере, программе, скриптеВладелец сайта или его хостинг
Кого скрываетАдрес клиентаАдрес и устройство серверов
Знает ли о нём сайтСайт видит только адрес проксиЭто часть самого сайта
Типичные задачиСбор данных, проверка гео, аккаунтыБалансировка, кэш, TLS, WAF
ПримерыРезидентские, мобильные, серверные проксиnginx, CDN, балансировщики

Удобно запомнить так: прямой прокси говорит от имени клиента, обратный — от имени сервера. В одном запросе вполне могут встретиться оба. Ваш скрипт идёт через прямой прокси, а сайт принимает запрос своим обратным прокси.

Почему сервисы продают прямые прокси

Обратный прокси не продают как адреса: его ставят под свой сайт, и он работает только для него. Покупать адреса имеет смысл только для прямого прокси, потому что ценность в том, какой адрес увидит сайт.

Поэтому всё, что продаётся как «прокси» — резидентские, мобильные, серверные, — это прямые прокси. Prokso не исключение: вы подключаетесь к хосту gw.prokso.com со своим логином и паролем, а сайт видит адрес нужной страны из пула. Подробнее о типах адресов — на странице резидентские прокси.

Backconnect: один вход, много выходов

У классического прямого прокси один адрес: к нему подключаешься, с него и выходишь. У backconnect-прокси иначе. Вы подключаетесь к одному шлюзу, а он выпускает запрос через один из множества адресов пула.

Такой шлюз удобен тем, что строка подключения не меняется, а адреса выхода меняются по правилам. В Prokso это выглядит так:

  • Порт 823 для HTTP и 824 для SOCKS5 — режим «Новый IP на каждый запрос». Это ротационный прокси: каждый запрос выходит с нового адреса.
  • Порты от 10000 до 20000 — режим «Фиксированный IP (sticky-сессия)». Каждый порт держит один адрес от 1 до 120 минут, по умолчанию 30, и работает и по HTTP, и по SOCKS5.
  • На план можно открыть до 1000 одновременных соединений, а сам шлюз остаётся одним и тем же.

Для клиента backconnect-шлюз всё равно остаётся прямым прокси. Он стоит на вашей стороне пути запроса и меняет адрес, который увидит сайт. Просто за одним входом скрывается не один адрес, а целый пул.

Прозрачный прокси: посредник без настроек

Есть ещё один вид — прозрачный прокси. Его не настраивают на устройстве: провайдер, офисная сеть или публичный Wi-Fi перехватывает трафик сам. Пользователь может даже не знать, что его запросы идут через посредника.

Прозрачные прокси используют для фильтрации сайтов в офисах и школах, для кэширования у провайдеров и для страниц входа в гостевой Wi-Fi. Адрес клиента они обычно не скрывают и часто добавляют в запрос заголовки, по которым сайт понимает, что был посредник. Для задач, ради которых покупают прокси, такой вариант не подходит.

Заголовки, по которым видно посредника

Прокси может добавлять в запрос служебные заголовки, например X-Forwarded-For или Via. В них записывается адрес клиента или сам факт, что запрос прошёл через посредника. Для обратного прокси это нормально: сервер сайта должен знать, какой посетитель к нему пришёл, а не только адрес своего же прокси.

Для прямого прокси такие заголовки, наоборот, нежелательны: они рассказывают сайту то, что вы хотели скрыть. Поэтому важно проверить, что видит сайт после подключения. На странице «мой IP» видно, какой адрес и какую страну получил сайт и нет ли утечки вашего адреса через WebRTC.

Как не запутаться в терминах

  • Если прокси настраиваете вы, чтобы сайт видел другой адрес, — это прямой прокси.
  • Если прокси ставит владелец сайта перед своими серверами, — это обратный прокси.
  • Если трафик перехватывают без ваших настроек, — это прозрачный прокси.
  • Если вы подключаетесь к одному шлюзу и выходите с разных адресов, — это backconnect, разновидность прямого.

Чтобы подключить прямой прокси к своей программе, загляните в раздел инструкции: там пошагово расписаны браузеры, антидетекты, системы и библиотеки для автоматизации. Проверить, какой адрес видит сайт после подключения, можно на странице мой IP.

Вопросы и ответы

Чем прямой прокси отличается от обратного простыми словами?

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

Cloudflare — это прокси?

Да, в роли обратного прокси. Владелец сайта ставит такой сервис перед своим сервером: он кэширует страницы, принимает TLS-соединения и фильтрует подозрительные запросы. К прокси, которые покупают для своих запросов, это отношения не имеет.

Может ли один сервер быть и прямым, и обратным прокси?

Технически да. Например, nginx или Squid можно настроить в обеих ролях. Но на практике это разные задачи с разными настройками, и обычно под них держат разные серверы.

Какой прокси я покупаю в Prokso?

Прямой. Вы подключаетесь к хосту gw.prokso.com, а сайт видит адрес из пула нужной страны. Порт 823 или 824 даёт новый адрес на каждый запрос, порты 10000–20000 держат один адрес на время сессии.

Обходит ли прямой прокси защиту обратного прокси сайта?

Нет. Прямой прокси меняет только адрес, с которого пришёл запрос. Правила, лимиты и проверки обратного прокси сайта действуют на любой адрес, и их нужно соблюдать.

Читайте также