Ubuntu Server 24.04 上で Pi-hole アップストリーム DNS を暗号化する
Ubuntu 24.04 上で、ローカルホスト専用のリスナー、リゾルバの選択、および DNS 切り替え前のチェック機能を備えた dnscrypt-proxy を Pi-hole のローカル DoH ブリッジとして設定します。
この例では、Linh は Ubuntu Server 24.04 上で Pi-hole を実行し、Pi-hole がアップストリームに送信する DNS リクエストを暗号化したいと考えています。 をインストールしdnscrypt-proxy、 にバインドし127.0.0.1:5053、DNS-over-HTTPS (DoH) リゾルバを選択し、そのローカルプロキシをテストしてから、Pi-hole をそのプロキシに向けます。このチュートリアルは、Pi-hole が既にインストールされ、動作していることを前提としています。Linh は架空の例であり、実際のインストールやテスト レポートではありません。
Pi-hole自体は、アップストリームのリゾルバに対してDoH通信を行いません。通常は、DNSをIPアドレスとポートに転送します。ローカルプロキシが2つのプロトコルを橋渡しします。Pi-holeは標準DNSをプライベートなローカルリスナーに送信し、プロキシは暗号化されたリクエストを選択されたリゾルバに送信します。この例では、Linhはdnscrypt-proxy同じサーバー上でプロキシを使用し、リスナーをループバックに設定しているため、他のデバイスはプロキシに直接接続できません。
古いレシピで新規インストールを開始しないでくださいcloudflared proxy-dns。Pi-hole の現在の cloudflared ページには、この機能は 2025 年 11 月に Cloudflare によって非推奨となり、それを使用した新規インストールは推奨されないと記載されています。Pi-hole の dnscrypt-proxy の手順では、メンテナンスされている代替手段が提供されています。Ubuntu Noble パッケージのリストには現在 が含まれています。dnscrypt-proxyパッケージのバージョンはアーキテクチャによって異なり、更新が公開されると変更される場合があります。

APTのパッケージリストを更新し、Nobleリポジトリパッケージをインストールします。
sudo apt update
sudo apt install dnscrypt-proxy
パッケージはUbuntuのUniverseコンポーネントに含まれています。APTがパッケージを見つけられない場合は、Universeが有効になっていることを確認し、再度実行してくださいsudo apt update。リポジトリ構成の問題を回避するために、無作為にサードパーティ製のビルドをダウンロードしないでください。
続行する前に、UbuntuがPi-holeの手順で使用されるsystemdソケットユニットをインストールしていることを確認してください。
systemctl list-unit-files dnscrypt-proxy.socket
Ubuntu Noble パッケージファイルリストには が含まれておりdnscrypt-proxy.socket、Pi-hole の手順では、Pi-hole 自身のポート 53 サービスと競合することなくローカル DNS リスナーを提供するために、そのソケットを使用します。

Pi-holeのFTL DNSサービスは通常ポート53を使用します。dnscrypt-proxyに別のポートを割り当て、サーバー自体にのみバインドします。systemdオーバーライドを作成します。
sudo systemctl edit dnscrypt-proxy.socket
空のオーバーライドファイルに以下の行を追加し、保存して終了してください。
[Socket]
ListenStream=
ListenDatagram=
ListenStream=127.0.0.1:5053
ListenDatagram=127.0.0.1:5053
空欄の割り当ては、新しいアドレスが追加される前に、ソケットユニットの元のポート53リスナーをクリアします。リスナーを に維持すること127.0.0.1が重要です。この同一ホスト構成では、 に変更しないでください0.0.0.0。変更すると、プロキシがすべてのネットワークインターフェイスに公開されてしまいます。

パッケージ設定ファイルを開きます。
sudo nano /etc/dnscrypt-proxy/dnscrypt-proxy.toml
パッケージに含まれるその他の設定はそのままにして、以下の値を設定してください。
listen_addresses = []
server_names = ['cloudflare-security']
空のlisten_addressesリストを指定すると、dnscrypt-proxy は systemd ソケットの有効化を使用します。名前付きの Cloudflare Security リゾルバは、Pi-hole の dnscrypt-proxy ガイドで使用されている例です。Pi-hole 独自のブロックリストに加えて、リゾルバのマルウェアフィルタリングが適用されます。別のプロバイダを使用したい場合、または追加のセキュリティフィルタリングが不要な場合は、管理されている公開リゾルバ リストから最新の DoH リゾルバを選択し、その正確なサーバー名を使用してください。利用可能な名前とリゾルバ ポリシーは変更される可能性があるため、古い投稿から古い名前をコピーするのではなく、最新のエントリを確認してください。
オーバーライド設定とTOML設定を有効にするには、ソケットとサービスを再起動してください。
sudo systemctl restart dnscrypt-proxy.socket
sudo systemctl restart dnscrypt-proxy.service
Pi-holeのアップストリームを変更する前に、ローカルリスナーをテストしてください。
dig @127.0.0.1 -p 5053 example.com
DNS応答と終了ステータスがゼロであれば、ローカルプロキシがクエリに応答したことを示します。選択したアップストリームがDoHを使用していることを確認するには、最近のサービスメッセージを調べて、次のマークが付いたリゾルバを探してくださいOK (DoH)。
sudo journalctl -u dnscrypt-proxy.service -n 50 --no-pagerがインストールされていない場合はdig、Ubuntu のdnsutilsパッケージをインストールしてください。クエリがタイムアウトした場合、またはログに DoH リゾルバが表示されない場合は、sudo systemctl status dnscrypt-proxy.socket dnscrypt-proxy.service続行する前にサービス ジャーナルを調べてください。

ローカルテストが正常に動作した後でのみ、Pi-holeのアップストリームリストをローカルリスナーに置き換えてください。
sudo pihole-FTL --config dns.upstreams '["127.0.0.1#5053"]'
sudo systemctl restart pihole-FTL.service
この値は、Pi-hole のカスタム アップストリーム形式を使用します。127.0.0.1はローカル ホスト、 は非標準の DNS ポートを指定します。Pi-hole 管理インターフェースの[設定] > [DNS] > [カスタム アップストリーム DNS サーバー]から#5053も入力できます。プリセットのパブリック アップストリームのチェックを外して保存してください。そうしないと、Pi-hole は DoH を使用せずに一部のリクエストを直接送信し続ける可能性があります。127.0.0.1#5053
Pi-hole自体に問い合わせるには、以下のLANアドレスの代わりに以下のアドレスを使用しますPIHOLE_IP。
dig @PIHOLE_IP example.com
検索が成功したことを確認してください。Pi-holeのクエリログにクライアントからのリクエストが表示され、dnscrypt-proxyのサービスステータスまたはログに、選択したアップストリームに到達可能であることが示されています。結果として、クライアントからLAN経由でPi-holeへ、次にPi-holeからlocalhostプロキシへ、そしてプロキシからDoHリゾルバへと経路が繋がります。これはサーバーからリゾルバへの経路を暗号化するものであり、LAN上のクライアントとPi-hole間の通常のDNSトラフィックを暗号化したり、選択したリゾルバからクエリを隠蔽したり、Pi-holeをVPNに変えたりするものではありません。
コマンドとバージョンの詳細については、Pi-hole dnscrypt-proxy ガイド(2026 年 2 月 16 日)、Cloudflared の非推奨通知(2026 年 2 月 12 日)、Ubuntu のNoble dnscrypt-proxy パッケージ記録、および現在の公開 DoH および DNSCrypt リゾルバ一覧を参照してください。いずれかのサービスが非アクティブになっている場合は、ローカルクエリテストが成功するまで Pi-hole をプロキシに切り替えないでください。
Ubuntu 24.04 上で、ローカルホスト専用のリスナー、リゾルバの選択、および DNS 切り替え前のチェック機能を備えた dnscrypt-proxy を Pi-hole のローカル DoH ブリッジとして設定します。
アプリやハードウェアのトラブルシューティングを行う前に、Ubuntuのタッチパッド設定を確認し、Waylandが有効になっていることを確認し、GNOMEに組み込まれているスワイプ操作をテストしてください。
2台のディスクで構成されるDebian 12 RAID 1データアレイを作成および検証し、安全にフォーマットした後、再起動後にアセンブルおよびマウントされるように構成します。
既存の Debian 12 スワップパーティションにランダムキー暗号化を設定し、アクティブな dm-crypt マッピングを確認し、ハイバネーションのトレードオフを理解する。
Ubuntu 24.04 の SSH アカウントを、chroot、適切なパーミッション、マッチルール、および安全なテストを使用して、指定された SFTP フォルダーに制限し、シェルアクセスを許可しないようにします。
Ubuntuのdpkgフロントエンドロックを所有しているプロセスを特定し、パッケージの処理を完了させ、ロックファイルを削除せずに中断されたインストールを修復します。
Timeshiftを使用してUbuntu Desktop上でBtrfsシステムの定期的なスナップショットを設定し、Ubuntuのサブボリュームレイアウトを確認し、保持期間を選択し、スナップショットで保護できないものを理解する。
Debian 12 から Testing へのより安全な移行を計画しましょう。Stable を経由してアップグレードし、バックアップを取り、APT ソースをクリーンアップし、依存関係の変更をシミュレートし、何が変更されたかを確認します。
Ubuntu Serverの緊急モードを安全に診断します。ブートログを読み取り、ルートおよびfstabマウントを確認し、障害が発生したユニットを修復し、ファイルシステムエラーを処理し、正常な再起動を確認します。
リモートクライアント1台用に、Debian 12 WireGuard VPNサーバーをセットアップします。キー、IPv4フォワーディング、nftables NAT、ファイアウォールアクセス、接続チェックを設定します。