This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
DNS-туннелирование с OSTP (Нативный dnstt)
OSTP имеет нативную реализацию протокола dnstt (DNS Tunnel). Это позволяет инкапсулировать зашифрованный трафик OSTP внутри стандартных DNS-запросов (записи TXT и NULL), что позволяет обходить строгие файрволы или captive portals (авторизация в публичных Wi-Fi), которые пропускают только трафик по порту UDP 53.
В отличие от других инструментов, вам не нужно устанавливать сторонние программы вроде dnstt-server или dnstt-client. Сервер OSTP имеет встроенный слушатель dnstt, а клиент нативно кодирует трафик.
Требования
- Собственное доменное имя (например,
yourdomain.com). - Настроенные NS записи для делегирования поддомена на IP-адрес вашего сервера.
Шаг 1: Настройка DNS
- Зайдите в панель управления DNS вашего регистратора.
- Создайте A запись, указывающую на IP вашего сервера:
- Тип:
A - Имя:
tunsrv - Значение:
IP_ВАШЕГО_СЕРВЕРА
- Тип:
- Создайте NS запись, которая делегирует поддомен туннеля на созданную выше A-запись:
- Тип:
NS - Имя:
t - Значение:
tunsrv.yourdomain.com
- Тип:
Теперь любые DNS-запросы к *.t.yourdomain.com будут отправляться напрямую на ваш сервер!
Шаг 2: Генерация ключей
Туннель DNS использует собственную пару ключей Ed25519 для предотвращения злоупотреблений. Вы должны сгенерировать публичный и приватный ключ (с помощью инструмента dnstt-server -gen-key или API OSTP).
Шаг 3: Настройка Сервера
Добавьте inbound с типом dns в ваш файл config.json на сервере. Сервер должен быть запущен с правами, достаточными для прослушивания порта 53 (например, выдав права через sudo setcap 'cap_net_bind_service=+ep' /path/to/ostp).
{
"mode": "server",
"inbounds": [
// Обычный слушатель OSTP
{
"type": "ostp",
"tag": "ostp-in",
"listen": "0.0.0.0",
"port": 50000,
"access_keys": ["ВАШ_СЕКРЕТНЫЙ_КЛЮЧ"]
},
// Нативный слушатель dnstt
{
"type": "dns",
"tag": "dns-in",
"listen": "0.0.0.0:53",
"domain": "t.yourdomain.com",
"pubkey": "ВАШ_ПРИВАТНЫЙ_КЛЮЧ_ЗДЕСЬ",
"privkey": "ВАШ_ПРИВАТНЫЙ_КЛЮЧ_ЗДЕСЬ"
}
],
"outbounds": [
{ "type": "direct", "tag": "direct" }
]
}
Шаг 4: Настройка Клиента
На клиенте настройте outbound типа ostp на использование транспорта dns. Вы должны указать точный домен, публичный резолвер (например 1.1.1.1 или 8.8.8.8) и публичный ключ сервера.
"outbounds": [
{
"type": "ostp",
"tag": "proxy",
"server": "IP_ВАШЕГО_СЕРВЕРА", // Для логической маршрутизации
"port": 50000,
"access_key": "ВАШ_СЕКРЕТНЫЙ_КЛЮЧ",
"transport": {
"type": "dns",
"domain": "t.yourdomain.com",
"resolver": "1.1.1.1",
"pubkey": "ВАШ_ПУБЛИЧНЫЙ_КЛЮЧ_ЗДЕСЬ"
}
}
]
Предупреждение (DPI)
Поскольку трафик OSTP внутри DNS не похож на обычные читаемые текстовые записи (TXT-записи содержат base32 шум с высокой энтропией), продвинутые системы DPI могут распознать аномалию. Однако для обхода простых файрволов, captive portals в отелях или самолетах этот метод невероятно эффективен.