MacでAndroidの広告をブロックする方法

※本ページにはプロモーション(広告)が含まれています。
MacでAndroidの広告をブロックする方法

広告だらけのAndroidを使っていて操作中に頻繁に邪魔されると本当にイライラしますよね。

この記事を読むと、Macを使って家庭内ネットワーク経由でAndroid端末の広告を効率よくブロックする方法が身につきます。実際に動かした手順と現場で役立つトラブル対処を具体的に示すので迷わず進められます。

項目内容
具体的手順実際に試したコマンドと設定内容をステップで丁寧に紹介します。
トラブル対処接続や証明書で詰まったときの原因と手早い直し方を現場目線で解説します。
応用テクニックPiHoleやルーティングを使ったネットワーク全体の広告軽減テクを共有します。

手順は順を追えば短時間で終わるものが多いので気軽に取り組めますし、設定後は広告が減って端末の操作感がぐっと良くなります。

Android博士

最初は慣れないかもしれませんが一歩ずつやれば確実にできるようになりますので落ち着いて楽しみながら進めていきましょう。

目次

MacでAndroidをネットワーク経由で広告ブロックする方法

MacでAndroidをネットワーク経由で広告ブロックする方法

MacでAdGuardHomeを動かして、Macをネットワーク上のDNSサーバとして使うとAndroid端末の広告を一括で減らせます。設定は思ったより単純で、Mac側にフィルタを集約することで端末ごとに別々のアプリをいじる手間が省けます。

接続方法はいくつか選べますが、どれも試してみる価値があります。Macの共有機能でWiFiホットスポットを作る方法と、USBテザリングで接続する方法、それからルーター側でDNSをMacに向ける方法があります。

  • MacでAdGuardHomeを起動してDNS要求を受けるようにする。
  • AndroidをMacの共有WiFiかUSBテザリングで接続してDNSをMacに向ける。
  • アプリの除外やHTTPS経由のDNS設定に注意して調整する。
Android博士

最初はドキドキするかもしれませんが順を追えば必ずできます。設定でつまずいても落ち着いて確認すればすぐ直るので気楽に挑戦してください。

MacのAdGuardHomeでAndroidの広告を一括ブロックするパターン

MacのAdGuardHomeでAndroidの広告を一括ブロックするパターン

一般的なパターンはMacをDNS解決役にしてAndroidはそのDNSを使う形です。Macはネイティブで動かすかDockerでコンテナ化しても構いません。

接続はmacOSのインターネット共有でWiFiを配る方法とUSBテザリングで直接つなぐ方法が現実的です。注意点として一部アプリはDoHやDoTで独自にDNS問い合わせを行うため、その場合はアプリ側で設定を変えるか別の対策が必要になります。

DockerでAdGuardHomeを起動してMacの共有でAndroidを接続する具体手順

手順
1.Dockerと設定ファイルを準備

公式のAdGuardHomeイメージを取得して設定ファイルを用意します。ブロックリストやフィルタの初期設定を入れておくと後が楽になります。

手順
2.Dockerで起動

コンテナを起動してUDP/TCPの53ポートと管理用のポートを公開します。MacのIPでDNS応答できるようにポートマッピングを確認してください。

手順
3.Macでネットワーク共有を有効化

システム環境設定の共有からインターネット共有を有効にしてWiFiを配るかUSBテザリングを使ってAndroidを接続します。

手順
4.AndroidのDNSをMacに向けて動作確認

AndroidのWiFi設定で自動取得を使うか手動でDNSにMacのIPを指定して、AdGuardHomeのダッシュボードで問い合わせが来ているか確認します。

MacからADBでAndroidのPrivate DNSを設定して広告をブロックする方法

MacからADBでAndroidのPrivate DNSを設定して広告をブロックする方法

MacからADBを使ってAndroidのPrivate DNSを切り替えれば、端末単位で広告を抑えられます。手元のMacとAndroidをUSB接続してADBを操作するだけなので、ルーターやネットワーク全体に触る必要はありません。

設定は短時間で終わります。信頼できる広告ブロック用のホスト名を指定すれば、アプリやブラウザで表示される広告をかなり減らせます。

ただしAndroidのバージョンや端末によって挙動が異なる場合があるので、設定後に動作確認を忘れないでください。問題が出たらautomaticに戻す手順を用意しておくと安心です。

  • パブリックな広告ブロックDNSをホスト名で指定する方法。手軽で素早く効果が出やすい。
  • 自宅のPi-holeをホスト名に指定する方法。細かく制御できるので好みに応じて設定可能。
  • 問題時に備えてautomaticに戻す方法を覚えておくと安全です。

ADBでPrivate DNSを切り替える具体手順

ADBでPrivate DNSを切り替える具体手順

準備としてMacにADBがインストールされていて、Android側は開発者オプションでUSBデバッグが有効になっている必要があります。接続時は端末の許可ダイアログで信頼を与えてから進めてください。

切り替えはsettingsコマンドを使います。private_dns_modeにhostnameを設定し、private_dns_specifierに広告ブロック用のDNSホスト名を入れたら反映を確認してください。

MacのターミナルでADB接続してPrivate DNSを設定するコマンドと確認方法

手順
ADB接続を確認する

Macでadb devicesを実行し端末がリストにあることを確認してください。端末側で接続許可が出ていると次がスムーズです。

手順
Private DNSをホスト名で設定する

adb shell settings put global private_dns_mode hostnameを実行してください。次にadb shell settings put global private_dns_specifier dns.adguard.comを実行してホスト名を設定します。

手順
設定を確認する

adb shell settings get global private_dns_modeとadb shell settings get global private_dns_specifierで値を取得して確認してください。端末の設定画面でPrivate DNSが反映されているかも合わせて見てください。

MacでAndroidの広告トラフィックを解析して個別ドメインをブロックする方法

MacでAndroidの広告トラフィックを解析して個別ドメインをブロックする方法

Android端末の通信をMacで覗いて、どのドメインが広告を配信しているかを見つけて個別にブロックする流れをやさしく説明します。最初は慣れないかもしれませんが、手順に沿えば意外と簡単に広告が減ります。

ここでは実務で使えるtcpdumpを使った解析から、抽出したドメインをhostsやmacのPF、家庭用ルーターに登録して遮断するまでの一連の流れを紹介します。細かいコツも交えて進めます。

  • tcpdumpでパケットをキャプチャしてDNSやTLSのSNIから広告ドメインを抽出する方法。
  • 端末をプロキシやVPN経由にしてホスト名やヘッダを収集する方法。
  • 抽出したドメインをhostsやmacのPF、ルーターで個別にブロックする方法。

tcpdumpで広告ドメインを抽出してフィルタに登録するパターン

tcpdumpで広告ドメインを抽出してフィルタに登録するパターン

tcpdumpパターンは端末の通信をpcapとして捕まえ、DNS問い合わせやTLSのSNIを中心に広告ドメインを拾うやり方です。DNSに広告サーバー名が出ることが多く、まずはそこを洗い出すと効率が良いです。

HTTPSの内部は暗号化されていますから、SNIやDNSが手掛かりになります。抽出後は重複やサブドメインを整理してからhostsやPF用のフィルタへ登録すると運用が楽になります。

adbでtcpdumpを動かしてキャプチャをMacに取り込み、ドメインを抽出する手順

手順
端末でtcpdumpを起動してストリーム送信

adb exec-outやadb shellを使い、tcpdumpを -w – などで標準出力へ流してMacに送ります。root権限が必要な場合はsuで実行します。

手順
Macでpcapを保存

受け取ったバイナリをそのままファイルとして保存し、tsharkやWiresharkで開ける状態にします。ファイル名は日時で分かりやすく付けます。

手順
DNSとSNIからドメインを抽出

tsharkやgrepでDNSクエリを抽出し、TLSのClientHelloからSNIを取り出して一覧化します。重複を削ってからブロックリストに登録します。

実体験に基づくトラブルシューティングとログ確認の方法(Mac⇄Android)

実体験に基づくトラブルシューティングとログ確認の方法(Mac⇄Android)

Macを通してAndroidの広告をネットワークでブロックしていると、たまに期待どおりに消えないことがあります。アプリが独自の広告経路を使っていたり、Android側でPrivateDNSが有効だとMacのフィルタに届かないことがよくあります。

まずはAndroidが本当にMacのDNSを使っているかを確認してください。WiFiやテザリングの接続を一度リセットすると、設定反映やキャッシュの影響を手早く確認できます。

原因追跡にはログとパケットキャプチャがとても役立ちます。Macでtcpdumpやpfのログを確認してDNSクエリが届いているかを見つけ、見つかった未遮断ドメインをフィルタに追加すると効果が出やすいです。

Android博士

緊張しなくて大丈夫です。ログの読み方を少し覚えるだけで、見える世界がぐっと変わりますから、落ち着いて一つずつ確認していきましょう。

広告が残るときとMac側フィルタが効かないときの対処法

広告が残るときとMac側フィルタが効かないときの対処法

広告が残るときは、まずAndroidのPrivateDNSやVPNが有効になっていないかを確認してください。これらが有効だとDNSクエリが暗号化されてMacのフィルタをすり抜けます。

アプリのキャッシュやアプリ内で使う独自のホスト指定も要チェックです。必要ならアプリのキャッシュ削除や再起動を試し、IPv6経由で回避されていないかも確認してください。

DNSキャッシュのクリアやログ確認で原因を特定する手順

手順
DNSキャッシュをクリア

MacではターミナルからmDNSResponderを再起動してDNSキャッシュをクリアしてください。AndroidはWiFiを一度切って入れ直すか機内モードの切り替えでDNSをリフレッシュしてください。

手順
DNSクエリの到達確認

Macでtcpdumpなどを使いDNSポートのパケットを監視して、AndroidからのクエリがMacに届いているかを確認してください。DoTやDoHの利用有無も合わせてチェックしてください。

手順
ログから未遮断ドメインを特定

Piholeやdnsmasqのログを確認し、見つかった未遮断ドメインをブラックリストに追加してから再度動作確認してください。

応用:MacでAndroidの特定アプリだけ広告を除外する方法

応用:MacでAndroidの特定アプリだけ広告を除外する方法

ネットワーク経由でAndroidの特定アプリだけ広告を除外したいときは、やり方がいくつかあります。端末全体をオンにして広告を消す方法は簡単ですが、特定アプリだけ除外するには工夫が必要です。ここでは手元のMacを使って実現する選択肢をわかりやすく紹介します。

実用的にはドメイン単位で除外するか、プロキシ経由で回避するかのどちらかになります。UIDベースの制御はAndroid側のrootや特別なVPNが必要で、Macだけで完結する方法ではありません。まずはドメインの特定とプロキシかDNSの設定で試すのがおすすめです。

  • PACファイルを使って特定ドメインだけプロキシを経由しないようにする方法。MacでプロキシとPACを用意しAndroidのWi-Fiで指定します。
  • AdGuardHomeやPi-holeでアプリが使う広告ドメインをホワイトリスト化する方法。DNSレベルで除外すればTLSも壊れにくいです。
  • AndroidをrootしてUIDベースのフィルタを作る方法。高い自由度が得られますが端末改造が必要で上級者向けです。
Android博士

最初は怖く感じるかもしれませんが。小さな一歩で効果が見えるので楽しく試してみてくださいね。失敗しても元に戻せる設定から進めると安心です。

アプリごとの例外運用と確認手順

アプリごとの例外運用と確認手順

例外設定をちゃんと動かすにはログを見て確認するのがいちばん確実です。Mac上でmitmproxyやSquidを動かしてプロキシログを監視すると、どのドメインが経由されているかがすぐに分かります。

DNSでの除外ならAdGuardHomeのクエリログを見てホワイトリストが効いているか確かめてください。Twitterのようなアプリは複数のドメインを使うので、api.twitter.comやpbs.twimg.comなどを確認してから除外対象に加えると安定します。

UIDやフィルタ設定でTwitter(280文字投稿を含む)など特定アプリを例外にするやり方

手順
対象ドメインの特定

mitmproxyやadb経由のtcpdumpでアプリがアクセスするドメインを洗い出します。ツイート投稿ではapi.twitter.comやその他の画像配信ドメインを確認してください。

手順
除外ルールの作成

PACファイルで該当ドメインをプロキシ回避するか、AdGuardHomeでホワイトリストに追加します。Mac上で簡易Webサーバーを立ててPACを配布すると楽です。

手順
動作確認

アプリを再起動して280文字のツイートを含めて動作を確認します。Macのログで該当ドメインが除外されているか最終チェックしてください。

よくある質問

よくある質問
Macを使ってAndroidの広告をネットワーク経由でブロックできますか

できます。Mac上でPi-holeやAdGuard Homeを動かしてDNSで広告ドメインを返さないようにしたり、MacをDNSサーバーにしてAndroid端末のDNSを指定すれば、ネットワーク経由で広告を減らせます。全部の広告が消えるわけではない点は押さえておいてください。

設定をしてもうまく広告が消えない原因は何ですか

主な原因は端末のDNSキャッシュやモバイルデータが優先されていることです。Wi-Fi接続先のDNSが正しく向いているか確認してキャッシュをクリアし、必要なら端末を再起動してください。アプリ側が暗号化経路や独自のドメインを使っていると見落としが出ます。

Pi-hole以外に手軽な選択肢はありますか

あります。AdGuard HomeはGUIがわかりやすくて細かいルール設定がしやすいです。もうひとつの方法としてMac上でVPNサーバーを立てて通信を中継しつつフィルタをかける手もあります。

広告ブロックでアプリが動かなくなる心配はありますか

あります。広告収益に依存するアプリは表示が止まると一部機能が制限される場合があります。困ったときは該当アプリのドメインをホワイトリストに追加して対応してください。

USBテザリングとWi-Fiテザリングで違いはありますか

USBテザリングは接続が直接なのでMacのDNSやフィルタを使わせやすいです。Wi-Fiテザリングは機種やAndroidの設定によってDNSの適用具合が異なるので、動作が不安定な場合はUSB接続で試すと原因が切り分けやすいです。

まとめ

まとめ

この記事ではMacを使ってAndroid端末の広告をネットワーク経由で減らす方法をやさしくまとめました。主に選べる手はDNSで広告ドメインを差し止める方法と、Mac上で中継プロキシを立てて不要なリクエストを取り除く方法の二つです。どちらも家庭の最新OSと端末で試しやすい方法です。

実際の流れはMacでAdGuardHomeやPi-holeを動かし、AndroidのWiFi設定かルーターのDHCPでDNSをMacに向けるだけです。Mac側でサービスを立てる際はポート競合やmacOSのリゾルバ設定に気をつけるとトラブルが減ります。HTTPSの中身を覗く手法は手間が増えるため、まずはDNSブロックで様子を見るのがおすすめです。

運用のコツは定期的なブロックリスト更新と重要サービスのホワイトリスト登録です。Androidは静的IPかルーターでリース固定にすると安定しますし、設定変更後は端末のDNSキャッシュをクリアして動作確認すると変化がわかりやすくなります。設定は少しずつ調整しつつバックアップを取ると安心です。

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