メインコンテンツへスキップする

iCloud プライベートリレーと AdGuard

info

この記事は、システムレベルでお使いのデバイスを保護する多機能な広告ブロッカー、「AdGuard for Mac」についてです。 実際にどのように動作するか確認するには、AdGuard アプリをダウンロードしてください

問題の簡単な説明

デフォルトでは、AdGuard は iCloud プライベートリレーを無効にしてしまう「デフォルトルート」というものを使用しています。

現在、AdGuard と iCloud プライベートリレーは同時に動作できません。 iCloudプライベートリレーは、AdGuardがネットワーク接続をフィルタリングする前にトラフィックを暗号化してしまうため、AdGuardは広告をブロックできなくなります。 iCloud プライベートリレーがアクティブになると、あらゆるフィルタリング(ローカルフィルタリングを含む)が不可能になります。 したがって、AdGuard はトラフィックをフィルタリングしたり、Safari でDNS フィルタリングを実行したりすることはできません。 しかし、AdGuard は依然として他のブラウザのトラフィックをフィルタリングしています。 iCloud プライベート リレーを引き続き使用するには、 AdGuard for Safari のインストールを検討してください。

Mac で VPN アプリを使用する場合も同様です。iCloud プライベートリレーと VPN サービスのどちらを使用するかを選択する必要があります。

より詳しい説明

AdGuard for Macvは、ネットワーク拡張APIに基づくmacOS内蔵のソケットフィルタリングを使用するようになりました。 この新しくてかなりバグの多いメカニズムは、古き良きカーネル拡張に取って代わりました。 この1年半の間に、私たちはアップルに新しいフィルタリング方法に関するバグを20件以上(!)報告してきました。

ネットワーク拡張APIには、ルートライクなエントリーのリストを持つVPNライクなコンフィギュレーションがあります。 Big Surでは、AdGuardは「split-tunnel」ルールを開発して、「デフォルトルート」ルールを作成するのを避けていました。なぜなら、これはBig Surの初期リリースで問題を引き起こすからです。

Monterey では、iCloud プライベートリレーが登場しました。 「メール」アプリのプライバシー機能でもプライベートリレー サーバーが使用されます。

その結果、AdGuard は iCloud プライベートリレーやメールアプリのプライバシー機能と連携できなくなっています。

  1. iCloud プライベートリレーは、ライブラリレベル(AdGuard が動作するソケットレベルに到達する前)で接続に適用されます。
  2. iCloud プライベートリレーは QUIC を使用しますが、HTTP/3 フィルタリングはまだ利用できないため、AdGuard はフィルタリング対象アプリでQUICをフィルタリングできません。
  3. その結果、AdGuard は iCloud プライベートリレー トラフィックを含む QUIC をブロックしてしまいます。そうしないと、広告をブロックすることは不可能になるからです。
  4. iCloud プライベートリレーを使用し、AdGuard を「split-tunnel」モードに切り替えると、Safari で Web サイトを開くことができなくなります。
  5. Monterey でこの問題を回避するには、「デフォルトルート」ルールを適用しております。 プライベートリレーはそのルールを検出すると、自動的に無効になります。 つまり、AdGuard は Monterey 上でシームレスに動作しますが、その場合、iCloud プライベート リレーは無効になります。

network.extension.monterey.force.split.tunnel は「Big Sur」並みの動作を復元しますが、上記の (3) と (4) を理由 Web サイトへのアクセスが切断される可能性があります。 私たちはこの問題の解決策を探し続けています。 考えられるオプションのひとつは、HTTP/3フィルタリングの実装です。

おすすめの解決策

AdGuard を、 AdGuard VPN のような従来の VPN サービスと併用することをお勧めします。

代替の解決策

「デフォルト ルート」を無効にすることで、AdGuard が「デフォルト ルート」を使用しないようにすることができます。 これは、アドバンスド設定 →高度な設定→ network.extension.monterey.force.split.tunnel から実行できます。

高度な設定でデフォルトルートを無効にする *border

この場合、上記のような問題が発生してしまうことにご注意ください。