Skip to content

DNS Tunneling_ru

ospab edited this page Jun 19, 2026 · 2 revisions

DNS-туннелирование с OSTP (Нативный dnstt)

OSTP имеет нативную реализацию протокола dnstt (DNS Tunnel). Это позволяет инкапсулировать зашифрованный трафик OSTP внутри стандартных DNS-запросов (записи TXT и NULL), что позволяет обходить строгие файрволы или captive portals (авторизация в публичных Wi-Fi), которые пропускают только трафик по порту UDP 53.

В отличие от других инструментов, вам не нужно устанавливать сторонние программы вроде dnstt-server или dnstt-client. Сервер OSTP имеет встроенный слушатель dnstt, а клиент нативно кодирует трафик.

Требования

  1. Собственное доменное имя (например, yourdomain.com).
  2. Настроенные NS записи для делегирования поддомена на IP-адрес вашего сервера.

Шаг 1: Настройка DNS

  1. Зайдите в панель управления DNS вашего регистратора.
  2. Создайте A запись, указывающую на IP вашего сервера:
    • Тип: A
    • Имя: tunsrv
    • Значение: IP_ВАШЕГО_СЕРВЕРА
  3. Создайте 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 в отелях или самолетах этот метод невероятно эффективен.

Clone this wiki locally