PROXY Protocol в 2026 году: как сохранить реальный IP клиента за прокси
Что такое PROXY Protocol и как его правильно включить на личном VPS SANSARA в 2026 году. Сохраняем реальный IP клиента за прокси, настраиваем NGINX, Traefik, HAProxy, работаем с iPhone, Android, Windows, macOS.
Чтобы за прокси или балансировщиком сервер видел исходный IP клиента, включите PROXY Protocol на личном VPS SANSARA. После регистрации получите данные подключения в кабинете и импортируйте их в клиент на своём устройстве. Сервер уже готов принимать трафик — остаётся активировать PROXY Protocol в настройках обратного прокси или приложения.
Коротко:
- PROXY Protocol — небольшой заголовок, который прокси добавляет в начало TCP‑соединения и передаёт серверу исходный IP клиента.
- Работает на уровне TCP, не зависит от HTTP, HTTPS или других протоколов поверх него.
- Версия v2 — бинарная, компактнее v1 и несёт больше метаданных (например, признак TLS‑соединения).
- Поддерживается в HAProxy, NGINX, Traefik, AWS Network Load Balancer и многих других системах.
Что это и кому подходит
Когда трафик проходит через прокси или балансировщик, сервер «видит» только IP этого промежуточного узла. PROXY Protocol решает эту проблему: прокси добавляет в начало соединения короткий блок с информацией о клиенте, а сервер его парсит и восстанавливает исходный IP.
Отличие от HTTP‑заголовков типа X-Forwarded-For:
- X-Forwarded-For работает только для HTTP(S).
- PROXY Protocol работает на уровне TCP, поэтому подходит для любого протокола поверх TCP (почта, базы данных, игровые серверы и т.д.).
- Заголовок X-Forwarded-For легко подделать, если прокси не настроен правильно; PROXY Protocol принимается только от доверенных IP‑адресов прокси, что делает его безопаснее.
Кому это нужно:
- Владельцам личных VPS, которые ставят перед приложениями обратный прокси (NGINX, HAProxy, Traefik).
- Тем, кто хочет точного логирования IP‑адресов, IP‑based rate‑limiting, проверки SPF/DKIM/DMARC по реальному IP.
- Тем, кто использует несколько уровней прокси (например, облачный балансировщик → свой прокси → бэкенд).
Как настроить по шагам (с личным VPS SANSARA)
Шаг 1. Получите личный VPS и данные подключения
- 01Зарегистрируйтесь в SANSARA.
- 02В кабинете выберите локацию (доступно 9+ стран) и закажите личный VPS.
- 03После активации в кабинете появятся данные подключения: адрес сервера, порт, тип шифрования, логин/пароль или строка конфигурации.
- 04Используйте Telegram‑бота SANSARA, чтобы быстро получить эти данные в чате.
Никакой ручной установки панелей или работы в терминале для обычного пользователя не требуется — сервер уже готов принимать трафик.
Шаг 2. Выберите и настройте обратный прокси на VPS
Вариант A: HAProxy
HAProxy — один из самых популярных прокси с нативной поддержкой PROXY Protocol.
Пример конфигурации для отправки PROXY Protocol v2 на бэкенд:
` frontend web_front bind *:80 mode http default_backend webservers
backend webservers mode http server web1 127.0.0.1:8080 send-proxy-v2 check `
Здесь HAProxy принимает HTTP‑запросы на порту 80 и пересылает их на локальный сервер 127.0.0.1:8080, добавляя заголовок PROXY Protocol v2.
Если вы принимаете PROXY Protocol от другого прокси (например, облачного балансировщика), укажите это в bind:
` frontend tcp_front bind *:443 accept-proxy mode tcp default_backend tcp_servers `
Опция accept-proxy говорит HAProxy ожидать PROXY Protocol на входящих соединениях.
Вариант B: NGINX
В NGINX PROXY Protocol включается в директивах listen для stream‑модуля (уровень TCP) или для HTTP, если нужна поддержка на уровне L7.
Stream‑блок (например, для проксирования SMTP/IMAP или произвольного TCP):
` stream { server { listen 12345 proxy_protocol; proxy_pass backend_service; proxy_protocol on; } } `
Для HTTP‑блока:
` server { listen 80 proxy_protocol; listen 443 ssl proxy_protocol;
set_real_ip_from доверенный_IP_прокси; real_ip_header proxy_protocol; } `
Здесь real_ip_header proxy_protocol указывает NGINX брать IP из PROXY Protocol, а set_real_ip_from ограничивает доверенные источники.
Вариант C: Traefik
Traefik поддерживает PROXY Protocol v2 для TCP‑роутинга. В Docker‑метках или статической конфигурации можно указать:
`yaml
traefik.tcp.routers.smtp.entrypoints=smtp traefik.tcp.services.smtp.loadbalancer.proxyProtocol.version=2 `
В статическом traefik.yml для entrypoint:
`yaml entryPoints: websecure: address: ":443" proxyProtocol: insecure: false trustedIPs:
- "192.168.1.0/24"
`
trustedIPs задаёт список доверенных адресов прокси, от которых Traefik будет принимать PROXY Protocol.
Шаг 3. Настройте бэкенд‑приложение принимать PROXY Protocol
Недостаточно включить PROXY Protocol на прокси — бэкенд тоже должен его понимать.
- Если бэкенд — это другой NGINX, Apache, Traefik, Stalwart Mail Server и т.д., используйте их настройки для приёма PROXY Protocol (как в шаге 2).
- Если это собственное приложение, используйте библиотеки, которые умеют парсить PROXY Protocol (например, netty-codec-haproxy для JVM‑приложений), и убедитесь, что они обновлены до версий с исправлением утечек памяти в обработке вложенных TLV‑записей.
Шаг 4. Проверьте работу
- 01Включите подробное логирование на бэкенде, чтобы видеть IP‑адреса в логах.
- 02Сделайте запрос через прокси и убедитесь, что в логе бэкенда отображается реальный IP клиента, а не IP прокси.
- 03Для TCP‑сервисов можно использовать tcpdump или tshark, чтобы убедиться, что PROXY‑заголовок присутствует в начале сессии.
Устройства: iPhone, Android, Windows, macOS
PROXY Protocol работает на стороне сервера, поэтому настройка на клиентских устройствах не требуется. Вам нужно только подключиться к своему личному VPS SANSARA через поддерживаемый клиент.
Windows / macOS
- Используйте современные GUI‑клиенты, такие как Clash Verge Rev (поддерживает Mihomo/Clash Meta) или Surge (macOS/iOS). Они умеют работать с современными протоколами и имеют удобные интерфейсы для импорта конфигурации.
- В Clash Verge Rev импортируйте конфигурацию, полученную из кабинета SANSARA или от Telegram‑бота, выберите нужный сервер и активируйте туннель.
Android
- Один из самых популярных вариантов — v2rayNG. Он стабилен, поддерживает множество протоколов и регулярно обновляется.
- В v2rayNG добавьте новую конфигурацию, вставив ссылку или строку конфига от SANSARA, затем запустите соединение.
iPhone
- Surge для iOS — платное, но мощное решение с продвинутыми возможностями диагностики сети.
- Альтернативно можно использовать другие поддерживаемые клиенты, которые работают с конфигурацией в формате, предоставляемом SANSARA.
- Настройка сводится к импорту конфигурации (через файл, ссылку или текстовое поле) и включению туннеля.
Во всех случаях сам PROXY Protocol настраивается на вашем VPS в обратном прокси, а клиенты просто подключаются к защищённому каналу как обычно.
Частые ошибки и как их избежать
- 01PROXY Protocol включён только на одном конце
Симптом: соединения сбрасываются или в логах бэкенда виден IP прокси, а не клиента.
Решение: убедитесь, что:
- Прокси отправляет PROXY Protocol (send-proxy-v2 в HAProxy, соответствующие опции в Traefik/других).
- Бэкенд принимает PROXY Protocol (accept-proxy, proxy_protocol on, real_ip_header proxy_protocol и т.д.).
- 01Неправильные trusted IPs
Симптом: бэкенд отвергает соединения с PROXY Protocol или, наоборот, принимает поддельные заголовки.
Решение: всегда ограничивайте доверенные сети:
- В NGINX: set_real_ip_from с CIDR прокси.
- В Traefik: proxyProtocol.trustedIPs.
- В других системах — аналогичные настройки «trusted proxies».
- 01Смешение PROXY Protocol и SSL/TLS
Симптом: TLS‑рукопожатие ломается, соединение не устанавливается.
Решение:
- Если прокси не терминатор TLS, используйте PROXY Protocol поверх уже установленного TLS (например, TCP‑проксирование зашифрованного трафика).
- Убедитесь, что бэкенд ожидает PROXY‑заголовок до начала TLS‑handshake.
- 01Старая версия библиотеки с уязвимостью CVE‑2026‑48059
Симптом: при определённых типах PROXY‑заголовков наблюдается рост потребления памяти, возможны отказы сервиса.
Решение: для JVM‑приложений, использующих Netty HAProxy codec, обновите netty-codec-haproxy до версий 4.1.135 или 4.2.15 и выше, где утечка памяти при парсинге вложенных PP2_TYPE_SSL TLV исправлена.
- 01PROXY Protocol v1 вместо v2
Симптом: всё работает, но логи не содержат дополнительных метаданных (TLS‑статус и др.), или возникают проблемы совместимости.
Решение: по возможности используйте PROXY Protocol v2:
- В HAProxy: send-proxy-v2.
- В Traefik: version=2.
- Убедитесь, что бэкенд поддерживает v2.
FAQ
Зачем нужен PROXY Protocol, если есть X-Forwarded-For?+
X-Forwarded-For работает только для HTTP(S) и легко подделывается, если прокси не настроен правильно. PROXY Protocol работает на уровне TCP, подходит для любых протоколов и принимается только от доверенных IP‑адресов, что безопаснее и универсальнее.
На каких протоколах работает PROXY Protocol?+
На любых протоколах поверх TCP: HTTP, HTTPS, SMTP, IMAP, произвольные TCP‑сервисы. Это не HTTP‑заголовок, а отдельный блок данных в начале TCP‑соединения.
Нужно ли настраивать что‑то на клиенте (телефоне или компьютере)?+
Нет. PROXY Protocol настраивается исключительно на серверной стороне — между прокси/балансировщиком и бэкендом. Клиенты подключаются к вашему VPS как обычно, без изменений.
Можно ли использовать PROXY Protocol с облачными балансировщиками, например AWS NLB?+
Да. AWS Network Load Balancer поддерживает PROXY Protocol v2. Вы включаете его на стороне NLB, а ваш бэкенд (HAProxy, NGINX, Traefik) принимает заголовок и видит реальные IP клиентов.
Что делать, если бэкенд не поддерживает PROXY Protocol?+
Есть два пути:
- 01Поставить перед ним ещё один прокси, который будет принимать PROXY Protocol, снимать его и соединяться с бэкендом обычным TCP‑соединением.
- 02Если возможно, доработать приложение, добавив парсинг PROXY Protocol с помощью соответствующих библиотек.
Сравнение подходов к передаче клиентского IP
| Подход | Уровень работы | Безопасность | Универсальность | Сложность настройки |
|---|---|---|---|---|
| PROXY Protocol | TCP (L4) | Высокая (только от доверенных IP) | Любой протокол поверх TCP | Средняя (нужно на двух концах) |
| X-Forwarded-For | HTTP (L7) | Низкая (легко подделать) | Только HTTP(S) | Низкая (только на прокси) |
| Транспарентный прокси (IP‑спуфинг) | Сетевой (L3) | Зависит от провайдера | Любой трафик | Высокая (требует поддержки от сети) |
Итог
- 01Включите PROXY Protocol v2 на своём обратном прокси (HAProxy, NGINX, Traefik) и на бэкенде, чтобы за прокси всегда был виден реальный IP клиента.
- 02Ограничьте доверенные IP‑адреса, от которых принимается PROXY Protocol, чтобы избежать подделки заголовков.
- 03Обновите библиотеки парсинга PROXY Protocol (например, Netty) до версий с исправлением CVE‑2026‑48059, если используете их в своём стеке.
- 04На клиентских устройствах просто импортируйте конфигурацию из кабинета SANSARA или от Telegram‑бота в подходящий клиент (Clash Verge Rev, Surge, v2rayNG и др.) — больше ничего настраивать не нужно.
- 05Проверяйте логи бэкенда и, при необходимости, дампы трафика, чтобы убедиться, что PROXY Protocol работает корректно и IP‑адреса отображаются верно.
Ещё по теме
Читайте также
CTA · SANSARA
Личный VPS — без терминала и очередей
Регистрация, импорт профиля и стабильный канал на телефон и компьютер. Тот же принцип, о котором мы пишем в блоге — на практике.