macOSのChromeでローカルネットワーク問題
macOS 15.x Sequoiaにしてからの割と重大なバグなのに未だに解消されていない問題として、「Chromeが定期的にローカルネットワーク上のデバイスを見つける」の許可を求めてくる問題があります。
ここで許可するを毎回クリックすればそれで問題がないと言えば問題ないのですが、ここで「許可しなかった場合」には割と致命的な問題が発生します。GoogleはApple側のバグとして対処はしていないようです。
この件についてまとめてみました。
目次
問題点について
ローカルネットワークに増殖する
macOSのシステム設定→プライバシーとセキュリティ→ローカルネットワークに、許可をするたびにChromeの項目が増殖し、そしてすべてのトグルが個別ではなく連動してるという状況になっています。最近のAppleはちょっと技術力に疑問符がついてきておりこのようなオカシナバグがOSのアップデートのたびに発生しています。
このままでも害悪はないのですが、問題は次項の許可しなかった場合。この項目はこのパネル上で削除も出来なければ再度許可することも出来ません。PingもSSHも通るのにChromeだけが画面のキャストも出来ず、ERR_ADDRESS_UNREACHABLEとなってローカルエリアで繋がらないので非常に厄介なトラブルです。
※ローカルエリアに繋がらないので、例えばNASのWeb管理画面等にも繋がらなくなります。
「“Google Chrome”がローカルネットワーク上のデバイスを見つけることを許可しますか? 」が定期的に表示される問題、ローカルネットワークの許可リストの中にGoogle Chromeのアイコンがたくさんあることに気がついた。しかもトグルが連動している模様。 pic.twitter.com/n9g4dL0frK
— ソフトアンテナ (@softantenna) December 19, 2024
図:増殖したChromeの設定
図:ここで許可しないをクリックしてはいけない
キャストができなくなる
致命的なのが一度でも許可しないとすると、ローカルネットワークに過去の設定が増殖していて、これらをオン・オフしてもFire TV StickやChromecastに対してのキャストが出来なくなります。
AppleのコミュニティやMacRumorsでも議論されていますが、未だに決定的な解決策は出ていません。ターミナルから「com.apple.networkextension.plist」を削除するみたいなコメントもありますが、Operation not Permittedで削除は出来ません。Appleの開発者フォーラムでも議論はされていますが、新たなバグが発見されただけで何も解決していません。
キャストできなくなるので、Fire TV StickやChromecastやAirServer, AirReceiverなどがすべて検出出来なくなり、macOS側から画面のキャストで飛ばすことが出来なくなります。プレゼンなどでもこの画面のキャストを自分はプロジェクターにFire TV Stickなどを繋げて飛ばしていたりするので困ります。
※macOS用のEdgeでも同様の問題が発生するようです(同じChromiumだからなのだろうか)
暫定対処策
Chromeを再インストール等
2025年3月時点、macOS 15.3に於いてもこの問題は解決しておらず、ローカルネットワークのパネルにはChromeの項目が増殖しつづけて削除もできず、また拒否をすれば画面のキャストができなくなり詰みます。
色々検証してみましたが、自分の場合以下の方法でとりあえずキャスト出来る状態に戻せました。
- ローカルネットワークで一度Chromeの許可をオフにする
- もう一度オンにする
- マシンを再起動する
- Chromeにアップデートが来ていたのでアップデートを実行する
- Chromeを再起動する
これで以前のようにキャストでChromecastやFire TV Stickが出てくるようになりました。たまたまアップデートが来ていたのでこの手法で出来ましたが来ていない場合は、公式サイトの方法やAppCleanerを使ってアンインストール後に、再度Chromeを再インストールすると同様に出来るのではないかと思います。
アプデで増えるということはアプデでまたクリアされる。つまり今回の問題はChrome側がインストールやアプデする毎に、macOSから新アプリと看做されてる事が原因。しかし、Parallelsなどはアプデしても増殖もしないし問題も起きていません。よって、これはGoogle側のChromeのインストール方法がオカシイのも原因の1つだと思われます。
※セーフモードでmacOSを起動して再度再起動というパターンも提示されていましたが効果ないのではないかと思います。
図:キャスト出来るようになった・・・
図:セーフモードでの作業は意味がなかった・・・
Firefoxとfx_castを利用する
Firefoxにはデフォルトでタブをキャストするような機能がありませんが、Githubで公開されてるfx_castおよび各OS用のブリッジをインストールすることで、Firefoxからも画面のキャストが出来るようになるようです。
ただ、詳細が不明なのと殆どウェブ上で情報も見かけないため自己責任となります。
実際に使ってみましたが、fx_castとBridgeをインストール後にマシンを再起動。プライベートウィンドウと保護されたウェブサイトでの実行をオンにして、Enable backup daemon connection onにチェック。fx_castにローカルネットワーク探索を許可してYoutubeを開いてWhitelistに追加してようやくYoutubeをキャスト出来ました。
かなり手間がある上に結局、FirefoxのタブだけキャストなのでChromeでのキャストと違い全画面キャストといったことは出来ません。ちょっと利便性が低いなぁ。他のアプリがChromecast側で動いてるとキャストが出来ません。
図:fx_castでFirefoxからもキャストが可能
設定をクリアする方法
前述までの内容は暫定対応策であってローカルネットワークの内容をクリアする方法ではありません。よって残り続けます。こちらのサイトにある対策法を実施することで、このローカルネットワークの中身を初期化することが可能です。Chromeのディレクトリ関係の削除等は不用なのでブックマークなどもログインしなおせばそのまま復活します。
- 事前にChromeの右上のアイコンからアカウントログインしておいて、念の為ブックマーク等のデータをすべて同期しておく。
- 同期が完了したらChromeを閉じる
- Chromeをアンインストールする
- macOSをシャットダウンする
- 電源長押しで再起動する(リカバリーモードになる)
- オプションを選択して続行します
- アカウントにログインする
- メニューからユーティリティ⇒ターミナルを開く
- コマンドで以下の内容を入力して実行する(SIPの無効化の実施)
csrutil disable reboot
- 再起動したら普通にログインする
- 以下のディレクトリを開く
/Library/Preferences
- この中にある以下の2つのファイルをゴミ箱に捨てて削除する
com.apple.networkextension.plist com.apple.networkextension.uuidcache.plist
- 再起動する
- システム環境設定を開いて、ローカルネットワークの中身が空になってることを確認する
- ここでもう一回シャットダウンする
- 電源長押しで再起動する(リカバリーモードになる)
- メニューからユーティリティ⇒ターミナルを開く
- コマンドで以下の内容を入力して実行する(SIPの有効化の実施)
csrutil enable reboot
- 再起動したら普通にログインする
- Chromeをダウンロードして再インストールする
- Chromeを起動して、自身のアカウントでログインすると、全て復活します。
SIPはセキュリティに直結する内容なので、必ず最後に再有効化しましょう。SIPをオフにしないと設定ファイルの削除が拒否されますので要注意です。
これでローカルネットワークの中身がスッキリ綺麗になり、キャストも出来るようになります。
図:リカバリモードでターミナルを開く
図:リカバリモード上のターミナル
図:削除すべきファイル
図:Cleanになって気分すっきり