Проблемы с DNS-запросами через DoH в Sing-Box на OpenWrt: почему-то не работает https-адрес сервера

Всем привет!

Возник небольшой вопрос по специфике работы Sing-Box на OpenWRT. Ранее я уже создавал похожую тему, но с основными проблемами, с которыми я столкнулся по мере изучения ядра коробки я уже разобрался. Остался один вопрос, с которым я надеюсь мне тут подскажут и не закидают тапками токсики =)

Вначале излажу суть проблемы, а потом перечислю конфиги сетапа OpenWRT и Sing-Box.

Получилось разобраться с конфигами и настроить коробку для работы, в том числе разобраться, как работают днс запросы в разных режимах. Отдельное за это спасибо 0ka и rewhat (отдельно за гайд для нубов, очень помог). Однако, углубляясь в работу с DNS столкнулся с непонятной особенностью работы Sing-Box с DNS, когда обращение к серверу идёт не через IP адрес сервера, а через текстовый https адрес сервера DNS с поддержкой DoH, по этой ссылке их можно найти кучу: Free Public DNSCrypt & DoH Servers List | DNSCrypt Причём на винде эти запросы на Sing-Box работают, а на OpenWRT бастуют и DNS запросы просто не идут.

Пример блока DNS моего конфига:

"dns": {
        "independent_cache": true,
        "rules": [
            {
                "outbound": "any",
                "server": "dns-direct"
            }
        ],
        "servers": [
            {
               "address": "https://dns.adguard-dns.com/dns-query",
                "address_resolver": "dns-local",
                "detour": "proxy",
                "strategy": "ipv4_only",
                "tag": "dns-direct"
            },
            {
                "address": "local",
                "detour": "direct",
                "tag": "dns-local"
            }
        ],
  },

При этом если я ввожу вместо “address”: “https://dns.adguard-dns.com/dns-query” → “address”: “https://94.140.14.14/dns-query” или просто меняю всю ссылку на голый “94.140.14.14” то DNS запросы отлично отправляются:

Хоть и регион не меняется по гео vps сервера, но это я думаю потому, что DNS сервер не поддерживает какие-то гео.

Собственно, хотел узнать в чём тут может быть проблема и как её решить?

Мой setup на OpenWRT:

/etc/config/network:

config interface 'proxy'
        option proto 'none'
        option device 'tun0'
        option defaultroute '0'
        option delegate '0'
        option peerdns '0'
        option auto '1'
        list dns '172.19.0.0'

/etc/config/firewall:

config zone
        option name 'proxy'
        option forward 'REJECT'
        option output 'ACCEPT'
        option input 'ACCEPT'
        option masq '1'
        option mtu_fix '1'
        option device 'tun0'
        option family 'ipv4'
        list network 'tun0'

config forwarding
        option dest 'proxy'
        option src 'lan'
        option family 'ipv4'

В интерфейсе wan выключен пункт Use DNS servers advertised by peer
В интерфейс proxy добавлен Use custom DNS servers172.19.0.0

Заранее благодарю!

добавь в outbounds в самый конец, если outbound direct уже есть то замени

{
    "tag": "direct",
    "type": "direct",
    "bind_interface": "wan"
}

запятую после текущего последнего outbound не забудь

и замени

{
    "address": "local",
    "detour": "direct",
    "tag": "dns-local"
}

на

{
    "address": "77.88.8.8",
    "detour": "direct",
    "tag": "dns-local"
}

Спасибо! всё заработало после первого блока изменений, которые я добавил в конец секции outbound:

{
    "tag": "direct",
    "type": "direct",
    "bind_interface": "wan"
}

Если не затруднит можете объяснить эту магию? почему оно завелось после этих изменений? На винде пашет и так :neutral_face:

Вроде всё работает и так кстати.

Перед тем как менять dns сервер на формат для udp или просто по типy “https://94.140.14.14/dns-query” нужно убирать блок из outbound? или пофиг?

PS а кроме документации есть ещё какие-то статейки по работе с конфигами sing-box? Я из того что нашёл всё скудно как-то, а официальная документация для новичка сделана как-то очень сухо.

Огромное спасибо!

Это один из адресов DNS-серверов Яндекса.

Заработало потому что раньше была прописана конфигурация DNS только для тех сайтов, что шли напрямую.

Сейчас все DNS-запросы в конфигурации выше по идее идут через не-шифрованный DNS Яндекса напрямую, и для сайтов что раутятся через туннель, и для тех, где трафик пойдёт напрямую.

Да спасибо, уже посмотрел =)