понедельник, 1 сентября 2025 г.

Настройка DNS-over-HTTPS (DoH) на OpenWRT


 1. Установка необходимых пакетов

🔹 Обновляем список пакетов и устанавливаем нужные утилиты:

opkg update

opkg install https-dns-proxy luci-app-https-dns-proxy

🖏 https-dns-proxy — для работы DoH, luci-app-https-dns-proxy добавит удобный веб-интерфейс в LuCI.

2. Проверка конфигурации и работы службы DoH

🔹 Проверяем состояние службы https-dns-proxy:

/etc/init.d/https-dns-proxy status

🔹 Проверяем лог работы службы:

logread | grep dns-proxy

🔹 Проверяем, что порты 5053 и 5054 слушаются локально:

netstat -tulpen | grep 505

🔹 Проверяем, что DNS запросы резолвятся через локальный сервер:

nslookup openwrt.org 127.0.0.1:5053

nslookup openwrt.org 127.0.0.1:5054

🖏 Если видим корректные ответы — https-dns-proxy работает.

3. Настройка DoH-серверов

🔹 Переходим в LuCI → Services → HTTPS DNS Proxy.

Там мы увидим список доступных серверов (Cloudflare, Google, AdGuard). Включаем Cloudflare или другой нужный.

4. Настройка перенаправления всего DNS-трафика через DoH

🔹 Добавляем правило:

uci add firewall redirect

uci set firewall.@redirect[-1].name='Redirect-DNS'

uci set firewall.@redirect[-1].src='lan'

uci set firewall.@redirect[-1].proto='tcp udp'

uci set firewall.@redirect[-1].src_dport='53'

uci set firewall.@redirect[-1].dest='lan'

uci set firewall.@redirect[-1].dest_ip='127.0.0.1'

uci set firewall.@redirect[-1].dest_port='53'

uci set firewall.@redirect[-1].target='DNAT'

uci commit firewall

/etc/init.d/firewall restart

 Теперь все запросы DNS с клиентов будут идти через https-dns-proxy.

5. Блокировка прямых DNS-запросов IPv6

🔹 Чтобы DNS-утечки не шли по IPv6:

uci add firewall rule

uci set firewall.@rule[-1].name='Block-IPv6-DNS'

uci set firewall.@rule[-1].src='lan'

uci set firewall.@rule[-1].dest='wan'

uci set firewall.@rule[-1].proto='tcp udp'

uci set firewall.@rule[-1].dest_port='53'

uci set firewall.@rule[-1].family='ipv6'

uci set firewall.@rule[-1].target='REJECT'

uci commit firewall

/etc/init.d/firewall restart

 Теперь IPv6-утечек DNS не будет.

6. Проверка работы DoH

🔹 Проверяем:

nslookup openwrt.org 127.0.0.1

 Должен выдать IP-адрес OpenWRT.org.

7. Проверка на утечки DNS

🔹 Заходим на сайты проверки: