Skip to content

DNS over VLESS

jameszero edited this page May 16, 2026 · 1 revision

DNS-over-VLESS — направляем DNS-трафик через прокси xray

Источник: jameszero.net/3398.htm

Безопасность в интернете с каждым днём становится всё более насущной необходимостью. Утечка личных данных может обойтись слишком дорого, поэтому о своей цифровой неприкосновенности лучше позаботиться заранее. И начать стоит, например, с защиты DNS-запросов. Обычно для этого используются такие протоколы, как DNS-over-TLS, DNS-over-HTTPS и другие. Я же предлагаю рассмотреть ещё один способ — направить DNS-трафик через прокси-сервер на базе Xray, назовём этот метод DNS-over-VLESS.

В сети немало инструкций по настройке самого Xray, но вот проброс DNS-трафика через него раскрыт недостаточно подробно. Попробуем восполнить этот пробел.

Предварительные условия

Первоначальное условие — у вас уже должен быть настроен и функционировать прокси xray VLESS с XTLS Reality по одной из многочисленных инструкций. Все действия по его "прокачке" выполняем локально на компьютере или роутере, сервер xray не трогаем.

Замечание от пользователя:

Во многих конфигурациях серверов xray есть секция для предотвращения проблем с локальной маршрутизацией, в ней блокируется "geoip:private", куда попадает дефолтный адрес DNS-резолвера - 127.0.0.53. Для нашей задачи данное правило необходимо удалить, либо направить 127.0.0.53 выше этого правила в директ.

Структура конфигурации

Разобьём единый файл настроек xray config.json на файлы по разделам: inbounds.json, outbounds.json, dns.json, routing.json. Этих четырёх файлов достаточно для нашей задачи.

Для реализации задуманного необходимо использовать входящее подключение (inbounds), поддерживающее UDP-протокол, например, TProxy.

Конфигурационные файлы

inbounds.json

{
  "inbounds": [
    {
      "port": 1181,
      "protocol": "dokodemo-door",
      "settings": {
        "network": "tcp,udp",
        "followRedirect": true
      },
      "sniffing": {
        "enabled": true,
        "routeOnly": true,
        "destOverride": ["http","tls","quic"]
      },
      "streamSettings": {
        "sockopt": {"tproxy": "tproxy"}
      },
      "tag": "tproxy"
    }
  ]
}

outbounds.json

{
  "outbounds": [
    {
      "protocol": "vless",
      "settings": {
        "address": "***.***.***.***",
        "port": 443,
        "id": "****************************",
        "encryption": "none",
        "flow": "xtls-rprx-vision"
      },
      "streamSettings": {
        "network": "tcp",
        "security": "reality",
        "realitySettings": {
          "serverName": "*********",
          "publicKey": "****************************",
          "shortId": "********",
          "spiderX": "/"
        },
        "sockopt": {
          "domainStrategy": "ForceIP"
        }
      },
      "tag": "proxy"
    },
    {
      "protocol": "freedom",
      "streamSettings": {
        "sockopt": {
          "domainStrategy": "ForceIP"
        }
      },
      "tag": "direct"
    },
    {
      "protocol": "dns",
      "tag": "dns-out"
    }
  ]
}

dns.json

{
  "dns": {
    "tag": "dns-in",
    "servers": [
      "8.8.8.8"
    ],
    "queryStrategy": "UseIP"
  }
}

routing.json

{
  "routing": {
    "rules": [
      {
        "inboundTag": ["dns-in"],
        "outboundTag": "proxy"
      },
      {
        "port": 53,
        "outboundTag": "dns-out"
      },
      {
        "domain": [
          "browserleaks",
          "ip.me"
        ],
        "outboundTag": "proxy"
      },
      {
        "network": "tcp,udp",
        "outboundTag": "direct"
      }
    ]
  }
}

Проверка работоспособности

Настройка завершена, выполняем проверку.

Если ошибок не допущено, то проксируемый ресурс browserleaks.com покажет DNS страны нахождения вашего VPS. Не стоит бояться использования обычных DNS в рассмотренных конфигах, их трафик будет передан на VPS-сервер транспортом VLESS с TLS-шифрованием.

Результат

В итоге результат получен, DNS-over-VLESS настроен и работает. Никто не прослушает ваши DNS-запросы к проксируемым сайтам и не подменит ответы по своему усмотрению. Для дополнительной защиты в интернете обратите внимание на возможность отключения WebRTC и QUIC в браузере.

Clone this wiki locally