DNS: exchange failed for local DNS

linux + sing-box 1.10.2

Добрый день очень простые правила. Для “.ru” доменов использовать локальный DNS, всё остальное в proxy->cloudflare. Но при запросе к myip.ru возникает ошибка. При этом если отключить sing-box и сделать запрос, то всё работает отлично с системным локальным DNS. В чёс проблема?

ERROR[0652] [1437494369 0ms] dns: exchange failed for myip.ru. IN HTTPS: no raw query support by current transport

Или я не понимаю как это работает и “локальный sing-box” это ещё одна прослойка между системным стандартным DNS и sing-box? и мне нужно в address писать “127.0.0.53:53” вместо “local” ?

например так?:

 {
        "address": "127.0.0.53:53",
        "detour": "direct",
        "tag": "dns-direct"
}

И что такое local который указан в мануале? Это точно правильно? Не долен ли адрес быть localhost?

 {
        "address": "localhost",  <-------???
        "detour": "direct",
        "tag": "dns-direct"
}

БЕЗ sing-box что локальный dns работает идеально:
image
image

Конфиг:

 "dns": {
    "servers": [
      {
        "address": "https://1.1.1.1/dns-query",
        "address_resolver": "dns-direct",
        "detour": "proxy",
        "tag": "dns-remote"
      },
      {
        "address": "local",
        "detour": "direct",
        "tag": "dns-direct"
      }
    ],
    "rules": [
      {
        "outbound": "any",
        "server": "direct"
      },
      {
        "domain_suffix": [
          "ru"
        ],
        "server": "dns-direct"
      }
    ]
  },

“local” адрес это системный днс, но там нет поддержки HTTPS запроса, а у вас в логе как раз HTTPS запрос.
127.0.0.53 это systemd-resolved

хорошо.
тогда если я поменяю на

"address": "127.0.0.53:53"
тогда как понимаю будет локальный системный systemd-resolved, который берет DNS от моего роутера тоесть dns=192.168.50.1
И на двух последних скриншотах (без sin-box) мы видим что вроде как раз так и работает. НО по итогу с включением sin-box и "address": "127.0.0.53" ничего опять не работает, таже ошибка.

повторяюсь, что в логе ошибка HTTPS записи, с local сервером так у всех, это не должно мешать работе сайтов т.к. для них достаточно А и АААА записей (на скриншотах А, АААА записи, в ошибке HTTPS запись). И я не знаю, заменяет ли sing-box лист серверов в systemd-resolved, посмотрите сами через resolvectl status. И вы не дали полный конфиг синга, непонятно какие у вас настройки inbound

такой конфиг, я пробовал и с
“strict_route”: true,
“strict_route”: false,
Все не .ru сайты работает прекрасно без ошибок, .ru не открываются, как в браузере , так и через CURL.

{
  "log": {
    "level": "info"
  },
  "dns": {
    "servers": [
      {
        "address": "https://1.1.1.1/dns-query",
        "detour": "proxy",
        "tag": "dns-remote"
      },
      {
        "address": "local",
        "detour": "direct",
        "tag": "dns-direct"
      },
      {
        "address": "rcode://success",
        "tag": "dns-block"
      }
    ],
    "rules": [
      {
        "domain": [],
        "domain_keyword": [],
        "domain_regex": [],
        "domain_suffix": [
          "ru"
        ],
        "geosite": [
          "twitch",
          "category-ru"
        ],
        "server": "dns-direct"
      },
      {
        "query_type": [
          32,
          33
        ],
        "server": "dns-block"
      },
      {
        "domain_suffix": ".lan",
        "server": "dns-block"
      }
    ]
  },
  "route": {
    "auto_detect_interface": true,
    "final": "proxy",
    "geoip": {
      "path": "geoip.db"
    },
    "geosite": {
      "path": "geosite.db"
    },
    "rules": [
      {
        "outbound": "dns-out",
        "protocol": "dns"
      },
      {
        "domain": [],
        "domain_keyword": [],
        "domain_regex": [],
        "domain_suffix": [],
        "geosite": [
          "category-ads-all"
        ],
        "outbound": "block"
      },
      {
        "domain": [],
        "domain_keyword": [],
        "domain_regex": [],
        "domain_suffix": [
          "ru"
        ],
        "geosite": [
          "twitch",
          "category-ru"
        ],
        "outbound": "direct"
      },
      {
        "network": "udp",
        "outbound": "block",
        "port": [
          135,
          137,
          138,
          139,
          5353
        ]
      },
      {
        "ip_cidr": [
          "224.0.0.0/3",
          "ff00::/8"
        ],
        "outbound": "block"
      },
      {
        "outbound": "block",
        "source_ip_cidr": [
          "224.0.0.0/3",
          "ff00::/8"
        ]
      }
    ]
  },
  "inbounds": [
    {
      "auto_route": true,
      "domain_strategy": "",
      "endpoint_independent_nat": true,
      "address": "172.19.0.1/28",
      "interface_name": "tun",
      "mtu": 9000,
      "sniff": true,
      "sniff_override_destination": false,
      "stack": "gvisor",
      "strict_route": true,
      "tag": "tun-in",
      "type": "tun"
    }
  ],
  "outbounds": [
    {
      "tag": "proxy",
      "type": "vless",
    },
    {
      "tag": "direct",
      "type": "direct"
    },
    {
      "tag": "block",
      "type": "block"
    },
    {
      "tag": "dns-out",
      "type": "dns"
    }
  ],
  "experimental": {
    "cache_file": {
      "enabled": true,
      "path": "cache.db"
    }
  }
}

up

“dns”: {
“servers”: [
{
“address”: “https://1.1.1.1/dns-query”,
“detour”: “proxy”,
“tag”: “dns-remote”
},
{
“address”: “local”,
“detour”: “direct”,
“tag”: “dns-direct”
},
{
“address”: “rcode://success”,
“tag”: “dns-block”
}
],
“rules”: [
{
“domain”: ,
“domain_keyword”: ,
“domain_regex”: ,
“domain_suffix”: [
“ru”
],
“geosite”: [
“twitch”,
“category-ru”
],
“server”: “dns-direct”
},
{
“query_type”: [
32,
33
],
“server”: “dns-block”
},
{
“domain_suffix”: “.lan”,
“server”: “dns-block”
}
],
“final”: “dns-direct”
},

Если добавить “final”: “dns-direct” работает?

тоже самое поведение.
Забугорные открываются отлично через прокси.
А ру нефига

я тут поэкспериментировал
Интересно что если выставить и proxy и direct = “address”: “https://1.1.1.1/dns-query”, то начинает работать. Но я бы хотел direct = выставить адрес локальный(локальный который берет dns от роутера)

Чтобы выяснить, по какой причине конфиг не работает или работает не так, его нужно упростить, оставив только необходимые параметры для ru сайтов, остальное временно убрать. Убедиться, что настройки для ru сайтов работают правильно, после чего вернуть остальные части конфига на место.