Имеет ли смысл использовать DNSCrypt?

Я вижу Вы специалист по утилите. Можете сюда или в личку скинуть свой dnscrypt-proxy.toml с настройками? Интересуют и настройки, и список избранных серверов.

Проверял

Забыл добавить. Проверять надо бы в Wireshark, виден ли там SNI. Сайт проверки это ненадёжно.

Ссылку с примером выше скидывал. Избранные сервера меняются со временем (я себе настроил от разных администраторов в разных странах). Все настройки с описаниями можно глянуть в example-dnscrypt-proxy.toml (его же можно и запустить без изменений).

В утилите можно установить определенный список избранных серверов

Конечно. Нужно в dnscrypt-proxy.toml указать их имена:
server_names = ['cloudflare', 'google']
взятые из public-resolvers.md.

Прочитал, но так и не понял, как установить и настроить Technitium DNS Server и соединить с dnscrypt-proxy.

у меня много браузеров (firefox, firefox ESR, brave, maxthon) для разных целей
поэтому лично мне проще/удобней dnscrypt-proxy (+как резерв Technitium DNS с 10 разными серверами)

Спойлер

dns.quad9.net (9.9.9.9:853)
dns.quad9.net (149.112.112.112:853)
dns.adguard-dns.com (94.140.14.14:853)
dns.adguard-dns.com (94.140.15.15:853)
dns.opendns.com (208.67.222.222:853)
dns.opendns.com (208.67.220.220:853)
dns.google ([2001:4860:4860::8888]:853)
dns.google ([2001:4860:4860::8844]:853)
cloudflare-dns.com ([2606:4700:4700::1111]:853)
cloudflare-dns.com ([2606:4700:4700::1001]:853)

мне DoH не нравится

  1. 1 “сервер”
  2. много блокировок по IP стало. банят сразу “сеть”/хостера
  3. у многих были проблемы с SNI. и как раз с ESNI cloudflare Обсуждение: Блокировка (замедление) ECH Cloudflare
  1. если и есть кэш то работает только для 1 браузера

p.s. в dnscrypt-proxy тоже встроено много DoH. хотя у меня обычно отключено по личным предпочтениям
ipv4_servers = true
ipv6_servers = true
doh_servers = false

Скачать с сайта архив, распаковать инсталятор и запустить его двойным кликом левой кнопки мыши. По умолчанию он будет работать как рекурсивный резолвер.

Необходимо добавить форвардеры как написано в сообщении.

про Technitium DNS
решает каждый сам.
но я включил
+Enable Concurrent Forwarding
+Forwarder Concurrency 10 (valid range 1-10; default 2)
p.s.
а еще
+Forwarder Protocol DNS-over-TLS (это где по дефолту :853)
если уж Ростелеком будет блочить/перенаправлять все dns/53-udp
сейчас они вроде только AdGuard DNS блочат. по DoH/SNI или даже по IP гдето

У меня нет в утилите тех кусков кода, которые Вы там скопировали. В общем, для новичка это темный лес. Нужна инструкция со скриншотами настройки и объединения двух утилит. Иначе лично у меня не получается настроить. Я не айтишник.

Использую dnscrypt как запасной, основной - unbound с DoT-forwarders.
Конфигурация dnscrypt зависит от версии, даже при переходе 2.0.х и 2.1.х приходится править конфиги, тот же параметр bootstrap_resolvers вместо fallback_resolver.

Имеет, замени им клоудфлаер. А сам dnscrypt покрой tls

ECH врубал ток через конфиг файл. раньше использовал гуи, потом забил.

Спойлер

в файле dnscrypt-proxy.toml раздел Local DoH server
и раскоментировать четыре строки
listen_addresses = [‘127.0.0.1:3000’]
path = ‘/dns-query’
cert_file = ‘localhost.pem’
cert_key_file = ‘localhost.pem’
локал doh будет вертеться на адресе https://127.0.0.1:3000/dns-query

:crazy_face:

На примере Дом.ру:

Резолвим что-то заблокированное через публичный plain-text DNS:
nslookup navalny.com 8.8.8.8

Получаем IP-адрес. Пробиваем через WHOIS, кому он принадлежит. Он принадлежит Дом.ру.

Либо сайт Навального хостится у Дом.ру, что неверноятно, либо Дом.ру просто берёт и весь трафик по 53 порту заворачивает на свой резолвер, который домены, к которым должен ограничиваться доступ, резолвит в “левый” адрес. Запрос до DNS Гугла даже не дошёл.

В этом и заключается недостаток протокола DNS - спрашивали один резолвер, а вместо него ответил вообще другой. Позже для решения этой проблемы к протоколу прикрутили костыль в виде DNSSEC, но он не то, чтобы “взлетел”.

Что касается DNSCrypt, то нужно разделять протокол и эталонный клиент (dnscrypt-proxy). Протокол использовать нет смысла. Он свою роль сыграл - это была первая ласточка в шифровании DNS. Затем пояаились DoH и DoT, которые получили статус стандартов. Кроме того, протокол DNSCrypt стороннему наблюдателю намного легче обнаружить и заблокироать, чем DoH.

Клиент dnscrypt-proxy использовать, может, и имеет смысл (он поддерживает DoH/DoT в том числе), например, он позволяет прикручивать списки доменов, которые запрещено резолвить, тем самым, можно бороться с рекламой. Но с тем же успехом, например, можно использовать AdGuard Home. То есть, использовать если и имеет смысл, то именно ПО, а не протокол.

Если просто нужно шифровать DNS-трафик. используйте DoH, поддержка которого есть и в браузерах, и в современных операционных системах.

Протокол использовать нет смысла

Разве что может быть меньше задержка, т.к. протокол dnscrypt по умолчанию использут udp, а DoH tcp (за исключением dns over quic, кстати dnscrypt клиент и такое поддерживает). Но это надо разбираться и насколько критична первая задержка (остальные запросы могут кэшироваться).

протокол DNSCrypt стороннему наблюдателю намного легче обнаружить и заблокироать, чем DoH

Ирония в том, что когда на йоте кончились деньги dnscrypt запросы проходили. Т.к. маленькие и udp (подтверждение протокола не требовали). Но тогда dnscrypt специально не блокировали. Впрочем, может и обычный dns работал, но DoH врядли.

В общем, dnscrypt протокол вроде как нестандарт и легче детектится (например, в пакетах видны сертификаты dnscrypt серверов). DoH выглядит как https, но публичные сервисы у всех на виду и могут быть заблокированы по IP. Малопопулярные custom решения интересны в обоих случаях, разве что dnscrypt udp не переживёт белые списки протоколов.

Это не аргумент против DoH, т.к. публичные сервисы DNSCrypt тоже у всех на виду и зачастую все эти публичные DNS лежат буквально на одной странице.

DoH там тоже лежат.
Кстати, если dns сервисы заблокируют по SNI, может помочь zapret? Как с ECH.

Почему бы и нет, там же DNS-over-HTTPS, т.е. сначала устанавливается HTTPS-соединение, тут-то zapret и поможет.

А есть смысл на ПК объединять как выше писали dnscrypt-proxy и Technitium DNS? Или несколько серверов в dnscrypt-proxy вполне достаточно с Запретом?
Кстати, есть смысл вместо избранных серверов использовать ДНС штампы?

может быть меньше задержка, т.к. протокол dnscrypt по умолчанию использует udp

С другой стороны, есть ещё такая вещь, если вы постоянно пользуетесь udp based vpn, то udp over udp не очень хорошая идея, я так считаю, в плане скорости. Хотя, в dns размеры пакетов маленькие и может быть некритично. Но кстати, dnscrypt протокол может работать по tcp, вроде как.

Чем мне не нравится DoH в браузере, судя по wireshark, браузер часто держит соединение с ним. У меня же Brave с отрезанными крыльями вообще молчит, это приятно. И DoH запросы выбиваются из этого блаженства. Впрочем, если у вас браузеры стучат налево и направо, как и система, то вы тишину не оцените.

Да, как и в обычном DNS если размер дейтаграммы превышает MaxDNSUDPPacketSize то подключение идёт по TCP, иначе дейтаграмма фрагментируется.

Можно попробовать в аргументы командной строки запуска chromium-based браузера добавить --disable-background-networking --disable-component-extensions-with-background-pages --dns-prefetch-disable.