В дополнение к первой части материала рассмотрим другой вариант настройки проксирования DNS применительно к XKeen. Этот вариант сам по себе проще и не имеет таких жестких требований, как первый. Например, не требуется прописывать в роутере не шифрованные DNS для нужд роутера и для клиентов вне политики XKeen. Не требуется создавать отдельную политику доступа вместо "Политики по умолчанию". Даже перехват dns средствами XKeen не является обязательным) Мы поднимем полноценный DNS-сервер на xray, которым смогут пользоваться не только клиенты XKeen, но и сам роутер, а также клиенты с прямым доступом в интернет.

К вышесказанному я дополнительно упростил настройку, чтобы её могли использовать начинающие пользователи, но учитывайте, что это всё равно не гайд, а материал, требующий осмысления перед использованием, простое копирование предложенных настроек работать не будет. Конфигурационные файлы практически полностью идентичны приведенным в первой части, основное отличие в том, что мы дополнительно создадим входящее подключение xray на 53 порту, и это потребует отключение прошивочного резолвера KeeneticOS.
Файл outbounds.json такой же, как в первой части:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
{ "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" } ] } |
Файл routing.json так же не меняется:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
{ "routing": { "rules": [ { "inboundTag": ["dns-in"], "outboundTag": "proxy" }, { "port": 53, "outboundTag": "dns-out" }, { "domain": [ "browserleaks", "ip.me" ], "outboundTag": "proxy" }, { "network": "tcp,udp", "outboundTag": "direct" } ] } } |
А вот файл inbounds.json теперь будет выглядеть так:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
{ "inbounds": [ { "protocol": "dokodemo-door", "port": 53, "settings": { "network": "tcp,udp" }, "tag": "dns" }, { "protocol": "dokodemo-door", "port": 1181, "settings": { "network": "tcp,udp", "followRedirect": true }, "sniffing": { "enabled": true, "routeOnly": true, "destOverride": ["http","tls"] }, "streamSettings": { "sockopt": {"tproxy": "tproxy"} }, "tag": "tproxy" } ] } |
В файле dns.json не станем разделять DNS-запросы на разные сервера, а направим их непосредственно на прокси-сервер внутри VLESS потока, опытные пользователи могут самостоятельно разделить их при необходимости.
|
1 2 3 4 5 6 7 8 9 |
{ "dns": { "servers": [ "127.0.0.53" ], "queryStrategy": "UseIP", "tag": "dns-in" } } |
Теперь самое важное отличие от варианта из первой части.
Переходим в CLI роутера (например по ссылке: http://192.168.1.1/a), отключаем DNS-сервер Кинетика первой командой и сохраняем настройку второй командой:
|
1 2 3 |
opkg dns-override system configuration save |
На этом этапе у вас отключится интернет, не пугайтесь. Если что-то пойдёт не так, отменить изменения можно такими командами:
Прописываем в "Интернет фильтрах" KeeneticOS один единственный DNS-сервер - локальный IP-адрес самого роутера с обязательным указанием 53-порта.

Запускаем или перезапускаем XKeen и проверяем результат. Интернет должен появиться и DNS-запросы теперь обрабатываются вашим прокси-сервером.
Обратите внимание, в примерах конфигов используется исходящий тег "proxy", если у вас он иной, например "vless-reality", замените на свой или используйте везде "proxy".