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