MikroTikでAdListを使い広告をブロックする方法
概要
MikroTikのAdList機能(RouterOS v7.15以降)を使えば、ネットワーク全体のDNSレベルで広告をブロックできます。本ガイドではその仕組み、ルーターの準備、公的およびカスタムのブロックリスト追加、設定確認、ホワイトリスト作成、制限事項を解説します。
なぜPi-holeではなくAdListを使うのか?
AdListはMikroTik標準のDNSベース広告ブロッカーです。Pi-holeのコンテナとは違い、AdListはRouterOS上でネイティブに動作し、追加ハードウェアやコンテナ化は不要です。有効にすると、既知の広告サーバー(A・AAAAレコード)へのリクエストを実際のIPの代わりに0.0.0.0で返します。
Pi-holeに対する利点:
- 簡単設定。 ブロックリストを追加すれば即座に機能開始。
- コンテナ不要。 コンテナ化の有効化や外部Pi-holeサーバー管理が不要。
- 統合DNS。 RouterOS組み込みのDNSリゾルバーを使用、ルーターDNS設定変更は不要。
- 広い対応範囲。 RouterOS v7.15以降のすべてのMikroTikルーターで動作。
AdListはDNS応答を置き換えるため、スマホやテレビ、IoT機器などネットワーク設定のDNSを尊重する機器の広告をブロック可能です。ただし、YouTube動画広告やアプリ内広告のブロックはできません。
ルーターの準備
ブロックリスト追加前にルーターを最新のRouterOS v7に更新してください。AdListはv7.15以降で利用可能【263718328550380†L40-L41】。アップグレードはSystem → Packages → Check for updatesから最新安定版をインストールします。
DNSキャッシュサイズの増加
AdListはDNSキャッシュ内に保存されます。キャッシュが小さいと「max cache size reached」エラーが発生します。IP → DNSでCache sizeをリスト容量に合わせて十分なサイズに設定してください。例えばRAM128MBのルーターで1~2リストなら30〜40MB程度が目安です。WinBoxまたはCLIから変更可能:
/ip/dns set cache-size=40000
Allow Remote Requestsが有効であることを確認し、LANからのDNSクエリに応答できるようにします。
公共のAdListを追加する
人気のブロックリスト(例:StevenBlack hostsファイル)をインポート可能です。WinBoxでIP → DNS → Adlistに移動し、**+**をクリック。リストのURL(例:https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts)を貼り付け、証明書をインポートしていなければSSL Verifyは無効にします。処理後、マッチ数と名前数が表示されます。
CLIで同様の操作:
/ip/dns/adlist add \ url=https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts \ ssl-verify=no読み込んだドメイン数とマッチ数は以下で確認:
/ip/dns/adlist/printマッチ数(ブロックされたクエリ)と名前数(リスト内エントリー数)が表示されます。

ホワイトリストとフォワーダー
ブロックリスト上の特定ドメインを許可したい場合は、静的フォワードエントリを作成しAdListを迂回させます。例:
/ip/dns/static add name=example.com type=FWDこれはexample.comへのクエリを次のDNSサーバーに転送します【702850675801765†L430-L435】。フォワーダーを使い、上流リゾルバー(例:Quad9、Cloudflare)を指定も可能です。例えば:
/ip dns forwarders add dns-servers=1.1.1.1,8.8.8.8 name=my-fwdを作成し、静的エントリでforward-to=my-fwdを指定します。
独自ブロックリストの作成とインポート
詳細制御が必要なら、自分でブロックしたいドメインを含むテキストファイルを作成します。形式は0.0.0.0 ドメインで、例えば:
0.0.0.0 adverts.com0.0.0.0 click.adclick.com0.0.0.0 malware-site.com0.0.0.0 fraud.scam.com以下のコマンドでRouterOSに直接アップロードまたは作成可能:
/file/add name=adbl.txt/file/edit adbl.txt contentsドメインリストを入力してCtrl‑Oで保存。その後DNSのadlistに追加:
/ip/dns/adlist add file=adbl.txtname-countでファイルの解析確認:
/ip/dns/adlist/print
テストとトラブルシューティング
DNS応答の検証
adlist設定後、クライアント機でDNSキャッシュをクリアしDNSルックアップを行います。Windowsではipconfig /flushdns実行後、nslookup someadserver.comを実行し、応答が実際のIPでなく0.0.0.0または127.0.0.1で返ることを確認します。

マッチ数とキャッシュ使用状況の確認
match-countを監視しブロックされた広告リクエスト数を把握。adlist read: max cache size reachedエラーが出たらDNSキャッシュサイズ増やすか大きなリストを削除してください【702850675801765†L400-L405】。リストは内部メモリに保存されるためルーターの空き容量確保が必要です。
メンテナンスと制限
- 自動更新。 AdListは自動でリスト更新を行い、RouterOSは4時間ごとに新バージョンをチェックします。手動でのリロードも
/ip/dns/adlist/reloadで可能ですが通常不要です。 - メモリ使用。 大規模リストはRAMとストレージ容量を消費。ルーターが対応できる量を超えないよう注意。
- DNSブロックのみ。 AdListはDNSレベルで動作するため映像配信元と同一ホストの広告(例:YouTube)はブロックできません。アプリ内やYouTube広告はブラウザ拡張やPi-holeの併用が必要です。
- ネットワーク設定。 ネットワーク内の全機器がルーターのIPをDNS設定に使うようにしてください。DoH/DoTクライアントは広告ブロックを回避する場合があり、ファイアウォールでDNSトラフィックを強制的にルーター経由にすることを検討してください。
MKControllerについて
ここまでの情報があなたのMikrotikとインターネットの環境をより良く理解する助けになれば幸いです!🚀
設定の微調整でもネットワークの整理でも、MKControllerがあなたの運用をシンプルにします。
集中管理クラウド、セキュリティの自動更新、誰でも使えるダッシュボードを備え、運用のアップグレードを支援します。
👉 無料3日間トライアルを今すぐ開始 — mkcontroller.comで手軽なネットワーク管理を体験してください。