VpnHood!

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

Блокировка по IP-адресу бессильна, если приложение не подключается к серверу напрямую. С обратным прокси вроде Cloudflare клиенты обращаются к прокси, а тот безопасно перенаправляет трафик на ваш сервер.

Как это работает

Ваш домен указывает на прокси-сервер, а не на сам сервер. Приложение подключается к прокси, который расшифровывает трафик (как для обычного веб-сайта) и повторно шифрует его при передаче на ваш сервер. Соединение идет через WebSocket — Cloudflare полностью поддерживает этот протокол. Подойдет и любой другой обратный прокси с поддержкой WebSocket и TLS-подключения к вашему серверу.

Приложения подключаются к серверу через прокси Приложения пользователей обращаются к вашему домену и подключаются к обратному прокси (например, Cloudflare), который пересылает трафик на сервер. Прямой маршрут к IP сервера заблокирован, но прокси позволяет легко обойти ограничение. Обратный прокси например, Cloudflare Ваш домен app.example.com 203.0.113.10 заблокировано Пользователи VpnHood! CLIENT Ваш сервер VpnHood! SERVER Прокси помогает приложениям обходить блокировки
Приложения подключаются к серверу через прокси Приложения пользователей обращаются к вашему домену и подключаются к обратному прокси (например, Cloudflare), который пересылает трафик на сервер. Прямой маршрут к IP сервера заблокирован, но прокси позволяет легко обойти ограничение. Обратный прокси например, Cloudflare Ваш домен app.example.com 203.0.113.10 заблокировано Пользователи VpnHood! CLIENT Ваш сервер VpnHood! SERVER Прокси помогает приложениям обходить блокировки

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

Ключ может также содержать прямой IP-адрес сервера. В этом случае приложение пробует оба варианта: прокси спасет при блокировке IP, однако прямой адрес можно извлечь из ключа. Если же создать ключ без IP-адреса сервера, весь трафик гарантированно пойдет через прокси.

Важные нюансы

  • Блокировки: Провайдер все еще может заблокировать адреса reverse proxy или ваш домен. Однако адреса Cloudflare обслуживают множество сайтов, поэтому блокировать их сложнее и дороже.
  • DNS: Перед подключением приложения запрашивают домен через DNS сети. Если провайдер блокирует или подменяет ответ, приложения переключаются на IP-адреса из ключа. Поэтому ключ, содержащий только домен, подключиться не сможет.
  • Конфиденциальность: Reverse proxy видит трафик внутри туннеля так же, как и ваш сервер: куда подключаются пользователи и все незашифрованные данные. Их трафик по HTTPS остается защищенным. Используйте только надежный reverse proxy.
  • Только TCP: Сервер не предоставляет порты UDP и QUIC для приложений, подключающихся через прокси.
  • Условия использования: Убедитесь, что правила вашего провайдера разрешают VPN-трафик. Небольшая группа пользователей (примерно до 50 человек) обычно не вызывает вопросов.

Перед началом

  • Домен или поддомен с сертификатом от доверенного центра сертификации (CA) на сервере: инструкция Использование доменного имени и доверенного сертификата поможет все настроить. Сделайте это заранее, пока DNS-запись домена указывает напрямую на сервер.
  • Один сервер за доменом. Если DNS-записи ведут на два разных сервера, пакеты одной сессии могут распределяться между ними, что приведет к разрыву соединения.
  • Сервер должен принимать входящие подключения на TCP-порту 443 или другом порту, поддерживаемом прокси. Cloudflare пропускает HTTPS только через 443, 2053, 2083, 2087, 2096, 8443.

Включение прокси

  1. В панели Cloudflare откройте DNS-записи домена и переключите статус записи вашего сервера в режим Proxied (а также для записи AAAA, если она есть).
  2. В разделе SSL/TLS выберите режим шифрования Full (strict). В этом случае Cloudflare будет подключаться к серверу по TLS и проверять его сертификат. В режиме Flexible используется обычный HTTP, который сервер не поддерживает.

VpnHood! MANAGER обновляет сертификаты по протоколу HTTP через TCP-порт 80 с использованием домена, а Cloudflare передает эти запросы на сервер. На управляемом сервере отключите параметр Always Use HTTPS, иначе запрос будет перенаправлен на HTTPS и обновление завершится ошибкой.

На управляемом сервере

Проверьте сертификат фермы для домена: в пункте Signature должно быть указано CA Signed, а в Visibility — PublicInToken. Тогда ключи будут содержать домен, и приложения смогут его распознавать.

Чтобы направлять все приложения через прокси, исключите прямые адреса сервера из ключей в разделе Access Points:

  1. Отключите параметр Automatic Configuration.
  2. Для каждого адреса измените Mode на Private.
  3. Оставьте параметр Listen со значением Yes, чтобы сервер продолжал принимать входящие соединения от прокси.
Настройка точек доступа сервера в VpnHood! MANAGER для работы через reverse proxy: отключенная автоматическая конфигурация (1), режим Private для каждого адреса (2) и включенное прослушивание портов (3)
Оба адреса сервера удалены из ключей, но сервер продолжает их прослушивать.

MANAGER разрешает создавать ключи без адреса только со статусом сертификата CA Signed. Подробнее о параметрах — в руководстве Настройка IP-адресов сервера.

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

Приложения со старыми ключами получат новые при следующем подключении, так как параметр Push token to clients включен по умолчанию.

Домен привязан к одному серверу, поэтому на ферме серверов все приложения, подключающиеся через прокси, попадают на один и тот же сервер.

На отдельном сервере

Убедитесь, что сервер использует сертификат домена со значением IsValidHostName: true. Инструкция: Использование домена и доверенного сертификата. Новые ключи будут содержать этот домен, и приложения будут обращаться к нему.

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

Дальнейшие шаги