目次
アプリでシステムのデフォルトを選んだのにmacOSのネットワーク設定に見慣れないアドレスがある場合、どの設定が変わっているかを確認します。接続中のネットワークサービスのDNS一覧とコアの名前解決設定は別です。元の値を残し、起動・終了時の変化を比較して、確実に追加されたものだけを削除してください。
システム DNS に 223.5.5.5 が表示されるのはなぜ?
Clash Party v2.0.3のmacOSユーザー報告と比較する場合、画面でシステムのデフォルトDNSを選んだ後、ネットワークサービスに223.5.5.5が現れるか記録してください。issue #2176の報告者はそのアドレスを手動で削除しても、再起動後に戻ったとしています。すべての端末で再現するとは判断しないでください。
223.5.5.5 は以前の設定から入っている場合もあり、このアドレスだけでアプリが書いたと断定できません。この macOS の復元手順は、Windows、ルーターの DNS、ブラウザーの DoH(暗号化したドメイン問い合わせ)、通常のノード障害には当てはまりません。
- システム DNS を書き換える条件
- v2.0.3 のソースでは、macOS が接続中で、元のアドレスを記録する originDNS が空のときだけ、setPublicDNS() が現在のネットワークサービスの DNS を読み、223.5.5.5 の設定を試みます。
- Helper とシステムコマンドの違い
- timeout を設定しない書き込みは、まず本機のバックグラウンドサービス Helper に依頼し、失敗した場合だけ管理者の許可が必要なシステムコマンド networksetup を使います。timeout 付きの復元呼び出しはこの代替手段を使わず、Helper が毎回の起動で無条件に DNS を書き換えるわけでもありません。
- 元の DNS を復元する条件
- 同じファイルのrecoverDNS()は、originDNSが残っている場合に元の値への復元を試みます。画面の「システムのデフォルトDNSを使用」と、アプリが一時的にシステムDNSを書き換える処理は別のものです。コアのDNS設定を変えただけでは、macOSのネットワークサービスが復元されたことを確認できません。
Wi-Fi と Ethernet のどちらの DNS 一覧が変わった?
macOS の「システム設定 > ネットワーク」で実際に接続中の Wi-Fi または Ethernet サービスを選び、「詳細 > DNS」を開きます。Apple の説明では、ここにそのネットワークサービスの DNS サーバーと検索ドメインが表示されます。Clash Party のコア内 DNS 画面だけで判断しないでください。
まず DNS 一覧、ネットワークサービス名、会社や家庭で設定した独自 DNS の有無、Clash Party のバージョン、TUN と Helper の状態をスクリーンショットまたはメモで残します。もともと 223.5.5.5 を手動設定している場合や、組織が管理する端末では、このアドレスを異常と決めつけて削除しないでください。
同じネットワークで、起動前、起動後、完全終了後の DNS 一覧を比較し、その間はサブスクリプション、ルール、システムプロキシを同時に変えないでください。現在のサービスにそのアドレスが追加された場合だけ続けます。Wi-Fi と Ethernet では DNS が異なることがあるため、ネットワーク変更後は実際の接続サービスを確認し直します。
システムのネットワーク設定で、意図せず追加されたアドレスを削除する
まずClash PartyでTUNなどHelperを必要とするネットワーク接続の取り込み機能を無効にし、アプリを完全に終了します。TUNを無効にしても同時に動く機能が減るだけで、システムDNSを書き換えるコードが実行されなくなるとは限りません。終了後もmacOSのネットワーク設定を確認してください。
現在のネットワークサービスに意図せず追加された項目が 223.5.5.5 だけで、元の設定を保存済みなら、Apple が案内する DNS 設定画面でその項目だけを選択して削除できます。会社の DNS、検索ドメイン、ほかのネットワークサービスの設定まで消さないでください。その後、現在のネットワークを切断して再接続し、そのサービスの DNS が想定した値に戻ったか確認します。
元から手動 DNS だった場合は記録したサーバーを戻し、ネットワークから自動取得していた場合は意図せず追加された手動項目だけを削除します。Apple の networksetup の説明にも指定サービスの手動 DNS を消す方法がありますが、サービス名や権限を取り違えるリスクがあるため、通常は画面操作を優先してください。
構成プロファイルや組織による管理が表示される場合は、手動変更をやめて管理者に連絡してください。DNS の異常を直すために Clash Party のデータディレクトリ、Helper のファイル、システムの plist を削除すると、設定を失ったり障害を広げたりするおそれがあります。これは本記事の復旧手順には含めません。
再接続、再起動、アプリの再実行後に DNS を確認する
まずシステム設定でそのネットワークサービスの DNS が記録した元の値に戻り、実際の HTTPS 通信ができることを確認します。続いて Mac を再起動するか同じネットワークに再接続して再確認してください。Clash Party のコア内に「システムのデフォルト DNS」と表示されるだけでは、システム設定が復元されたとは言えません。
Clash Party を引き続き使う必要がある場合は、TUN を切ったままアプリを起動し、同じサービスの DNS が再び変わるか観察します。起動時または Helper の動作後にだけ再発するなら、そのモードの使用を止めて正確な時系列を記録してください。繰り返し DNS を書き戻して再発を見えなくしないでください。
DNS が変わらなくてもページを開けない場合は、システムプロキシ、現在の Profile、ノード、ブラウザーの DoH を確認します。システム設定の DNS アドレスと、プロキシ設定の DNS 解析ルールは別の設定です。単一の検査サイトのアドレスだけで復旧を判断しないでください。
Clash Party 終了後も DNS が変わる場合、どのプログラムが変更している?
Clash Party を完全に終了しても DNS が書き換わるなら、原因をそのまま #2176 に帰すことはできません。ほかの VPN、DNS フィルター、端末管理の設定、旧クライアントが動いていないか調べ、同じネットワークサービスで値が変わる時刻を観察します。比較できなくなるため、複数のツールを同時にアンインストールしないでください。
Clash Party の macOS 向け公式トラブルシューティングには、Helper のサービス名 party.mihomo.helper とサービスログの場所が示されています。現在のインストールに属するサービスだと確認できた場合に限り、管理者にプロジェクト文書に沿って停止してもらい、DNS の変化が止まるか観察してください。plist、実行ファイル、データディレクトリ全体を直接削除しないでください。
上流プロジェクトに報告する場合は、macOS のバージョン、Clash Party の完全なバージョン番号、現在のネットワークサービス、起動前後の DNS 一覧、TUN の状態、最初の関連ログを添えてください。スクリーンショットやログを公開する前に、サブスクリプション URL、ノードのパスワード、端末識別子、個人のネットワーク情報を隠してください。
223.5.5.5 を削除して接続が悪化したら、元の DNS をどう復元する?
223.5.5.5 を削除して通信状態が悪くなったら、まずネットワークサービスの DNS、検索ドメイン、プロキシの状態を作業前の記録どおりに戻し、ネットワークへ再接続します。元の設定が会社や学校のものなら管理者から指定された値に戻してください。パブリック DNS のアドレスをすべてのネットワークに共通する解決策と考えないでください。
Clash Party の TUN を切ったままにし、DNS を書き換える疑いのあるモードは当面使わないでください。一時的にプロキシが必要な場合も、システム DNS と通常の通信の復元を確認してから、その Helper に依存しない検証済みの方法を検討します。機能を一つ有効にするたびにシステム DNS を再確認してください。
旧版では問題がなさそうに見えるという理由だけで、確認していないインストーラーへ戻さないでください。また、公式の macOS インストール障害文書にあるデータディレクトリ削除手順をそのまま適用しないでください。現時点で #2176 についてメンテナーによる修正済みとの結論はありません。今後はプロジェクトの issue、Release、コミットを根拠に再評価してください。
