Android で VPN と広告ブロッカーを同時に使う:フィルタをどこに置くか
Android はプロファイルごとに一つの VPN サービスしか許さないため、二つのブロッカーが同じ場所を取り合います。フィルタをブラウザに置くか、VPN に置くか、DNS に置くかを決めましょう。
トンネルアプリを接続すると、ステータスバーの鍵アイコンがそちらへ切り替わります。一秒前までそこにあった広告ブロッカーは消えるか、再接続してトンネルが切れます。壊れているわけではありません。Android はユーザープロファイルごとに有効な VPN サービスを一つだけ許し、両方のアプリがその場所を求めるため、後から起動した方が先のものを置き換えます。二つの機能が両立しないのではなく、パッケージングが両立しないのです。端末側でこれを整理すれば、トンネルを保ったまま広告も削れます。
何かを変える前に場所を確認する
設定、ネットワークとインターネット、VPN の順に開き、何が一覧にあり、どの項目が接続されているかを確認します。この一覧はユーザープロファイルごとのものです。仕事用プロファイルには独自の VPN の場所と独自のアプリがあり、仕事用プロファイルにブロッカーを入れても、実際に使っている個人向けのアプリはフィルタされません。
切り替える間、ステータスバーを見てください。鍵アイコンは有効な VPN サービスのものですから、二つ目のアプリを起動してアイコンの持ち主が変われば、両方のアプリが動作中と主張していても置き換えが起きたと分かります。この方式で動くフィルタアプリは通信を遠隔のサーバーへ送っているのではなく、ローカルの VPN インターフェースでパケットを検査したり転送したりしており、同じ一つの場所を占めています。
フィルタが動く場所を選ぶ
現実的な配置は三つあり、品質よりも適用範囲で異なります。ブラウザ拡張はその一つのブラウザ内のページをフィルタし、Android の VPN の場所を空けたままにします。VPN 製品に組み込まれたフィルタは、その製品が文書化している通信とルールを対象にし、その能力は大きく異なるため、広告ブロックという表示だけでは仕組みが分かりません。フィルタする DNS リゾルバは、実際にそれを使う名前解決だけを対象にし、それ以外は対象にしません。
ここで理解しておきたい Android の機能がアプリごとの範囲です。VPN サービスはアプリの一覧に限定でき、有効なトンネルがどのアプリを扱うかが変わります。二つ目の場所を作るわけではないので、トンネルとフィルタは依然として同時には動かせません。トンネルを使わなければならないアプリからフィルタを遠ざけられるだけです。
欲しい結果で選びます。不満がウェブページの広告なら、ブラウザ内のコンテンツブロッカーはどのトンネルとも共存します。アプリ内の広告も含むなら、フィルタはアプリがすでに使っているパケットか DNS の経路に置く必要があり、通常は VPN 製品そのものか、自分で管理するリゾルバの方針を意味します。
足りるならまずブラウザのフィルタ
Android 版 Firefox は独自の Add-ons の流れで互換拡張をインストールし、Mozilla の拡張機能ガイドがインストールと各拡張が要求する権限を扱っています。インストール前にその権限を読んでください。コンテンツブロッカーはページの内容を見て変更する必要があり、これは実際の権限なので、外部から入れたパッケージではなくブラウザ自身のカタログから取るべき理由になります。
利点は構造的です。ブラウザの中で動くため、VPN の場所に触れず、端末のリゾルバを変えず、トンネルと何も競合しません。限界も同じく構造的です。他のアプリは対象外のままで、消したかった広告の多くを出すアプリも含まれます。
DNS フィルタには知っておくべき端がある
フィルタするリゾルバは名前解決に応答するので、ブロックしたホスト名がそもそも解決されるのを止めます。ページの中は見えません。広告が記事と同じホスト名から配信されていれば、その解決は正当で広告はそのまま届きます。また、それを使う解決だけに適用され、独自の暗号化リゾルバを持つアプリはシステム設定を完全に無視できます。
Android ではプライベート DNS の設定がここを鋭くします。会社のトンネルが内部名のためにプライベートなリゾルバを入れることがあるからです。広告を止めるためにそれを公開のフィルタ用リゾルバへ置き換えると、そうした名前が壊れ、広告より悪い結果になります。変更前に設定を確認し、トンネルが必要とするものは残してください。
検証してからトンネルはそのままにする
二つのアイコンを信じるのではなく、選んだ構成を試します。トンネルを接続し、VPN の一覧に期待するサービスが出ていることを確かめ、次に広告枠が分かっているページと広告を出すと分かっているアプリを開いて、どちらがきれいに出るかを見ます。フィルタを切って同じことを繰り返し、差がフィルタから来ていてキャッシュされたページではないと確認します。
組み合わせがうまくいかないなら、両方を切り替えるのではなく片方を外します。切り替えていると、どちらのアプリが場所を得たのか推測することになり、実際の制約と向き合う代わりに隠してしまいます。
いくつかの変更はここには含まれません。端末の root 化、他のアプリの改変、新しく信頼した証明書による HTTPS の傍受です。これらは独自のリスクを伴う別の判断であり、通常のブラウザのフィルタにはどれも要りません。手順がそこから始まるなら、それは別の問題を解いています。