0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AdGuardHomeでDNS広告ブロックサーバーを構築

Posted at

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設定

  1. ブラウザで http://サーバーIP:3000 にアクセス
  2. 「Get Started」をクリック
  3. 管理画面ポート設定(デフォルト: 80)
  4. DNSサーバー設定(デフォルト: 53)
  5. 管理者アカウント作成

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レベル広告ブロックの実装

関連記事


0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?