Skip to main content

Поддержка PROXY Protocol в TCP туннелях

· 2 min read

В консольном клиенте tuna добавлена поддержка PROXY Protocol для TCP туннелей. Теперь вы можете передавать оригинальный IP-адрес и порт клиента напрямую вашему приложению.

$ tuna tcp 54321 --proxy-protocol=2
INFO[22:08:58] Welcome to Tuna
INFO[22:09:00] Forwarding tcp://ru.tuna.am:22347 -> 127.0.0.1:54321

Перейти к документации

Зачем нужен PROXY Protocol?

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

  • Вести корректные логи подключений с реальными IP-адресами
  • Применять правила контроля доступа на уровне приложения
  • Собирать точную аналитику по географии пользователей

Новый флаг

В команде tuna tcp появился новый флаг --proxy-protocol, принимающий версию протокола:

ЗначениеФорматОписание
1ТекстовыйЧеловекочитаемый формат, легко отлаживать
2БинарныйБолее эффективный, рекомендуемый для продакшена

Примеры использования

Базовый пример

tuna tcp 8443 --proxy-protocol=1
# или с переменной окружения
TUNA_PROXY_PROTOCOL=1 tuna tcp 8443

Minecraft сервер

Некоторые сборки игровых серверов, например Velocity, поддерживают PROXY Protocol. Включите его в конфиге игры и в клиенте tuna:

tuna tcp 45678 --proxy-protocol=2

Совместимость

PROXY Protocol широко поддерживается популярным серверным ПО:

  • Haproxy — поддерживает обе версии, определяет автоматически
  • Nginx — поддерживает обе версии, определяет автоматически
  • Envoy — поддерживает обе версии
  • Многие базы данных и приложения через прокси-слой
tip

Если вы не уверены какую версию выбрать — используйте версию 2. Бинарный формат эффективнее и является рекомендуемым в большинстве случаев.

Обновление

Для обновления следуйте инструкции.

Оставьте отзыв

Если вам нравится пользоваться Tuna, или наоборот вы недовольны чем либо, то пожалуйста оставьте отзыв.

Помощь

Мы ценим наших пользователей и детально изучаем все обращения, если у вас возникли проблемы с tuna – обязательно свяжитесь с нами одним из способов: