
Что такое TCP-прокси?
При знакомстве с прокси вы почти наверняка столкнетесь с TCP-прокси – одним из самых распространенных типов таких серверов. Он работает на транспортном уровне и способен передавать как веб-трафик, так и данные, которые не относятся к работе сайтов. Такая универсальность открывает много сценариев применения: онлайн-игры, сбор информации, мониторинг показателей SEO и другие задачи.
Хотите подробнее разобраться в TCP-прокси-серверах? Тогда это руководство будет полезно. Разберем принцип их работы, основные области применения, порядок настройки, преимущества, ограничения и другие важные моменты. К концу статьи у вас будет достаточно информации, чтобы начать пользоваться такими прокси на практике.
Ключевые выводы
- Стандартный принцип работы: прокси пересылает необработанный трафик на транспортном уровне – уровне 4 модели OSI – и не анализирует данные прикладного уровня.
- Поддерживаемые протоколы: в отличие от HTTP-прокси, TCP-прокси-серверы совместимы с любыми протоколами, использующими TCP. К ним относятся базы данных, SSH, игровые серверы, интернет вещей и многие другие системы. Благодаря этому технология подходит для самых разных задач.
- Прямые и обратные прокси: прямой прокси направляет исходящий трафик клиента, тогда как обратный располагается перед серверами и обрабатывает входящие запросы на подключение.
- Дополнительные возможности: прокси-серверы, работающие по протоколу управления передачей данных, могут прозрачно пропускать TLS-трафик между сторонами либо самостоятельно завершать TLS-соединение, используя мультиплексирование на основе SNI.
- Заголовок протокола: заголовок PROXY сохраняет исходный IP-адрес клиента при передаче трафика через TCP-прокси к внутреннему серверу.
- Распространенные сценарии: такие решения используют для предоставления доступа к базам данных, балансировки нагрузки, анонимного сбора информации, создания промежуточных SSH-серверов и размещения игровых серверов.
- Несложная настройка: достаточно указать прослушиваемый порт, задать целевой адрес в формате «хост:порт» и запустить прокси. Nginx, HAProxy и Envoy изначально поддерживают такую конфигурацию.
- Производительность в сравнении с другими типами: TCP-прокси обычно работает быстрее HTTP-прокси, поскольку ему не нужно разбирать данные прикладного уровня. Однако он не позволяет управлять доступом на уровне отдельных URL или изменять заголовки.
Что такое TCP-прокси?

TCP-прокси – это сервер, который пересылает необработанный трафик протокола управления передачей данных между клиентом и целевым сервером, например сайтом или веб-приложением. Работа идет на транспортном уровне, а содержимое прикладных данных при этом не анализируется. Такой инструмент также называют потоковым прокси.
Проще говоря, это промежуточный узел для соединений, построенных на TCP. Через него можно передавать HTTP-запросы, трафик баз данных, SSH-соединения и любые другие данные, которые используют этот транспортный протокол. Поддержка разных видов трафика делает подобные прокси универсальными. Поэтому в реальных проектах их применяют для решения множества задач.
Чем TCP-прокси отличается от HTTP-прокси
HTTP-прокси работает на прикладном уровне – уровне 7 модели OSI. Он разбирает HTTP-запросы, заголовки и URL, а затем может применять к ним правила доступа. Поддерживается только веб-трафик.
TCP-прокси, напротив, действует на транспортном уровне – уровне 4. Он видит соединения, потоки байтов и номера портов, но не распознает содержимое запросов. Фильтровать отдельные URL или изменять HTTP-заголовки на таком уровне невозможно. Для некоторых проектов это становится заметным ограничением.
TCP-прокси и обратный TCP-прокси
Главное различие между этими вариантами связано с направлением трафика. Прямой TCP-прокси обрабатывает исходящие соединения от имени клиентов. Обратный потоковый прокси располагается перед серверами и принимает входящие подключения вместо них.
Чаще всего обратные прокси применяют для балансировки нагрузки. Входящие соединения распределяются между несколькими внутренними копиями сервера, что помогает сохранить стабильную производительность и повысить надежность системы. Обычным пользователям обычно нужны именно прямые прокси.
Как работает TCP-прокси?
- Клиент подключается к порту TCP-прокси, настроенному на прием соединений.
- Прокси открывает второе соединение – уже с целевым сервером. После этого он передает байты в обоих направлениях, пока одна из сторон не завершит сеанс.
- Содержимое трафика не разбирается. Один и тот же механизм одинаково работает с любым протоколом, который использует TCP.
Роль портов и IP-адресов
IP-адрес и порт – два важнейших элемента маршрутизации трафика и сетевого взаимодействия в целом. Прокси привязывается к определенному порту, а тот, в свою очередь, сопоставляется с заранее настроенной целевой службой. На одном сервере можно разместить сразу несколько сервисов, назначив каждому собственный TCP-порт. Например, порт 5432 может использоваться для PostgreSQL, а порт 6379 – для Redis.
IP-адрес обозначает конкретный сервер. Именно по нему устройства и сети в интернете определяют, куда нужно направить поступивший трафик. Удобно сравнить IP с почтовым адресом: чтобы письмо попало в нужное здание, на конверте указывают его физическое местоположение. Пакетам данных точно так же необходим IP-адрес, иначе они не смогут добраться до требуемого устройства.
TCP-прокси и TLS-трафик
В режиме сквозной передачи прокси перенаправляет зашифрованный поток TLS, не завершая соединение. Сквозное шифрование между клиентом и конечным сервером сохраняется.
Возможен и другой вариант. Прокси самостоятельно завершает TLS-соединение, используя собственный сертификат. Мультиплексирование на основе SNI позволяет одному маршрутизирующему серверу обслуживать несколько TLS-сервисов через общий порт, не расшифровывая передаваемый трафик.
Как работает протокол PROXY для TCP-прокси
Когда маршрутизирующий сервер пересылает соединение дальше, внутренний сервер видит IP-адрес прокси, а не клиента. Протокол PROXY решает эту проблему. Он добавляет в начало TCP-потока небольшой заголовок в формате ASCII, где содержатся настоящий IP-адрес пользователя и исходный порт.
HAProxy, Nginx и Envoy поддерживают этот механизм без дополнительных модулей. Сокрытие клиентского IP делает трафик более конфиденциальным и анонимным. За счет этого можно обходить некоторые ограничения, основанные на местоположении или сетевом адресе.
Распространенные сценарии использования
PostgreSQL, MySQL, Redis, MongoDB и другие базы данных применяют собственные двоичные протоколы поверх TCP. Обычные HTTP-прокси не могут эффективно работать с таким трафиком. TCP-прокси предоставляет контролируемый внешний доступ к системе, не раскрывая адрес сервера базы данных напрямую.
Балансировка TCP-соединений
Обратный прокси распределяет входящие подключения между несколькими внутренними серверами. Для этого используются разные алгоритмы, включая циклическое распределение и выбор узла с наименьшим числом активных соединений. В подобных конфигурациях часто применяют HAProxy и Envoy.
Балансировка помогает направлять трафик с учетом состояния серверов и их текущей загруженности. В результате нагрузка распределяется равномернее, а вероятность перегрузки отдельных узлов снижается.
Анонимизация исходящего трафика и сбор данных
Прямой потоковый прокси направляет клиентский трафик через промежуточный IP-адрес. Так повышается анонимность соединения. Эта особенность полезна для геотаргетинга и сбора информации с веб-страниц, где требуется скрывать или регулярно менять сетевой адрес.
ProxyWing предлагает резидентские прокси и дата-центр IP-адреса, через которые можно направлять TCP-трафик. Сеть охватывает свыше 190 стран, а общий пул включает более 70 миллионов адресов. За счет этого пользователь получает больше вариантов для выбора нужного местоположения.
Игровые серверы, SSH и протоколы интернета вещей
Игровые серверы, промежуточные узлы SSH и брокеры интернета вещей, использующие MQTT или AMQP, работают поверх TCP. Дополнительный прокси-уровень помогает контролировать доступ и скрывать IP-адрес.
Подмена сетевого адреса может пригодиться для подключения к играм или отдельным функциям, доступным только в определенных регионах. Тот же подход используется при передаче SSH-трафика на серверы, для которых установлены географические ограничения.
Как настроить TCP-прокси
- Определите прослушиваемый порт: на нем прокси будет принимать входящие соединения.
- Укажите целевой адрес: задайте хост и порт сервера, на который необходимо пересылать подключения.
- Запустите прокси: примените конфигурацию и откройте порт для приема соединений.
Nginx маршрутизирует TCP-трафик через модуль stream, который настраивается отдельно от блока http:
stream {
server {
listen 5432;
proxy_pass db.internal:5432;
}
}
В HAProxy используются блоки внешнего и внутреннего интерфейсов с режимом tcp:
frontend tcp_front
bind *:5432
mode tcp
default_backend tcp_back
backend tcp_back
mode tcp
server db1 db.internal:5432
Envoy использует прослушивающий модуль с фильтром TCP-прокси, прописанным в конфигурационном файле YAML:
listeners:
– address:
socket_address: { address: 0.0.0.0, port_value: 5432 }
filter_chains:
– filters:
– name: envoy.filters.network.tcp_proxy
typed_config:
cluster: db_cluster
Все три решения относятся к производительным инструментам с открытым исходным кодом и подходят для использования в рабочих системах. Выбор зависит от особенностей инфраструктуры и удобства настройки. Nginx проще всего запустить, HAProxy часто выбирают для балансировки нагрузки, а Envoy подходит для сложных сред с сервисной сеткой.
Как выбрать подходящего поставщика TCP-прокси
Выбор провайдера напрямую влияет на удобство работы, скорость соединения и стабильность всей системы. Для сбора данных и автоматизации ProxyWing предлагает более 70 миллионов чистых резидентских и дата-центр IP-адресов. Доступен геотаргетинг до уровня города, а инфраструктура работает более чем в 190 странах.
Большой адресный пул помогает гибко выбирать географическое положение и поддерживать стабильную пропускную способность. Подробные условия доступны на странице TCP-прокси сервиса.
Преимущества и ограничения
Преимущества
- Работает с любыми сервисами на основе TCP, а не только с HTTP, поэтому подходит для большего числа задач.
- Обычно быстрее HTTP-прокси, поскольку не тратит ресурсы на разбор содержимого прикладного уровня.
- Поддерживает сквозную передачу TLS-трафика.
Ограничения
- Не позволяет управлять доступом на уровне отдельных URL или переписывать заголовки.
- Не может кэшировать ответы.
- Не дает возможности просматривать содержимое прикладного уровня.
TCP или HTTP: какой вариант выбрать?
Решение зависит от характера проекта и типа передаваемого трафика.
- Используйте HTTP-прокси, когда сервис работает по HTTP или HTTPS, а вам необходимо управлять доступом на уровне URL либо изменять заголовки. Такой вариант в первую очередь предназначен для обработки веб-запросов.
- TCP-прокси подойдет для перенаправления соединений с базами данных, работы с нестандартными протоколами и сквозной передачи TLS. Для трафика, который не относится к веб-среде, он почти всегда оказывается более практичным решением.
ProxyWing поддерживает оба типа прокси и предоставляет резидентские и дата-центр IP-адреса более чем в 190 странах.
Статью написал:

Руководитель продукта и операций поддержки
Максимилиан выстроил службу поддержки Proxywing с нуля, превратив разрозненные процессы в структурированный, самостоятельный отдел с задокументированными рабочими процессами, чёткими путями эскалации и стабильным качеством сервиса. Сегодня он выступает связующим звеном между CEO и инженерными командами, переводя бизнес-приоритеты в конкретные задачи и обеспечивая своевременную реализацию проектов, связанных с прокси-инфраструктурой. Академическая база в области психологии — с формальной подготовкой в методологии исследований и анализе данных — усиливает его подход к проектированию процессов и интерпретации обратной связи от пользователей. Вне работы Максимилиан исследует пересечения человеческого поведения, принятия решений и продуктового мышления.
Все статьи автора (64)Ответы на часто задаваемые вопросы
Как правило, да. Потоковый прокси пересылает необработанные последовательности байтов и не тратит ресурсы на анализ содержимого. Благодаря этому задержка обычно ниже, чем при работе через HTTP-прокси. Такая производительность полезна, например, при сборе данных, где требуется высокая пропускная способность.
Да. В режиме сквозной передачи TLS-трафик проходит от клиента к целевому серверу без завершения шифрованного соединения на промежуточном узле. При наличии сертификата прокси также может самостоятельно завершать TLS-сеанс.
Да. Обратный потоковый прокси распределяет соединения между внутренними серверами. Для этого могут применяться циклический алгоритм или метод выбора узла с наименьшим количеством активных подключений. Среди распространенных инструментов для такой конфигурации – HAProxy и Envoy.
VPN шифрует весь трафик устройства на системном уровне. Обычно такую технологию выбирают, когда основной задачей становится конфиденциальность передаваемых данных.
Потоковый прокси действует точечно. Он перенаправляет отдельные соединения через заданные порты и сам по себе не обеспечивает системное шифрование всего трафика. Этот подход дает больше гибкости и лучше подходит для автоматизации. Прокси-сервисы также предоставляют доступ к крупным пулам IP-адресов, поэтому пользователь может выбирать разные географические точки подключения.
Да, но напрямую подключить его обычно нельзя. Веб-браузеры изначально рассчитаны на работу с HTTP-прокси или SOCKS-прокси.
Потоковые решения чаще применяются во внутренней инфраструктуре и средствах автоматизации, которые поддерживают необработанные TCP-соединения. При открытии сайтов такой прокси может работать на промежуточном уровне, однако сам браузер все равно взаимодействует с HTTP- или SOCKS-уровнем.
Да. В режиме сквозной передачи зашифрованный поток перенаправляется без завершения TLS-соединения. При использовании режима завершения шифрованный трафик расшифровывается на самом прокси.
Маршрутизация на основе SNI позволяет обслуживать через один порт несколько TLS-сервисов с разными доменными именами. Входящие подключения направляются к нужным внутренним серверам без расшифровки самого трафика.


