HostuxDNS

dnscrypt-proxy と HostuxDNS

概要

dnscrypt-proxy は、問い合わせが端末やネットワークを出る前に暗号化できる ローカル DNS フォワーダです。Linux、macOS、Raspberry Pi、または Pi-hole の ようなツールの背後で、ブラウザ設定に依存せず暗号化アップストリームを使いたい 場合に適しています。

HostuxDNS は dnscrypt-proxy 互換の暗号化リゾルバを DNS スタンプとして公開して います。以下の例では DoQ と静的サーバー定義を使うため、公開リゾルバ一覧に依存 せず設定できます。

HostuxDNS の静的サーバーを宣言する

dnscrypt-proxy.toml を開き、[static] セクションに次の ブロックを追加します。

[static.'hostuxdns-front1-v4']
stamp = 'sdns://BAcAAAAAAAAAEjQ2LjIyNi4xMDguMTczOjg1MwAOZG5zLmhvc3R1eC5uZXQ'

[static.'hostuxdns-front1-v6']
stamp = 'sdns://BAcAAAAAAAAAKVsyMDAxOjRiOTg6ZGMyOjQxOjIxNjozZWZmOmZlMTY6MTA4MF06ODUzAA5kbnMuaG9zdHV4Lm5ldA'

[static.'hostuxdns-front2-v4']
stamp = 'sdns://BAcAAAAAAAAAETQ2LjIyNi4xMDkuODI6ODUzAA5kbnMuaG9zdHV4Lm5ldA'

[static.'hostuxdns-front2-v6']
stamp = 'sdns://BAcAAAAAAAAAKVsyMDAxOjRiOTg6ZGMyOjQxOjIxNjozZWZmOmZlY2U6M2U1NV06ODUzAA5kbnMuaG9zdHV4Lm5ldA'

この 4 つのエントリで、HostuxDNS の 2 つのフロントエンドを IPv4 と IPv6 の両方で カバーできます。

メイン設定でサーバーを有効にする

同じファイルのメインセクションで、次を設定します。

server_names = ['hostuxdns-front1-v4', 'hostuxdns-front1-v6', 'hostuxdns-front2-v4', 'hostuxdns-front2-v6']

dnscrypt-proxy を別サービスのローカル上流として使う場合は、既定のローカル待受を そのまま使うか、たとえば次のように明示します。

listen_addresses = ['127.0.0.1:5053']

Pi-hole のようなツールは、問い合わせを 127.0.0.1:5053 に転送できます。

再起動して確認する

保存後にサービスを再起動します。

systemctl restart dnscrypt-proxy

その後、ローカル解決を確認します。

dig @127.0.0.1 -p 5053 example.com

Knot DNS を使って上流を直接確認することもできます。

kdig @dns.hostux.net example.com +quic

ローカル問い合わせが成功すれば、アプリケーションは dnscrypt-proxy をローカル リゾルバとして使い、暗号化アップストリームは HostuxDNS が担当します。

補足

リゾルバ一覧
特定の上流を固定したい場合、静的スタンプは公開ソース一覧に依存しない最も確実な方法です。
広告ブロック
HostuxDNS の /ads フィルタリングエンドポイントは DoH パスであり、ここで使う DoQ スタンプからは利用できません。
公式ドキュメント
dnscrypt-proxy ドキュメント