AdGuardHomeは、ネットワークレベルで広告をブロックする革新的なDNSサーバーソリューションです。従来のブラウザ拡張機能やアプリレベルの広告ブロッカーとは異なり、DNS要求を監視・フィルタリングすることで、ネットワーク全体の広告を効率的にブロックします。
今回は、AdGuardHomeの導入から高度な運用まで、快適で安全なインターネット環境を構築する方法を詳しく解説します。
- ネットワークレベルブロック: 接続されたすべてのデバイスで広告ブロック
- 詳細な統計情報: リアルタイムでのDNSクエリ監視・分析
- 柔軟なフィルタリング: 豊富なブロックリストとカスタムルール
- DNS-over-HTTPS対応: プライバシー強化された安全なDNS通信
- マルチデバイス対応: スマートフォン・PC・IoTデバイス一括管理
- 高性能: 軽量設計で高速なDNS応答
実測データ(導入1週間後)
ブロック率: 87%(1日平均15,000件のうち13,050件ブロック)
ページ読み込み速度: 平均34%高速化
モバイルデータ使用量: 平均28%削減
バッテリー持続時間: 平均15%向上
システム要件と事前準備
- 53/UDP: DNSサーバー用(必須)
- 53/TCP: DNSサーバー用(大きなクエリ用)
- 80/TCP: 管理画面用(初期設定後変更可)
- 3000/TCP: 初期セットアップ用
- 443/TCP: HTTPS管理画面(オプション)
- 853/TCP: DNS-over-TLS(オプション)
- 784/UDP: DNS-over-QUIC(オプション)
事前準備(ディストリビューション別)
各ディストリビューションに合わせて、システムの更新と必要なツールのインストールを行います。
# システム更新と必要ツールインストール
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget
# システム更新と必要ツールインストール
sudo dnf update -y
sudo dnf install -y curl wget
# システム更新と必要ツールインストール
sudo dnf update -y
sudo dnf install -y curl wget
# システム更新と必要ツールインストール
sudo zypper update -y
sudo zypper install -y curl wget
# システム更新と必要ツールインストール
sudo pacman -Syu
sudo pacman -S curl wget
AdGuardHomeのインストール
AdGuardHomeは公式の自動インストールスクリプトを提供しており、これが最も簡単で確実な方法です。システムを自動検出し、適切なバイナリをダウンロード・設定します。
1. 公式自動インストールスクリプト(推奨)
# 公式インストールスクリプトを実行(詳細出力付き)
curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v
# 公式インストールスクリプトを実行(詳細出力付き)
wget --no-verbose -O - https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v
このスクリプトは以下を自動的に実行します:
- システムアーキテクチャの検出(x86_64、ARM、MIPS等)
- 適切なバイナリのダウンロード
/opt/AdGuardHomeへのインストール- systemdサービスの設定
- サービスの自動起動設定
2. 手動インストール(カスタマイズが必要な場合)
# GitHubから最新版を手動でダウンロード
cd /tmp
curl -s https://api.github.com/repos/AdguardTeam/AdGuardHome/releases/latest | grep "browser_download_url.*linux_amd64.tar.gz" | cut -d '"' -f 4 | wget -i -
# 解凍とインストール
tar -xzf AdGuardHome_linux_amd64.tar.gz
sudo mkdir -p /opt/AdGuardHome
sudo cp -r AdGuardHome/* /opt/AdGuardHome/
# 実行権限付与
sudo chmod +x /opt/AdGuardHome/AdGuardHome
ポート53の競合解決(重要)
多くのLinuxシステムでは、systemd-resolvedがポート53を使用しているため、AdGuardHomeと競合します。以下の手順で解決します。
/etc/systemd/resolved.conf.d/adguardhome.conf を作成して設定を追記します。
sudo mkdir -p /etc/systemd/resolved.conf.d
sudo tee /etc/systemd/resolved.conf.d/adguardhome.conf > /dev/null <<EOT
[Resolve]
DNSStubListener=no
EOT
システムのDNS解決設定(resolv.conf)を、resolvedの生成するものにリンクさせます。
sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
設定を反映させるためにサービスを再起動します。
sudo systemctl restart systemd-resolved
AdGuardHome設定ファイル
1. 基本設定ファイルの作成
# メイン設定ファイル /opt/AdGuardHome/AdGuardHome.yaml
bind_host: 0.0.0.0
bind_port: 3000
# 管理者アカウント(htpasswdで生成)
users:
- name: admin
password: [htpasswdで生成したハッシュ]
# DNS設定
dns:
bind_hosts: [0.0.0.0]
port: 53
upstream_dns:
- https://dns.cloudflare.com/dns-query
- https://dns.google/dns-query
- 1.1.1.1
- 8.8.8.8
# フィルタリング設定
filtering:
protection_enabled: true
filtering_enabled: true
2. パスワード設定
設定ファイルに直接パスワードを書くのではなく、ハッシュ化して記載します。
# パスワードハッシュを生成(例: admin123)
htpasswd -bnBC 10 "" admin123 | tr -d '\n'
ファイアウォール設定(ディストリビューション別)
sudo firewall-cmd --add-service=dns --permanent
sudo firewall-cmd --add-port=3000/tcp --permanent
sudo firewall-cmd --reload
sudo ufw allow 53/tcp
sudo ufw allow 53/udp
sudo ufw allow 3000/tcp
sudo ufw reload
sudo iptables -A INPUT -p tcp --dport 53 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 53 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 3000 -j ACCEPT
sudo iptables-save > /etc/iptables/rules.v4
サービスの起動と確認
# サービス状態確認
sudo systemctl status AdGuardHome
# サービスが停止している場合
sudo systemctl start AdGuardHome
sudo systemctl enable AdGuardHome
# 初回起動(サービスとして登録)
sudo /opt/AdGuardHome/AdGuardHome -s install
sudo /opt/AdGuardHome/AdGuardHome -s start
# サービス状態確認
sudo /opt/AdGuardHome/AdGuardHome -s status
# ログをリアルタイムで監視
sudo journalctl -u AdGuardHome -f
# ポートの待ち受け確認
sudo netstat -tulpn | grep -E ":(53|3000)"
# または
sudo ss -tulpn | grep -E ":(53|3000)"
管理画面の初期設定
ブラウザで http://your-server-ip:3000 にアクセスし、セットアップウィザードを開始します。
1. 初回セットアップウィザード
- 言語選択: 日本語を選択
- 管理画面ポート: 3000番(デフォルト)または任意のカスタムポート
- DNSサーバーポート: 53番(標準DNS)
- 管理者アカウント: ユーザー名とパスワードを設定
- デバイス設定方法: 画面に表示されるガイドに従い、ルーターや端末のDNSを設定
2. パフォーマンス最適化設定
50台規模のホームネットワーク向け推奨設定です:
- 並列リクエスト: 複数の上位DNSサーバーに同時クエリを送信し、最速の応答を使用(応答速度向上)
- キャッシュサイズ: 100万エントリー以上(RAMが2GB以上の場合)
- フィルターリスト: 信頼性の高い主要リストに絞って使用(CPU負荷軽減)
- ログ保持期間: 7日間(SDカード書き込み寿命保護のため、SDカード運用の場合は3日を推奨)
効果的なフィルタリスト設定
1. Hageziの多段階保護フィルタ(世界標準・高品質)
Hageziプロジェクトは、保護レベル別に最適化された高品質なフィルタリストを提供しています。自分のニーズに合わせて選択してください。多くの家庭には「Pro」が、誤検知が少なく最もバランスが良いです。
- Light (基本):
https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/light.txt - Multi (推奨):
https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/multi.txt - Pro (バランス最高):
https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/pro.txt - Pro Plus (強力):
https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/pro.plus.txt - Ultimate (完全遮断):
https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/ultimate.txt
2. 日本向け特化フィルタ
日本のサイト特有の広告に対応するために、以下のリストを追加することを推奨します。
豆腐フィルタ(定番)
https://raw.githubusercontent.com/tofukko/filter/master/Adblock_Plus_list.txt
もちフィルタ(補完用)
https://raw.githubusercontent.com/eEIi0A5L/adblock_filter/main/mochi_filter.txt
AdGuard日本用フィルタ
https://raw.githubusercontent.com/AdguardTeam/AdguardFilters/master/JapaneseFilter/sections/adservers.txt
3. カスタムルール例
# 特定ドメインのブロック
||ads.example.com^
||analytics.google.com^
# ホワイトリスト(例外設定)
@@||trusted-site.com^
@@||your-company.com^
# 正規表現を使用した高度なフィルタリング
/^ad[0-9]*./
/^banner[0-9]*./
統計・監視・分析機能
1. ダッシュボードの活用
- DNSクエリ統計: 総クエリ数、ブロック率、上位クライアント
- ブロック統計: ブロックされた広告数、上位ブロックドメイン
- 上位ドメイン: 正常解決されたドメイン、人気サイトのアクセス頻度分析
2. APIでの統計取得
# 統計情報の生データ取得
curl -s "http://localhost:3000/control/stats" | jq .
# ブロック率をパーセンテージで算出
curl -s "http://localhost:3000/control/stats" | jq '.num_blocked_filtering / .num_dns_queries * 100'
高度なカスタマイズ設定
1. DNS-over-HTTPS (DoH) 設定
Let’s Encrypt等の証明書を適用することで、外部から安全にDNSを利用可能です。
# certbotでの証明書取得(例)
sudo certbot certonly --standalone -d adguard.yourdomain.com
# AdGuardHome.yaml でのTLS設定
tls:
enabled: true
server_name: adguard.yourdomain.com
port_https: 443
port_dns_over_tls: 853
certificate_chain: "/etc/letsencrypt/live/adguard.yourdomain.com/fullchain.pem"
private_key: "/etc/letsencrypt/live/adguard.yourdomain.com/privkey.pem"
トラブルシューティング
# DNS応答テスト
dig @localhost google.com
# または
nslookup google.com localhost
# ログ確認(過去1時間分)
sudo journalctl -u AdGuardHome --since "1 hour ago"
AdGuardHome構築におすすめのハードウェア
24時間稼働させるAdGuardHomeには、低消費電力かつ安定したパフォーマンスを発揮する以下のデバイスが強く推奨されます。
最新のRaspberry Pi。圧倒的な処理能力で大量のDNSリクエストも軽快に捌きます。
Intel Twin Lake-Nシリーズ搭載。省電力ながら強力なx86_64環境で、他のサーバーサービスとの併用にも最適。
高耐久microSDカードの重要性
24時間稼働するサーバーには、SanDisk Extremeなどの高耐久(High Endurance)モデルを選びましょう。安価なSDカードはログの書き込みですぐに故障する恐れがあります。
まとめ:AdGuardHomeで実現する快適なネット環境
AdGuardHomeを導入することで、広告のストレスから解放されるだけでなく、プライバシーの保護、通信速度の向上、さらにはデバイスのバッテリー寿命改善まで、多くのメリットを享受できます。セルフホスティングの第一歩として、ぜひこの強力なツールを活用してみてください。
かれるみネットワークの守護神、AdGuardHome。一度これを知ってしまうと、もう広告だらけのネットには戻れないよ。
コメント