AdGuardHomeでDNS広告ブロックサーバーを構築
AdGuardHomeは、ネットワークレベルで広告をブロックするDNSサーバーです。Pi-holeと並ぶ人気のソリューションで、WebUIが使いやすく企業環境でも導入しやすいツールです。
AdGuardHomeの特徴
- ネットワーク全体で広告ブロック: 全デバイス一括対応
- 高性能フィルタリング: 正規表現・ワイルドカード対応
- 詳細なログ・統計: クエリ履歴・ブロック率の可視化
- 保護者制御: 有害サイトのブロック機能
前提条件
- Docker/Docker Compose実行環境
- ポート53(DNS)、3000(WebUI)が使用可能
- sudo権限
1. Docker Composeで構築
ディレクトリ準備
mkdir -p ~/adguardhome/{work,conf}
cd ~/adguardhome
docker-compose.yml作成
version: '3.3'
services:
adguardhome:
image: adguard/adguardhome:latest
container_name: adguardhome
restart: unless-stopped
ports:
- "53:53/tcp"
- "53:53/udp"
- "3000:3000/tcp" # 初期設定用WebUI
- "80:80/tcp" # 管理画面(設定後)
- "443:443/tcp" # HTTPS管理画面
volumes:
- ./work:/opt/adguardhome/work
- ./conf:/opt/adguardhome/conf
environment:
- TZ=Asia/Tokyo
起動
# コンテナ起動
docker-compose up -d
# ログ確認
docker-compose logs -f adguardhome
2. 初期設定
WebUI設定
- ブラウザで
http://サーバーIP:3000
にアクセス - 「Get Started」をクリック
- 管理画面ポート設定(デフォルト: 80)
- DNSサーバー設定(デフォルト: 53)
- 管理者アカウント作成
DNS設定確認
# AdGuardHomeのDNS動作確認
nslookup google.com サーバーIP
# 広告ドメインのブロック確認
nslookup doubleclick.net サーバーIP
3. フィルタリング設定
推奨フィルタリストの追加
管理画面 → フィルタ → DNS遮断リスト
# 基本セット
AdGuard Base filter
AdGuard Mobile Ads filter
EasyList
# 日本向け(重要)
AdGuard Japanese filter
EasyList China+EasyList
uBlock Origin filters - Badware risks
# プライバシー保護
EasyPrivacy
AdGuard Tracking Protection filter
カスタムルール例
# 特定ドメインブロック
||example-ads.com^
# サブドメイン含めブロック
||ads.example.com^
# 正規表現ブロック
/^ads\d+\.example\.com$/
# ホワイトリスト(ブロック解除)
@@||trusted-site.com^
4. クライアント設定
手動DNS設定
Windows:
ネットワーク設定 → プロパティ → TCP/IPv4 → DNS設定
優先DNS: <AdGuardHomeのIP>
代替DNS: 8.8.8.8
Ubuntu/Linux:
# /etc/systemd/resolved.conf編集
[Resolve]
DNS=<AdGuardHomeのIP>
FallbackDNS=8.8.8.8
# 設定反映
sudo systemctl restart systemd-resolved
ルーター設定(推奨)
ルーター管理画面 → DHCP設定 → DNS設定
プライマリDNS: <AdGuardHomeのIP>
セカンダリDNS: 8.8.8.8
5. 動作確認・統計確認
フィルタリング動作確認
# 広告サイトへのアクセステスト
curl -I http://doubleclick.net
# → 期待結果: 接続拒否または空のレスポンス
# 正常サイトへのアクセステスト
curl -I http://google.com
# → 期待結果: 正常なHTTPレスポンス
管理画面で統計確認
- ダッシュボード: ブロック率・クエリ数
- クエリログ: リアルタイムDNSクエリ
- 設定 → DNS設定: アップストリームDNS設定
まとめ
AdGuardHomeをDocker Composeで構築する手順を紹介しました。ネットワーク全体での広告ブロックが実現できます。
日本向けフィルタ設定の詳細と高度な設定方法はブログで解説
👉 AdGuardHome導入ガイド:DNSレベル広告ブロックの実装