1. 症状を分ける:ChatGPTだけか、プロキシ全体か

Clash経由でChatGPTが開かない場合、最初に設定を大きく変更するのではなく、どの段階で通信が止まっているかを切り分けます。ブラウザーでページ自体が表示されないのか、ログイン後に画面が読み込まれないのか、会話の送信や画像の表示だけがタイムアウトするのかで、確認すべき範囲が異なります。まず別のプロキシ対象サイトも開き、同じノードを使うほかのアプリでも接続できるか確認してください。

ほかのサイトも開かない場合は、ノード、プロキシグループ、コアの起動状態、ローカルの通信取り込みを優先して確認します。ほかのサイトは開くのにChatGPTだけ失敗する場合は、ルールの振り分け、関連ドメインの不足、DNSキャッシュ、ブラウザー独自のDNS設定などが候補です。会話の送信やファイル表示だけが止まるなら、ページ本体とは別のAPIやコンテンツ配信先への接続が失敗している可能性があります。

見えている症状優先して確認する項目次の切り分け
複数のサイトが開かないノードの状態、プロキシグループ、コアのログ同じノードで別サイトを確認し、必要なら別ノードと比較
ChatGPTのページだけ開かないモード、ドメインルール、DNS接続履歴で対象通信のポリシーと接続結果を確認
ページは開くが会話が送れないAPI通信、ブラウザー拡張機能、ノードの安定性プライベートウィンドウや別ブラウザーで比較
ブラウザーは直るが別アプリは失敗アプリがシステムプロキシを使うか必要性を確認してからTUNによる取り込みを試す

2. モードとルール:ChatGPTの通信がどの経路へ進むか

Clashの「ルール」「グローバル」「DIRECT」は、コアに取り込まれた通信の出力先を決めます。システムプロキシやTUNは、通信をコアへ渡す入口です。ルールモードでChatGPTの通信がDIRECTに一致していれば、プロキシノードを選んでいてもその通信は直接接続になります。一方、ブラウザーがプロキシ設定に従っていなければ、グローバルモードに変更してもコアに届いていない通信の経路は変わりません。

まず普段のモードを確認し、クライアントの接続履歴またはログで、ChatGPTを開いた時刻の接続先ドメイン、適用ルール、選択されたポリシーを調べます。画面上の項目名はClash Verge、Clash Verge Rev、Mihomo対応クライアントなどで異なりますが、履歴から該当接続を選び、実際にどのルールとグループへ進んだかを見るのが要点です。ポリシー名が見つからない、あるいは想定と違う場合は、ルールの順序と参照先のグループ名を確認してください。

一時的な比較にはグローバルモードが使えます。GLOBALグループでプロキシノードを選び、新しいブラウザー接続でChatGPTを試します。グローバルで直り、ルールモードで失敗するなら、ルールまたはルールの参照先が有力な原因です。どちらでも失敗するなら、ノード、DNS、通信の取り込みを調べます。テスト後は必ず元のモードに戻してください。GLOBALグループ自体でDIRECTが選択されていると、グローバルに切り替えてもプロキシ接続のテストになりません。

ルールを追加する場合は、設定で実際に使われているプロキシグループ名を指定します。たとえば、次のルールは既存ルールの上部に加える形式です。OpenAI-Proxyは説明用の名前なので、そのまま貼り付けず、設定内に存在するポリシー名に置き換えてください。

rules:
  - DOMAIN-SUFFIX,chatgpt.com,OpenAI-Proxy
  - DOMAIN-SUFFIX,openai.com,OpenAI-Proxy
  - DOMAIN-SUFFIX,oaistatic.com,OpenAI-Proxy
  - DOMAIN-SUFFIX,oaiusercontent.com,OpenAI-Proxy
  # 既存のルールを続ける
  - MATCH,既存のフォールバック

この例は追加候補を示すもので、すべての環境に必要なドメインを網羅したリストではありません。ChatGPTの機能や配信先は変わることがあり、既存のルールセットが同じドメインを適切に処理している場合もあります。ルールは上から評価されるため、より広いルールやMATCHより前に置きます。サブスクリプションを直接編集すると更新時に変更が消えることがあるので、クライアントのオーバーライドやマージ機能を使い、変更前の設定も保存してください。

3. 手順を追って確認:モード、ノード、ログを一つずつ比較

以下は、変更の影響を小さく保ちながら原因を絞る手順です。一度にDNS、ルール、TUNをすべて変更すると、直った場合も原因が分からず、別の通信に問題が出た時に戻しにくくなります。クライアントの名前や画面配置はバージョンによって違うため、現在の設定値と接続履歴を基準に進めてください。

  1. 元の状態を記録する:クライアント名とバージョン、コア名とバージョン、選択中の設定、動作モード、プロキシグループの選択を控えます。サブスクリプションURLや認証情報は共有しないでください。
  2. コアとノードを確認する:コアが起動していること、ノードが利用可能であることを確かめます。グループが自動選択型の場合でも、実際に選ばれたノードを画面や履歴で確認します。クライアントが起動しているだけでは、外部接続が成功しているとは限りません。
  3. ルールモードで新しい接続を試す:ChatGPTをいったん閉じ、ブラウザーで新しいページを開きます。履歴に該当通信が現れるか、適用ルールとポリシーが想定どおりかを確認します。履歴に通信がない場合は、ブラウザーがシステムプロキシを利用しているか、またはTUNで取り込まれているかを調べます。
  4. 一時的にグローバルで比較する:GLOBALグループでノードを選択してから再試行します。グローバルだけ成功するなら、ルールの漏れや順序、グループ参照を見直します。どちらも失敗するなら、同じノードで別サイトを試して、ChatGPT固有の問題かノード全体の問題かを分けます。
  5. 必要なら別ノードを一つだけ試す:同じ設定とモードのままノードだけを変更します。別ノードで直るなら、元のノードの応答遅延、接続先との相性、混雑などが考えられます。短時間に多数のノードを自動テストするより、安定した接続で再現性を確認してください。
  6. 変更を戻して結果を記録する:確認後は元のモードに戻し、どの変更で結果が変わったかをメモします。ルールを追加した場合は、対象ドメインの履歴で意図したポリシーに一致していることも確かめます。

この比較では、毎回ブラウザーの新しい接続を使うことが重要です。既存のタブや長時間維持された接続は、モードやノードを切り替えた後も以前の経路を使い続ける場合があります。シークレットウィンドウでの試行は拡張機能や既存セッションの影響を減らせますが、ログイン状態が変わる点には注意してください。認証画面が正常に表示されない場合でも、Cookieを無条件に削除するのではなく、まず別ウィンドウで比較します。

4. ノードとDNS:タイムアウトの発生箇所を見極める

ルールが想定どおりのノードに接続しているのにタイムアウトする場合は、ノードの応答性を比較します。クライアントに表示される遅延テストは、指定した宛先への測定結果であり、ChatGPTのログイン、会話API、画像配信まで動作することを保証するものではありません。遅延値だけで判断せず、同じ時間帯に別ノードで実際のページ表示と会話送信を試してください。特定のノードだけ失敗するならノード側、複数ノードで同じ機能だけ失敗するならルール、DNS、ブラウザー側を重点的に調べます。

DNSでは、ChatGPT関連ドメインが意図した名前解決経路を通っているか確認します。ブラウザー独自のセキュアDNS(DoH)が有効だと、OSやClashのDNS設定とは別の経路で問い合わせる場合があります。原因を切り分けるために一時的にブラウザーのセキュアDNSを無効にして比較できますが、これは恒久的に無効にすべきという意味ではありません。テスト後はプライバシー上の要件に合わせて設定を戻してください。

DNS設定を変更する際は、利用中のコアが対応する構文か確認し、サブスクリプションのDNS全体を安易に置き換えないでください。複数のDNSサーバーを追加するだけでは、解決経路の競合やタイムアウトが解消するとは限りません。設定変更後はクライアントのログでDNSエラーが減ったかを確認し、必要に応じてブラウザーを再起動して新しい問い合わせを発生させます。システムやブラウザーに古い名前解決結果が残っている可能性も考慮しましょう。

また、IPv4での接続だけ成功しIPv6で失敗する、あるいはその逆のケースもあります。コアのログに接続先IPと失敗理由が記録されている場合は、IPv4とIPv6の経路、ノードの対応状況を確認します。ログの文言はコアやバージョンにより異なりますが、DNS解決失敗、接続拒否、接続待ちのタイムアウトを区別すると次の確認先が明確になります。診断用にDNS設定やIPv6を変更した場合は、検証後に元へ戻すか、変更内容を記録してください。

  • DNS解決エラー:コアのDNSログ、ブラウザー独自DNS、DNSキャッシュの順に確認します。
  • 接続拒否:選択ノードの接続情報、サーバー状態、接続先ポートを確認します。
  • 接続待ちのタイムアウト:別ノードでも再現するか、対象通信が正しいポリシーへ進んでいるかを比較します。
  • ページの一部だけ表示されない:接続履歴に別ドメインへの通信がないかを調べ、必要な場合だけルールを追加します。

5. TUNを使う場面と、解決後の設定整理

TUNモードは、システムプロキシを使わないアプリの通信を取り込みたい場合に検討します。仮想ネットワークインターフェースとOSのルーティングを使うため、アプリ側にHTTPプロキシを設定できない環境でも通信をClashへ渡せることがあります。ただし、TUNを有効にしても全通信が自動的にプロキシへ送られるわけではありません。取り込まれた後は通常どおりルールや出力ポリシーが適用され、DIRECTに一致すれば直接接続されます。別のVPN、仮想NIC、セキュリティソフト、権限不足が競合する場合もあります。

ブラウザーの接続履歴に該当通信がなく、システムプロキシも利用されていないと確認できた場合に、対応OSとコアの説明を確認してTUNを試してください。デスクトップでは管理者権限やルート設定が必要なことがあり、AndroidではVPN接続の許可とほかのVPNとの排他利用が関係します。TUNを有効にしたら、同じブラウザー、同じノード、同じモードで再度比較します。直らなければ無効に戻し、ルールやDNSの調査を続けましょう。なお、システムプロキシとTUNを同時に使うことが常に必要とは限らず、重複した取り込みは切り分けを難しくします。

ChatGPTが開いた後は、テストのために変更したグローバルモード、ブラウザーのセキュアDNS、TUN、ノード選択を確認し、必要なものだけを残します。追加したルールが期待どおりの通信だけに適用されることを履歴で検証してください。サブスクリプションの更新後に問題が再発した場合は、ローカル変更が維持されたか、参照先グループ名やルール順が変わっていないかを確認します。症状、日時、コアのエラー内容、試したノードを記録しておくと、再発時に同じ手順を繰り返さずに済みます。