AdGuard Home構築|Docker + Tailscaleで外出先も広告ブロック

目次

導入

会社でも家庭でも、「ウィルス対策はしているけど、広告対策までは手が回っていない」というケースは多いのではないでしょうか? 最近は広告を装ったフィッシングサイトへの誘導も巧妙で、少し危ないと感じることが増えました。

そこで、自宅のSynology NAS上に、AdGuard Homeを構築してみました。
実際に使ってみると、広告を消すというよりは、フィッシングサイト対策やトラッキングの軽減といった効果を実感しています。そのため、PCではブラウザの拡張機能などと併用するのが一番現実的かと思います。

また、iPhoneやiPadではモバイル回線利用時に自宅のDNSサーバーをそのまま利用することができないため、TailscaleでVPN接続を行い、外出先からでもAdGuard Homeを利用できる環境を構築しました。

今回は、Synology NASのDocker上へAdGuard Homeを構築し、Tailscale経由でモバイル端末からも利用する手順をまとめます。

現在の構成

構成のポイント

  • Synology NAS上のDockerでAdGuard Homeを運用
  • Synology NASはAdGuard Homeだけでなく、バックアップやObsidian同期などにも活用
  • 自宅内の端末はNVR510からDHCPでIPアドレスを取得
  • DNS設定もDHCPで自動配布されるため、各端末で個別設定は不要
  • NVR510自身のDNS問い合わせ先はAdGuard Homeを指定
  • AdGuard Homeで広告・フィッシング・トラッキングドメインをフィルタリング
  • 外出先からはTailscale経由で自宅NASへ接続
  • モバイル回線利用時も自宅と同じDNS環境を利用可能
  • Windows・iPhone・iPadをまとめて保護可能

検証時に分かったこと

  • IPv6環境向けにRDNSS(RAによるDNS配布)も検証
  • Wiresharkで確認したところ、RDNSS自体は正常に配布されていた
  • しかし、Windows 11およびSynology DSMでは、配布したDNS以外にルーター自身のIPv6アドレスもDNSサーバーとして認識される挙動を確認
  • 原因は現在調査中(YAMAHAへ問い合わせ中)
  • 安定運用を優先し、現在はNVR510経由でAdGuard Homeへフォワードする構成を採用

1.Synology NASへAdGuard Homeを導入

まずは、広告ブロックやDNSフィルタリングを行うため、Synology NAS上へAdGuard Homeを導入します。

今回はDSM標準の「Container Manager」を利用し、Dockerコンテナとして構築しました。

以前はブラウザ拡張機能だけで対策していましたが、DNSレベルでフィルタリングできるため、PCやスマートフォンをまとめて保護できる点が便利です。

Docker用フォルダを作成

Container Managerでコンテナを作成する前に、設定ファイルやログを保存するフォルダを作成しておきます。

File Stationなどで、

/volume1/docker/adguardhome/work
/volume1/docker/adguardhome/conf

の構成でフォルダを作成します。

Container Managerをインストール

DSMの「パッケージセンター」から、

  • Container Manager

をインストールします。
DSM7系であれば標準で利用できます。

プロジェクトを作成

Container Managerから新規プロジェクトを作成します。

プロジェクト名:adguardhome
※小文字「a-z」、数字「0-9」、ハイフン「-」および「 _ 」のみ、名前の先頭に記号は不可
パス:Docker用に作成したフォルダ

/volume1/docker/adguardhome

work confの上の階層を指定

ソース:docker-compose.ymlを作成
以下のソースを参考に作成。volumes:の部分は、自分の環境に合わせて下さい。

services:
  adguardhome:
    image: adguard/adguardhome
    container_name: adguardhome
    restart: unless-stopped
    network_mode: host
    volumes:
      - /volume1/docker/adguardhome/work:/opt/adguardhome/work  
      - /volume1/docker/adguardhome/conf:/opt/adguardhome/conf

注意点:

  • DNSサーバーとして機能させるため、network_mode: host を指定しています。これによりNASのポートを直接利用するため、他のサービスと53番ポートが競合しないよう注意してください。

初回セットアップ

コンテナ起動後、ブラウザで

http://NAS_IP:3000

へアクセスします。

初回アクセス時はセットアップウィザードが表示されます。
DNSサーバーの待受ポートはデフォルトのままで問題ありません。
管理者アカウント作成後、AdGuard Homeの管理画面へログインできるようになります。

2.NVR510でDNSサーバーを配布

AdGuard Homeのセットアップが完了したら、自宅ネットワークの端末が自動的にDNSフィルタリングを利用できるよう設定します。

私の環境ではYAMAHA NVR510を利用しているため、DHCPで配布するDNSサーバーをNVR510自身に設定しています。

NVR510は受け取ったDNS問い合わせをAdGuard Homeへ転送するため、PCやスマートフォン側で個別設定を行う必要がありません。

AdGuard HomeのIPアドレスを固定

まずは、AdGuard Homeを稼働させているSynology NASのIPアドレスを固定しておきます。
DHCPで自動取得のまま運用すると、IPアドレス変更時にDNS設定が機能しなくなるためです。
仮の環境では、

192.168.1.10

とします。

DHCPでDNSを配布

NVR510へログインし、DNSサーバーとしてAdGuard Homeを利用するよう設定します。

dns server 192.168.1.10
save

になります。

設定後、NVR510は受け取ったDNS問い合わせをAdGuard Homeへ転送するようになります。

設定確認

Windowsの場合はコマンドプロンプトで、

ipconfig /all

を実行します。

DNSサーバー欄にルーターのIPアドレスが表示されていれば正常です。

iPhoneやiPadの場合は、

設定 ⇒ Wi-Fi ⇒ 接続中SSID ⇒ DNSの構成

をタップすると確認できます。

動作確認

ブラウザでAdGuard Homeの管理画面を開きます。

http://192.168.1.10

利用端末からWebサイトへアクセスすると、

クライアントクエリログ

にアクセス履歴が表示されます。

クエリ・ログが増えていれば、端末がAdGuard Homeを経由して通信している状態です。

3.Tailscale経由で外出先からAdGuard Homeを利用する

自宅内ではNVR510経由でAdGuard Homeを利用できますが、モバイル回線や外出先のWi-Fi利用時は、自宅のDNSサーバーへ直接アクセスできません。そこで、Tailscaleを利用して外出先からでも自宅のAdGuard Homeを利用できるようにします。

Tailscaleをインストール

まずは以下の端末へTailscaleをインストールします。

  • Synology NAS
  • iPhone
  • iPad
  • Windows(必要に応じて)

インストール後は同じアカウントでログインし、同一ネットワーク(Tailnet)へ参加させます。

AdGuard HomeのTailscale IPを確認

Tailscale接続後、Synology NASには専用のIP(100.xxx.xxx.xxx)アドレスが割り当てられます。
このアドレスはTailscale管理画面、またはNAS側のTailscale管理画面から確認できます。

Tailscale接続時は、このTailscale IP経由でAdGuard Homeへ接続します。

Tailscale DNSを設定

ブラウザからTailscale管理画面にログインしDNSに進みます。

DNSサーバーとして、先ほど確認したAdGuard HomeのTailscale IPを登録します。

Global nameserversの欄に先に確認したSynology NASのIPアドレスを入力します。

100.xxx.xxx.xxx

そして、Override DNS serversのチェックをONにします。

設定後、Tailscale接続中の端末はAdGuard Homeを利用して名前解決を行うようになります。

動作確認

iPhoneやiPadでWi-FiをOFFにし、モバイル回線へ切り替えます。

その状態でTailscaleを接続し、Webサイトへアクセスします。

AdGuard Homeの管理画面を開き、

クエリログ

へ問い合わせ履歴が表示されていれば設定完了です。

ポイント

  • 外出先でも自宅と同じDNSフィルタリング環境を利用できる
  • モバイル回線利用時も広告・フィッシング対策が有効
  • 自宅ルーター側の設定変更は不要
  • Tailscale経由ではNVR510を経由せず、AdGuard Homeへ直接問い合わせを行う
  • Tailscaleの詳細設定(Subnet Router、Exit Nodeなど)は別記事でまとめる予定

4.AdGuard Home フィルタリストの追加

AdGuard Homeをインストールした直後でも基本的な広告ブロックは動作しますが、フィルタリストを追加することで効果を高めることができます。
ただし、フィルタを増やし過ぎると正常なサイトまでブロックされる場合があるため、最初は標準的なリストのみ利用するのがおすすめです。
フィルタに関しては、他に紹介しているサイトを参考にして色々試してみて下さい。

現在のDNSブロックリスト

  • AdGuard DNS filter
    AdGuard Home標準のブロックリストです。
    広告やトラッキング、フィッシングサイト対策など、基本的なフィルタリングを行います。
  • OISD Blocklist Big
    複数の有名なブロックリストを統合したリストです。
    利用者も多く、広告・トラッキング・マルウェア関連ドメインを幅広くブロックできます。
  • OISD nsfw
    アダルトサイト関連のドメインをブロックするためのリストです。
    家庭内で利用する端末が多いため、有効化しています。

5.実際に運用してみて

広告が全部消える訳ではありませんが、フィッシングサイト対策や怪しい広告対策としては十分効果を感じています。

また、AdGuard Homeのクエリログを見ると、思った以上にブロックされていて面白いです。

そのうち、この「ブロック済み」が多い端末はどれだろう?と気になってくるのですが、今回の構成ではクライアントから直接AdGuard Homeへ問い合わせていないため、ログ上は全てルーターのアドレスになっています。

実は当初、クライアントから直接AdGuard Homeへ問い合わせる構成にしたかったのですが、IPv6絡みで思ったように動きませんでした。理由は、検証時にわかった事に記載

まだ完全に納得した訳ではないので、この辺りは今後も時間を見つけて検証してみようと思っています。

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

この記事を書いた人

アーキー
試行錯誤しながら「便利」を作るのが好きな人。
中小企業の現場で、NAS・Docker・Obsidian・AI・WordPressなどを実験しながら、“実際に使えるIT環境” を日々構築中。

専門家というより、「まず触って試すタイプ」。
ChatGPTやAIツールも、単なる流行ではなく「現場でどう役立つか?」を重視して使っています。

このサイトでは、
・Obsidianや同期環境の構築
・NAS / Docker / 自宅サーバー運用
・WordPressやサイト改善
・AI活用や業務効率化
などを、初心者目線も忘れずにまとめています。

器用貧乏だけど、作ることは好き。
完成品より、“試行錯誤の過程” にワクワクするタイプです。

目次