HostuxDNS

OpenWrt の HostuxDNS

概要

OpenWrt では、ローカル DNS トラフィックを https-dns-proxy に渡すことで、 ルーター全体で HostuxDNS を利用できます。LAN 内の端末側は変更せず、ルーターが 問い合わせを DNS over HTTPS に変換します。

このガイドでは、ローカルクライアントに dnsmasq、暗号化アップストリームに https-dns-proxy を使う OpenWrt の一般的な構成を前提にします。

必要なパッケージをインストールする

まずパッケージ一覧を更新し、プロキシと LuCI モジュールをインストールします。

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

このパッケージは dnsmasq と連携し、LAN 向けの DNS は引き続きルーターが受け持ちます。

HostuxDNS の DoH インスタンスを作成する

LuCI で サービス > HTTPS DNS Proxy を開き、新しいインスタンスを追加します。

  • 名前: hostuxdns
  • リゾルバー URL: https://dns.hostux.net/dns-query
  • Bootstrap DNS: 46.226.108.173,46.226.109.82

ルーター側で広告やトラッカーを遮断したい場合は、通常のエンドポイントではなく https://dns.hostux.net/ads を使ってください。

proxy を dnsmasq に接続する

LAN クライアントの DNS はこれまでどおりルーターに向けます。そのうえで dnsmasqhttps-dns-proxy の作成したローカルリスナーへ 問い合わせを転送する構成にします。

OpenWrt に複数の上流 DNS が設定されている場合は、不要なものを無効にして HostuxDNS をアクティブな暗号化アップストリームにしてください。

端末はルーターに問い合わせ、ルーターは DoH で HostuxDNS に問い合わせる、という形です。

再起動して確認する

LuCI で変更を適用するか、次のようにサービスを再起動します。

/etc/init.d/https-dns-proxy restart
/etc/init.d/dnsmasq restart

その後、ルーター上で名前解決を確認します。

nslookup openwrt.org 127.0.0.1

これで解決できれば、ルーターを DNS として使っている LAN 内の端末も HostuxDNS の暗号化アップストリームを利用できます。

補足

このガイドは DoH に限定
この手順は https-dns-proxy を前提としているため、DoH を扱います。DoT や DoQ は対象外です。
Bootstrap DNS が必要な理由
暗号化プロキシが完全に動き始める前に、ルーターが dns.hostux.net に到達するための平文 IP が必要になることがあります。
公式リファレンス
OpenWrt: dnsmasq と https-dns-proxy を使った DoH