MENU

AdGuardHome 導入ガイド|家中のデバイスを広告フリーにする最強の DNS サーバー

本記事にはアフィリエイトリンクが含まれています。みんなの応援ポチが、私の次の探索資金になります!※特に明記無いものは、私の自腹レビューです。

AdGuardHomeは、ネットワークレベルで広告をブロックする革新的なDNSサーバーソリューションです。従来のブラウザ拡張機能やアプリレベルの広告ブロッカーとは異なり、DNS要求を監視・フィルタリングすることで、ネットワーク全体の広告を効率的にブロックします。

今回は、AdGuardHomeの導入から高度な運用まで、快適で安全なインターネット環境を構築する方法を詳しく解説します。

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(オプション)

事前準備(ディストリビューション別)

各ディストリビューションに合わせて、システムの更新と必要なツールのインストールを行います。

Debian / Ubuntu系
# システム更新と必要ツールインストール
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget
RHEL / CentOS / AlmaLinux / Rocky Linux
# システム更新と必要ツールインストール
sudo dnf update -y
sudo dnf install -y curl wget
Fedora
# システム更新と必要ツールインストール
sudo dnf update -y
sudo dnf install -y curl wget
openSUSE
# システム更新と必要ツールインストール
sudo zypper update -y
sudo zypper install -y curl wget
Arch Linux
# システム更新と必要ツールインストール
sudo pacman -Syu
sudo pacman -S curl wget

AdGuardHomeのインストール

AdGuardHomeは公式の自動インストールスクリプトを提供しており、これが最も簡単で確実な方法です。システムを自動検出し、適切なバイナリをダウンロード・設定します。

1. 公式自動インストールスクリプト(推奨)

curlを使用する場合
# 公式インストールスクリプトを実行(詳細出力付き)
curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v
wgetを使用する場合
# 公式インストールスクリプトを実行(詳細出力付き)
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と競合します。以下の手順で解決します。

STEP
DNSStubListenerの無効化

/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
STEP
シンボリックリンクの再作成

システムのDNS解決設定(resolv.conf)を、resolvedの生成するものにリンクさせます。

sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
STEP
サービスの再起動

設定を反映させるためにサービスを再起動します。

sudo systemctl restart systemd-resolved

AdGuardHome設定ファイル

1. 基本設定ファイルの作成

AdGuardHome.yaml の基本構成
# メイン設定ファイル /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'

ファイアウォール設定(ディストリビューション別)

firewalld(RHEL / Fedora 系)
sudo firewall-cmd --add-service=dns --permanent
sudo firewall-cmd --add-port=3000/tcp --permanent
sudo firewall-cmd --reload
ufw(Ubuntu / Debian 系)
sudo ufw allow 53/tcp
sudo ufw allow 53/udp
sudo ufw allow 3000/tcp
sudo ufw reload
iptables(汎用)
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. 初回セットアップウィザード

  1. 言語選択: 日本語を選択
  2. 管理画面ポート: 3000番(デフォルト)または任意のカスタムポート
  3. DNSサーバーポート: 53番(標準DNS)
  4. 管理者アカウント: ユーザー名とパスワードを設定
  5. デバイス設定方法: 画面に表示されるガイドに従い、ルーターや端末のDNSを設定

2. パフォーマンス最適化設定

50台規模のホームネットワーク向け推奨設定です:

  • 並列リクエスト: 複数の上位DNSサーバーに同時クエリを送信し、最速の応答を使用(応答速度向上)
  • キャッシュサイズ: 100万エントリー以上(RAMが2GB以上の場合)
  • フィルターリスト: 信頼性の高い主要リストに絞って使用(CPU負荷軽減)
  • ログ保持期間: 7日間(SDカード書き込み寿命保護のため、SDカード運用の場合は3日を推奨)

効果的なフィルタリスト設定

1. Hageziの多段階保護フィルタ(世界標準・高品質)

Hageziプロジェクトは、保護レベル別に最適化された高品質なフィルタリストを提供しています。自分のニーズに合わせて選択してください。多くの家庭には「Pro」が、誤検知が少なく最もバランスが良いです。

Hagezi フィルタリスト URL
  • 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. 日本向け特化フィルタ

日本のサイト特有の広告に対応するために、以下のリストを追加することを推奨します。

日本向けフィルタ URL

豆腐フィルタ(定番)
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での統計取得

外部ツール連携用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を利用可能です。

SSL証明書とDoH構成
# 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 5 (8GB)

最新のRaspberry Pi。圧倒的な処理能力で大量のDNSリクエストも軽快に捌きます。

Amazonで詳細を見る | 楽天市場で探す

TRIGKEY N150 ミニPC

Intel Twin Lake-Nシリーズ搭載。省電力ながら強力なx86_64環境で、他のサーバーサービスとの併用にも最適。

Amazonで探す | 楽天市場で詳細を見る

高耐久microSDカードの重要性
24時間稼働するサーバーには、SanDisk Extremeなどの高耐久(High Endurance)モデルを選びましょう。安価なSDカードはログの書き込みですぐに故障する恐れがあります。

まとめ:AdGuardHomeで実現する快適なネット環境

AdGuardHomeを導入することで、広告のストレスから解放されるだけでなく、プライバシーの保護、通信速度の向上、さらにはデバイスのバッテリー寿命改善まで、多くのメリットを享受できます。セルフホスティングの第一歩として、ぜひこの強力なツールを活用してみてください。

かれるみ

ネットワークの守護神、AdGuardHome。一度これを知ってしまうと、もう広告だらけのネットには戻れないよ。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次