Прокси-сервер: что это такое простыми словами и как он работает | AdminWiki

Прокси-сервер: что это такое простыми словами и как он работает

31 августа 2026 15 мин. чтения
Содержание статьи

Прокси-сервер: что это такое простыми словами

Прокси-сервер - это промежуточный сервер между клиентом и целевым сервером. Клиент отправляет запрос прокси, прокси проверяет его и передает дальше, получает ответ от целевого сервера и возвращает данные клиенту.

Базовая схема выглядит так: клиент -> прокси-сервер -> целевой сервер. Клиентом может быть браузер, приложение, контейнер или целое устройство. Целевой сервер предоставляет сайт, API, файл или другой сетевой ресурс.

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

Кто участвует в соединении

  • Клиент формирует запрос. Это браузер, командная утилита, мобильное приложение, Docker-контейнер или сетевое устройство.
  • Прокси-сервер принимает соединение, проверяет настройки и политики, при необходимости запрашивает учетные данные, после чего обращается к нужному ресурсу.
  • Целевой сервер обрабатывает запрос и возвращает результат. Им может быть веб-сайт, API, база данных или внутренний сервис.

Без прокси клиент обращается к целевому серверу напрямую. В этом случае целевой сервер видит адрес клиента, а сетевые правила приходится настраивать отдельно на каждом приложении или узле. Прокси создает единую точку для маршрутизации и контроля.

Что меняется при подключении через прокси

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

Второе изменение связано с видимым адресом. Целевой сервер обычно получает IP прокси. Однако исходный адрес может раскрыться через специальные HTTP-заголовки, настройки прозрачного прокси, cookies, учетную запись, отпечаток браузера или другие признаки.

Третье изменение касается управления. Администратор может разрешить только нужные домены и порты, заблокировать вредоносные направления, ограничить скорость, настроить журналирование и контролировать обращения нескольких приложений через одну точку.

Содержимое соединения зависит от протокола. При обычном HTTP прокси может видеть и изменять запросы. При HTTPS TLS обычно защищает содержимое между клиентом и целевым сервером, но прокси видит факт соединения, адрес назначения, время, объем переданных данных и другую метаинформацию. Если администратор применяет TLS-перехват, клиент отдельно должен доверять сертификату прокси.

Как работает прокси-сервер: пошаговый путь запроса

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

Клиент -- запрос --> Прокси:3128 или :8080 -- запрос --> Целевой сервер:443
Клиент <-- ответ -- Прокси <-- ответ -- Целевой сервер

Шаг 1. Клиент направляет запрос на прокси

Приложение должно знать адрес прокси и порт, на котором он принимает подключения. Для HTTP-прокси часто используют порты 3128 или 8080, для SOCKS5 нередко встречается 1080, но номер порта не задается стандартом и зависит от конфигурации.

Адрес можно указать в настройках браузера, операционной системы, переменных окружения или отдельном конфигурационном файле приложения. В Linux и контейнерах часто используют переменные:

HTTP_PROXY=http://PROXY_HOST:3128
HTTPS_PROXY=http://PROXY_HOST:3128
NO_PROXY=localhost,127.0.0.1,.internal

Поддержка переменных зависит от программы. Одни приложения читают HTTP_PROXY и HTTPS_PROXY, другие используют собственный конфигурационный файл, а третьи вообще не умеют работать через прокси без дополнительного клиента.

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

Шаг 2. Прокси принимает и проверяет запрос

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

  • Аутентификация ограничивает доступ к прокси и не позволяет использовать его любому узлу сети.
  • Списки разрешений определяют, к каким доменам, IP-адресам и портам можно подключаться.
  • Фильтры блокируют запрещенные категории ресурсов, вредоносные адреса или конкретные шаблоны запросов.
  • Логи фиксируют время, клиента, направление, код ответа, объем данных и длительность соединения.
  • Лимиты защищают прокси от чрезмерного числа соединений, больших запросов и длительных бездействующих сессий.

Forward proxy может запретить исходящий запрос сотрудника или контейнера. Reverse proxy способен отклонить входящий запрос к веб-приложению по домену, пути, заголовку, IP-адресу или превышению лимита.

Шаг 3. Прокси обращается к целевому серверу и возвращает ответ

Если запрос разрешен, прокси устанавливает соединение с целевым сервером. При обычном HTTP он передает запрос на сервер и получает ответ. При HTTPS клиент обычно отправляет прокси команду CONNECT, например для соединения с портом 443. После успешного ответа прокси передает байты TLS-сеанса между клиентом и целевым сервером.

На результат влияют оба соединения: клиент - прокси и прокси - целевой сервер. Сайт может работать напрямую, но быть недоступным через прокси из-за блокировки, ошибки DNS, неверной аутентификации, закрытого порта или истекшего таймаута.

Задержка складывается из времени подключения клиента к прокси, обработки правил, DNS-разрешения имени, соединения прокси с целевым сервером и передачи ответа. Для рабочих сервисов задают отдельные таймауты подключения и чтения, например 5 секунд на установку соединения и 30 секунд на получение ответа. Конкретные значения зависят от приложения.

Как отличаются HTTP, HTTPS и SOCKS5

ТипУровень работыПодходящий сценарийОграничение
HTTP-проксиHTTP-запросы и ответыБраузеры, REST API, загрузка веб-ресурсовНужна поддержка HTTP-прокси в приложении
HTTPS-проксиHTTPS через TLS или туннель CONNECTЗащищенные веб-запросы и APIСодержимое обычно недоступно прокси без TLS-перехвата
SOCKS5Передача сетевых соединенийРазные TCP-приложения, нестандартные клиенты, туннелированиеСам протокол SOCKS5 не шифрует содержимое

Термин «HTTPS-прокси» используют в двух значениях: прокси принимает защищенное соединение с клиентом либо через него прокладывают HTTPS-туннель к целевому серверу. При выборе нужно проверить документацию конкретного приложения и способ аутентификации.

SOCKS5 передает соединение более универсально и не привязан к формату HTTP. Это удобно для приложений, которые умеют работать с SOCKS5, но не понимают HTTP-прокси. Вопрос DNS нужно проверять отдельно: имя может разрешаться на клиенте или на стороне прокси.

Для чего нужен прокси-сервер

Прокси применяют там, где требуется управлять сетевыми обращениями, скрыть внутренние адреса, опубликовать сервис, распределить нагрузку или собрать сетевые события в одном месте. Конкретная польза зависит от направления трафика и уровня, на котором прокси обрабатывает соединение.

Контроль и фильтрация трафика

Корпоративный forward proxy позволяет задать единые правила для исходящих запросов рабочих станций, серверов и контейнеров. Администратор может разрешить обращения только к репозиториям, API и службам, которые нужны приложению, а остальные направления заблокировать.

  • Блокировка доменов, IP-адресов и портов.
  • Разрешение доступа по группам пользователей или сетям.
  • Ограничение исходящих запросов приложений.
  • Журналирование времени, направления и результата запроса.
  • Контроль использования внешних ресурсов в CI/CD и Docker.

Глубина фильтрации зависит от протокола. Прокси, который видит только TLS-туннель, не может анализировать URL и тело HTTPS-запроса без специального перехвата. Для такого перехвата нужно управлять доверенными сертификатами, политиками хранения ключей и доступом к логам.

Скрытие внутренней инфраструктуры и публикация приложений

Reverse proxy ставят перед веб-приложением. Внешний клиент подключается к Nginx, HAProxy или другому шлюзу, а шлюз передает запрос внутреннему backend-сервису. Контейнер или приложение не требуется напрямую публиковать в интернет.

Reverse proxy может направлять запросы по домену и пути, завершать TLS, добавлять служебные заголовки, ограничивать размер тела запроса и вести единые логи. Backend получает соединение от прокси, поэтому для корректного определения исходного клиента настраивают заголовки вроде X-Real-IP и X-Forwarded-For.

Архитектура и типовые ошибки подробно разобраны в статье об обратном прокси для IT-инфраструктуры.

Работа прокси в Docker и серверных приложениях

В Docker часто используют reverse proxy для входящих запросов. Nginx принимает соединение на внешнем порту и передает его контейнеру по имени сервиса во внутренней сети Docker.

server {
    listen 80;
    server_name app.internal;

    location / {
        proxy_pass http://app:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

В такой схеме имя app должно разрешаться внутри Docker-сети, а приложение должно слушать адрес, доступный из контейнера Nginx. Проверяют сетевую принадлежность контейнеров, внутренний порт, DNS Docker, таймауты и коды ответа backend.

Исходящий прокси для контейнера решает другую задачу. Контейнерное приложение само подключается к внешнему ресурсу через forward proxy. Для этого нужны поддержка прокси в приложении, переменные окружения или отдельная настройка клиента.

Практические варианты reverse proxy для контейнеров, включая Nginx Proxy Manager, Traefik и Caddy, собраны в руководстве по Docker и Nginx.

Кэширование, распределение и оптимизация доступа

Reverse proxy может сохранить разрешенные ответы в кэше и вернуть их повторно без обращения к backend. Это снижает число запросов к приложению, но требует аккуратной работы с заголовками Cache-Control, cookies и персональными данными. Ответы личного кабинета нельзя кэшировать по тем же правилам, что и публичные изображения.

При нескольких backend-серверах прокси распределяет запросы между ними. Используют round-robin, least connections или заданные веса. Для исключения неисправного узла нужны health checks, а для длинных операций - подходящие таймауты и лимиты соединений.

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

Виды прокси: какой вариант выбрать

Forward proxy и reverse proxy

Forward proxy работает от имени клиента. Клиент знает адрес прокси и отправляет через него исходящие запросы. Такой вариант применяют для контроля выхода в интернет, фильтрации трафика, ограничения доступа и маршрутизации запросов приложений.

Reverse proxy стоит перед серверами. Внешний пользователь обращается к прокси, а тот выбирает внутренний backend. Nginx перед Docker-приложением - типичный пример. Клиенту не требуется знать внутренний адрес контейнера.

ПризнакForward proxyReverse proxy
Чья сторона скрываетсяКлиент или внутренняя сетьBackend-серверы
НаправлениеИсходящие запросыВходящие запросы
Кто обычно настраиваетКлиент, администратор сети или приложениеВладелец сервиса или инфраструктуры
Типовые функцииФильтрация, доступ, логиTLS, маршрутизация, балансировка, кэш

HTTP-прокси, HTTPS-прокси и SOCKS5

HTTP-прокси подходит для веб-трафика и приложений, которые понимают HTTP-правила. Он может работать с обычными HTTP-запросами и передавать HTTPS через CONNECT.

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

SOCKS5 работает ниже уровня HTTP и передает сетевые соединения. Он удобен для нестандартных клиентов, но не добавляет шифрование. Защита зависит от TLS самого приложения или другого туннеля.

Прозрачные, частные и публичные прокси

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

Частный прокси ограничивает доступ по учетным данным, IP-адресам или другим правилам. Владелец контролирует его конфигурацию, нагрузку и журналы, поэтому поведение обычно предсказуемее.

Публичный или бесплатный прокси доступен большому числу пользователей. У него часто нет гарантии стабильности, времени работы и конфиденциальности. Возможны перегрузка, внезапное отключение, блокировки адреса и журналирование запросов неизвестной стороной. Риски такого выбора разобраны в материале о бесплатных прокси-серверах.

Прокси-клиент и прокси-сервис: не одно и то же

Прокси-клиент подключается к уже существующему серверу и применяет параметры маршрутизации. Сам клиент не превращает телефон, компьютер или контейнер в готовый прокси-сервис.

Например, Happ работает как мобильное приложение для управления прокси-подключениями на базе Xray core и поддерживает гибкие правила маршрутизации. Это не означает, что приложение автоматически предоставляет сервер или продает VPN-доступ. Сервер нужно получить отдельно или настроить самостоятельно.

Прокси-сервис включает серверную часть, адрес, порт, правила доступа, аутентификацию и условия хранения логов. Перед подключением нужно выяснить, кто управляет сервером и какие данные он сохраняет.

Прокси и VPN: в чем разница

Прокси обычно перенаправляет выбранные соединения конкретного приложения или протокола. VPN создает защищенный туннель между устройством или сетью и VPN-сервером, поэтому через него может проходить больше сетевого трафика. Split tunneling и правила маршрутизации позволяют отправлять через VPN только отдельные направления.

КритерийПроксиVPN
ОхватЧасто отдельное приложение или протоколОбычно устройство, интерфейс или сеть
УровеньЧасто уровень приложенияСетевой уровень и виртуальный интерфейс
ШифрованиеНе гарантируется самим проксиШифруется участок до VPN-сервера
НастройкаАдрес и порт в приложении или системеVPN-клиент, профиль, маршруты и ключи
Типовая задачаФильтрация, reverse proxy, отдельные запросыДоступ к удаленной сети и общий туннель
КонтрольЗависит от типа и возможностей проксиЗависит от VPN-сервера и политики маршрутизации

Какой трафик проходит через прокси и VPN

Прокси в браузере не перенаправляет автоматически трафик терминала, обновления операционной системы или другого приложения. Каждая программа должна поддерживать прокси либо использовать системный механизм, который она учитывает.

VPN обычно меняет маршрутизацию на уровне виртуального сетевого интерфейса. Поэтому через туннель может идти трафик нескольких приложений сразу. Исключения задают через split tunneling, таблицы маршрутов и правила по адресам.

Такое различие объясняет распространенную ситуацию: сайт в браузере открывается через прокси, а запрос из Docker-контейнера идет напрямую. Для контейнера нужно отдельно настроить переменные окружения, конфигурацию клиента или сетевую политику.

Шифрование и модель доверия

Обычный прокси не обязан шифровать соединение между клиентом и прокси. Если приложение использует HTTP, промежуточный узел может прочитать или изменить содержимое запроса. HTTPS защищает данные TLS между клиентом и сайтом, если прокси не выполняет контролируемый TLS-перехват.

VPN шифрует участок между клиентом и VPN-сервером. После выхода из VPN-туннеля защита зависит от протокола целевого сервиса. HTTPS дополнительно шифрует соединение между клиентом и сайтом.

В обоих случаях нужно доверять оператору промежуточного сервера. Он может видеть IP-адрес клиента, время соединения, адрес назначения, объем трафика и технические метаданные. При обычном HTTPS содержимое страницы ему недоступно, но учетные данные нельзя передавать через неизвестный HTTP-прокси.

Когда достаточно прокси, а когда нужен VPN

Прокси подходит, когда нужно направить через промежуточный узел запросы одного приложения, ограничить исходящие обращения контейнеров, опубликовать сервис через Nginx, распределить нагрузку или отфильтровать веб-трафик.

VPN рациональнее, когда требуется защищенный доступ к удаленной корпоративной сети, единый туннель для нескольких приложений, подключение филиала или маршрутизация трафика нескольких устройств. При этом VPN не заменяет reverse proxy перед публичным веб-приложением и не отменяет правила доступа внутри сети.

Ограничения и риски прокси-сервера

Прокси не гарантирует анонимность

Целевой сервер может видеть IP прокси вместо IP клиента, но этого недостаточно для полной анонимности. Пользователя могут связать с запросами по учетной записи, cookies, отпечатку браузера, заголовкам, времени работы и характеру действий.

Прозрачный прокси способен передать исходный адрес через заголовок. Неправильная настройка reverse proxy может раскрыть внутренний IP в ответах, заголовках, сообщениях об ошибках или DNS-записях. Проверять нужно весь путь, а не только значение IP на целевом сервере.

Владелец прокси получает доступ к части данных

Оператор прокси может сохранять адрес клиента, время запроса, домен, порт, код ответа и объем переданных данных. При HTTP он может видеть содержимое и изменить его. При HTTPS содержимое защищает TLS, но прокси остается доверенной стороной для маршрутизации и может собирать метаданные.

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

Скорость, задержки и нестабильность

Прокси может замедлить соединение из-за расстояния, загрузки канала, ограничений поставщика, медленного DNS и очереди соединений. Дополнительная задержка особенно заметна в API, интерактивных терминалах и сервисах с большим числом коротких запросов.

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

Ошибки конфигурации и утечки

  • Неверный порт или протокол приводит к отказу подключения или ошибке рукопожатия.
  • Открытый reverse proxy позволяет посторонним отправлять запросы к внутренним сервисам.
  • Отсутствие аутентификации превращает прокси в доступную точку для чужого трафика.
  • Неправильные заголовки искажают IP клиента, схему HTTPS и имя хоста.
  • Утечка DNS возникает, если имя назначения разрешается напрямую на клиенте, хотя трафик должен идти через прокси.
  • Неверный CONNECT разрешает нежелательные порты или блокирует легитимные HTTPS-соединения.
  • Короткие таймауты обрывают загрузку файлов, WebSocket и длительные API-операции.

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

Как выбрать и проверить прокси на практике

Начать с задачи, а не с типа прокси

Сначала опишите направление трафика и требуемый результат.

  1. Для контроля исходящих запросов сети или приложения нужен forward proxy.
  2. Для публикации внутреннего веб-сервиса нужен reverse proxy.
  3. Для веб-запросов нужен HTTP-прокси с поддержкой HTTPS через CONNECT.
  4. Для разных TCP-приложений подойдет SOCKS5, если клиент его поддерживает.
  5. Для защищенного доступа к удаленной сети нужен VPN.

Зафиксируйте требования к аутентификации, журналированию, скорости, доступности, DNS, длительным соединениям и допустимым направлениям. При необходимости размещения reverse proxy на отдельном сервере подойдет облачная инфраструктура с VDS и сетевыми настройками, например Timeweb Cloud.

Проверить совместимость и безопасность

До настройки в рабочей среде проверьте, поддерживает ли приложение нужный тип прокси и формат аутентификации. Отдельно протестируйте:

  • HTTP и HTTPS-запросы.
  • Проверку сертификата и TLS.
  • Разрешение DNS на клиенте и прокси.
  • WebSocket и длительные соединения.
  • Загрузку файлов и лимит тела запроса.
  • Повторное подключение после отказа.
  • Передачу заголовков Host и X-Forwarded-*.
  • Таймауты подключения, чтения и ожидания backend.

Для reverse proxy проверяют, что наружу опубликованы только нужные порты, внутренние сервисы недоступны напрямую, а правила firewall разрешают соединения только между необходимыми узлами.

Провести базовый тест соединения

CLI-проверка через curl помогает убедиться, что запрос действительно отправляется через прокси:

curl -x http://PROXY_HOST:3128 -I https://TARGET_HOST/

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

Внешний IP сравнивают в трех состояниях: прямое подключение, подключение через прокси и подключение через VPN. Для проверки DNS смотрят, какой узел разрешает имя назначения. В рабочей среде дополнительно сверяют логи прокси с логами приложения.

Для Nginx проверяют статус конфигурации, доступность backend по внутреннему имени, коды ответа и время обработки:

nginx -t
curl -I http://PROXY_HOST/health

Если после настройки прокси нужно восстановить прямое соединение, порядок действий для Windows, macOS, Linux, Android, iOS и приложений описан в инструкции по отключению прокси.

Итог: что важно запомнить о прокси-сервере

  • Прокси-сервер принимает запрос клиента, передает его целевому серверу и возвращает ответ обратно.
  • Прокси может менять маршрут, скрывать исходный IP от целевого сервера, фильтровать трафик, вести логи и ограничивать доступ.
  • Forward proxy управляет исходящими запросами, reverse proxy принимает входящие подключения перед backend-сервисами.
  • HTTP-прокси ориентирован на веб-трафик, SOCKS5 передает соединения универсальнее, но сам не шифрует данные.
  • VPN обычно охватывает больше трафика и шифрует участок до VPN-сервера, но не решает все задачи reverse proxy.
  • Прокси не гарантирует анонимность, безопасность и стабильность. Результат зависит от протокола, владельца сервера, правил доступа и качества конфигурации.
  • Перед настройкой определите задачу, проверьте совместимость, протестируйте HTTPS, DNS, IP, скорость, логи и поведение при отказе.

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

Поделиться:
Сохранить гайд? В закладки браузера