ブラウザの広告ブロッカーはブラウザしか守りません。スマホのアプリ、テレビ、ゲーム機、ネット接続の冷蔵庫の広告はそのまま配信されます。フィルタ付き DNS はそれらを一度にカバーする方法で、その仕組みを理解すれば限界も見えてきます。
DNS が広告をブロックする仕組み
アプリやサイトが広告を表示しようとするとき、ほぼ必ずコンテンツとは別のドメインから広告を取得します。広告ネットワーク、トラッキングサーバー、計測サービスなどです。接続する前に、端末はそのドメインを DNS に問い合わせます。フィルタ付きリゾルバーはそうしたドメインのリストを持っていて、問い合わせがあると「存在しない」と答えます(あるいは空のアドレスを返します)。アプリは広告をダウンロードできず、空白か何も表示しません。
ここからこの方式の 3 つの性質が生まれます。
- その DNS を使うすべてに効く。 ルーターに設定すれば家中の全端末に、スマホにプライベート DNS として設定すればすべてのアプリに効きます。
- 何もインストールせず、リソースも使わない。 拡張機能もアプリもバックグラウンドプロセスもありません。
- ドメイン単位でしかブロックできない。 ページの中身は見えず、同じ場所から来る広告と動画を区別できません。
どの DNS にもブロックできないもの
初めて試す人が最もがっかりするところなので、先に書きます。
同一ドメインの広告。 YouTube は動画と同じドメインから広告を配信します。Twitch も同じ。SNS のスポンサー投稿も同じです。DNS はサービス全体をブロックせずにこれをブロックすることはできません。YouTube には引き続きブラウザのブロッカーが必要です。
コンテンツ内の広告。 動画内のスポンサー言及、サイトのネイティブ広告、検索エンジンのプロモーション結果。ブロックすべきドメインがありません。
別経路のトラッキング。 DNS はトラッキングドメインをブロックしますが、サイト自身の Cookie、ブラウザのフィンガープリント、アプリが自社サーバーへ送る情報は止められません。
それを踏まえれば、それ以外にはとてもよく効きます。サイトのバナー、無料アプリのインタースティシャル広告、サードパーティのトラッカー、視聴計測、そしてテレビ向けアプリの広告のかなりの部分。
無料の選択肢を一つずつ
| リゾルバー | アドレス | プライベート DNS(DoT)用の名前 | ブロック対象 | ログ |
|---|---|---|---|---|
| AdGuard DNS | 94.140.14.14 · 94.140.15.15 | dns.adguard-dns.com | 広告、トラッカー、マルウェア | 保持しない |
| Control D(広告モード) | 76.76.2.2 · 76.76.10.2 | p2.freedns.controld.com | 広告、トラッカー、マルウェア | 保持しない |
| DNS4EU(保護 + 広告なし) | 86.54.11.13 · 86.54.11.213 | noads.joindns4.eu | 広告、トラッカー、マルウェア | 保持しない |
| NextDNS | アカウント必要(45.90.28.0 はフィルタなし) | <id>.dns.nextdns.io | 設定したもの | 任意 |
AdGuard DNS が基準です。AdGuard 自身が毎日更新するフィルタリストを使い、アダルトコンテンツとセーフサーチを加えたファミリー版(94.140.14.15)と、フィルタなし版(94.140.14.140)もあります。運用はキプロスから、ログは保持しません。マドリードからの当サイトの計測ではグループ内で最も遅く(キャッシュ済み 34 ミリ秒、コールド 107 ミリ秒)、ブラウジングには十分ですが DNS4EU の 6 ミリ秒と比べると差が出ます。
Control D はアカウント不要の無料リゾルバーを 6 段階で提供しています。フィルタなし(76.76.2.0)、マルウェア(2.1)、マルウェアと広告(2.2)、それにSNSを加えたもの(2.3)、ファミリー(2.4)、検閲なし(2.5)。広告用は 76.76.2.2 です。マドリードからはキャッシュ済み 7 ミリ秒、コールド 106 ミリ秒でした。カナダ、ログなし。
DNS4EU は欧州の公共リゾルバーで、広告なし版が 2 つあります。保護版(86.54.11.13)と子ども向け版(86.54.11.11)で、どちらもマルウェアをブロックします。このリストで唯一、運用者と法域が EU 内にあり、マドリードからは最速でした(キャッシュ済み 6 ミリ秒、コールド 35 ミリ秒)。
NextDNS は毛色が違います。パブリックアドレス(45.90.28.0)は何もフィルタしません。ブロックするには無料アカウントを作り、リストを選び(AdGuard、EasyList、OISD など数十種類を読み込めます)、例外を追加し、必要なら問い合わせログを見ます。最も強力で、壊れたものを自分で直せる唯一の選択肢です。無料プランは月 30 万クエリまでで、普通の家庭には十分すぎます。
何が壊れ、どう直すか
ブロックリストは設計上アグレッシブで、ときどき余計なものまで巻き込みます。
- アフィリエイトリンクやトラッキングリンク(メールマガジンのリンク、クーポンサイトの「お得情報を見る」ボタン)はトラッキングドメインを経由するので空白になります。その DNS を使っていないブラウザで開くか、NextDNS で例外を追加します。
- 購入ボタンや決済ページで、動作前に計測スクリプトを読み込むもの。
- ゲームやアプリで、ログインやストアがリストに載ったテレメトリドメインに依存しているもの。ゲームの記事で扱っています。
- 「接続なし」と表示するアプリ。 ブロックをネットワーク障害と解釈するためです。
実践的なルール:何かが妙に動かないときは、1 分だけフィルタなしのリゾルバー(1.1.1.1 か同じプロバイダーのフィルタなし版)に切り替えてみる。動けば原因が分かります。そしてフィルタ付きをプライマリ、フィルタなしをセカンダリにしないこと。ブロックに穴が開きます。
どこに設定するか
ルーターに設定すれば、テレビやゲーム機を含む家中を一度にカバーできます(ルーターのガイド)。スマホでは Android のプライベート DNS か iPhone のプロバイダープロファイルで、モバイル通信でも効かせます(スマホの記事)。パソコンだけでブロックしたいなら、Windows や macOS に直接設定します。
決める前に、速度テストで 4 つのうちどれがあなたのネットワークから最速で応答するか確かめてください。遅いフィルタはページを開くたびに響きます。