5.6 KiB
OSTP DNS Transport (Последний Рубеж)
DNS Transport (DNS Прокси) — это экспериментальный транспорт, который является "последним рубежом" для обхода блокировок. Он используется, когда все остальные протоколы (UDP, UoT/TCP) полностью заблокированы провайдером или DPI.
Он маскирует весь VPN-трафик под обычные запросы к DNS-серверам (разрешение имен), что делает его блокировку практически невозможной без отключения интернета в целом. OSTP использует запросы типа TXT и NULL для передачи данных, используя кодировку Base32.
Внимание: DNS-туннелирование работает значительно медленнее обычных протоколов из-за накладных расходов протокола DNS. Рекомендуется использовать этот режим только когда другие способы не работают.
Как это работает?
Вместо того чтобы отправлять трафик напрямую на ваш сервер, клиент OSTP отправляет стандартный DNS-запрос на публичные DNS-серверы (например, 1.1.1.1, 8.8.8.8) или серверы выбранного вами региона (Prober). Публичный сервер-резолвер перенаправляет этот запрос на ваш сервер (как на авторитативный DNS-сервер для вашего домена), а ваш сервер отвечает обратно через резолвер.
Для настройки этого механизма вам понадобится собственный домен.
Настройка на стороне сервера (Домен)
Вам необходимо настроить NS-записи вашего домена так, чтобы они указывали на IP-адрес вашего OSTP сервера.
Например, вы владеете доменом myvpn.com и хотите использовать поддомен t.myvpn.com для туннеля, а IP вашего сервера — 192.168.1.100.
В панели управления вашего DNS-регистратора добавьте следующие записи:
-
A-запись:
- Имя (Host):
ns.myvpn.com - Тип (Type):
A - Значение (Value):
192.168.1.100(IP вашего OSTP-сервера)
- Имя (Host):
-
NS-запись:
- Имя (Host):
t.myvpn.com - Тип (Type):
NS - Значение (Value):
ns.myvpn.com
- Имя (Host):
Теперь любой DNS-запрос к поддоменам t.myvpn.com будет направляться на ваш сервер (на порт 53).
Настройка сервера OSTP
В файле конфигурации вашего OSTP сервера (config.json или server.json) необходимо включить прослушивание порта 53 для DNS транспорта:
{
"mode": "server",
"dns_transport": {
"enabled": true,
"port": 53,
"domain": "t.myvpn.com"
}
}
Важно: Для прослушивания порта 53 на Linux обычно требуются root-права. Убедитесь, что сервер запущен с
sudoили используйте возможностиsetcapдля предоставления доступа к порту:sudo setcap cap_net_bind_service=+ep /path/to/ostp
Настройка в приложении (Клиент)
В клиенте OSTP (Desktop GUI или Mobile):
- Перейдите в Settings (Настройки).
- В поле Transport Protocol выберите
DNS Proxy (Последний рубеж). - Появится поле Domain (Points to Server) — введите сюда настроенный поддомен (например,
t.myvpn.com). - Поле DNS Resolver Region позволяет выбрать, через серверы какой страны/провайдера будет осуществляться маршрутизация пакетов (например, Global, Russia, China, Iran). Клиент (Prober) автоматически найдет наиболее быстрый публичный резолвер в этом регионе.
Ограничения и особенности
- Скорость: Из-за размера DNS-пакетов и задержек публичных серверов, максимальная скорость может составлять 1-5 Мбит/с.
- Polling: Поскольку DNS работает по принципу "Запрос-Ответ", клиент отправляет пустые поллинговые пакеты каждые 2 секунды, чтобы позволить серверу пересылать входящие данные.
- Поддержка DoH/DoT: В текущей версии запросы к публичным резолверам отправляются в открытом виде (UDP порт 53). В будущих обновлениях будет добавлена поддержка DNS over HTTPS (DoH) для дополнительного слоя защиты от DPI-фильтров.