AdGuard Home を Raspberry Pi に導入して家庭内DNS広告ブロックを実現する
一行要約
Raspberry Pi に AdGuard Home を導入し、LAN 全体の DNS を AdGuard に向けることで広告・トラッキングをブロックする。
概要
- 役割: 家庭内 DNS サーバー兼広告ブロッカー
- 手順: 1) 固定IP設定 → 2) AdGuard Home インストール → 3) 初期設定(ポート3000) → 4) ルータ/DHCP で DNS を配布
- 注意: 一部ルータは「同一サブネットの DNS 指定」を拒否するため、DHCPサーバ側で DNS を配る運用に切替が有効
なぜ重要か
- 端末ごとの広告ブロック設定から開放され、ネットワーク全体で一括適用できる
- 端末の電池/帯域の節約、誤タップ削減、プライバシー向上に直結
- フィルタを集中管理でき、トラブル時の切り分けも容易
詳細な説明
1. Raspberry Pi の固定IP化
- /etc/dhcpcd.conf にて固定IP/ゲートウェイ/DNSを設定
- ルータ側で「アドレス予約」も併用すると安定
2. AdGuard Home のインストール
- 公式パッケージ(バイナリ)を導入
- 初回起動後、http://[RasPiのIP]:3000 でセットアップウィザード実行
- 管理UIのポート/ログ/フィルタサブスクリプションを設定
3. ルータ/DHCP の DNS 配布
- ルータの機種によっては「同一サブネットのDNS指定」が禁止されるケースがある(例: AC2600 で挙動に難あり)
- 対策:
- ルータでのDNS指定を諦め、DHCPサーバの配布 DNS を AdGuard Home に変更する
- もしくは Raspberry Pi を別セグメントに配置(上級者向け)
4. 動作確認
- AdGuard Home ダッシュボードでクエリが流れているか確認
- クライアント端末から任意ドメインの名前解決結果とブロック統計を確認
よくある詰まりポイント
| 問題 | 原因 | 解決策 |
|---|---|---|
| 初期設定画面に繋がらない | ポート/Firewall | http://IP:3000 を確認、UFW等のポート解放 |
| 広告が全く減らない | クライアントが別DNSを使用 | クライアントDNSを自動取得(=AdGuard)に変更、DoH/DoTの端末側設定を見直し |
| ルータでDNS設定できない | 機種制限 | DHCP配布DNSをAdGuardに、または別セグメント設計 |
| 名前解決が不安定 | 二重DNS/キャッシュ競合 | LANの「唯一のリゾルバ」を明確化、ルータDNSを無効化 |
参考資料
- RaspberryPiを使ってDNSサーバーを構築し、広告をブロックする方法 AdBlock - Qiita
https://qiita.com/SheldonCooper/items/3ac4d7fb2cb00c8dc5b3 - AdGuard Homeで広告ブロック&お手軽内部ネットワーク用DNSを作ろう(ついでに冗長化) - Qiita
https://qiita.com/katori_m/items/02aef27024b848b160a4