1. 最初に確認すること:ブラウザーの通信がClashに届いているか
ChatGPTを開けないときは、いきなりDNS設定やルール全体を書き換えるのではなく、通信がどこまで進んでいるかを切り分けます。Clashクライアントは画面上の操作やシステムプロキシの設定を担当し、実際の接続やルール判定は起動中のコアが担当します。クライアントが起動していても、コアが停止中だったり、ブラウザーの通信がコアに届いていなかったりすれば、設定したノードは使われません。
- コアの状態:クライアントの画面やログで、コアが起動していることと設定の読み込みに失敗していないことを確認します。mihomoなど複数のコアを選べるクライアントでは、現在選択されているコアとバージョンも記録してください。
- 接続モード:ルールに従った振り分けを調べるときは、Rule/ルールモードにします。Global/グローバルモードは通常のルール評価を確認する方法ではありません。
- 通信の取り込み:システムプロキシを使う場合は、クライアント側で有効になっていることを確認します。システムプロキシに従わないアプリの通信も対象にするなら、TUNの要否を別に検討してください。TUNを有効にするだけで、すべての通信が必ずプロキシ経由になるわけではありません。
- ノードとグループ:プロキシグループに利用可能なノードがあり、選択中のノードが意図したものか確認します。接続テストの成功は、そのテスト先への接続を確認した結果であり、ChatGPTへの接続を保証するものではありません。
問題を再現するときは、接続一覧やログを開いた状態でChatGPTのページを一度だけ読み込みます。対象の接続が一覧に出ない場合は、ブラウザーからClashまでの入口、すなわちシステムプロキシ、ブラウザー個別のプロキシ設定、またはTUNを調べます。接続が表示されている場合は、適用ルール、選ばれたプロキシグループ、最終的なノードを確認してください。
2. エラーの種類から失敗した段階を見分ける
「接続できない」という表示だけでは、ノード、DNS、ルール、ブラウザーのどれが原因かは判断できません。ログのエラー文字列と、接続一覧に記録された宛先を合わせて見ます。タイムアウトがノードの接続時に起きたのか、ChatGPT側への接続時に起きたのかによって、次に確認する場所が変わります。
| 症状・ログ | 考えられる段階 | 最初に確認すること |
|---|---|---|
i/o timeout、宛先がノードのIPとポート | ローカル端末からノードへの接続 | ノードの選択、サーバー名とポート、ネットワーク経路、別ノードでの再現 |
i/o timeout、接続一覧の宛先がChatGPT関連ドメイン | プロキシ経由での接続、または宛先側までの応答待ち | 選択中のノード、ルールの結果、別の正常なノード、同じ時間帯のサービス状況 |
| 接続一覧に対象接続がない | ブラウザーからコアへの通信の取り込み | システムプロキシの状態、ブラウザー個別設定、TUNの必要性 |
| 名前解決エラー、DNSログに失敗がある | DNS問い合わせ、またはDNS応答の受け渡し | 問い合わせ先、上流DNSへの到達、DNSの上書き設定、Fake-IPと通信経路の整合 |
TLS handshake timeout、証明書エラー | TCP接続後のTLSハンドシェイク | 端末の時刻、ノードの安定性、証明書検証、クライアントやコアのログ |
| ログイン画面は開くが認証が完了しない | 認証画面、Cookie、ブラウザー拡張など | プライベートウィンドウでの比較、Cookieや拡張機能、認証先の接続記録 |
DIRECTと表示された場合は、ChatGPT関連の接続が意図せず直接接続になっていないか、適用ルールを確認します。プロキシグループ名が表示されても、そのグループ内で最終的にどのノードが選ばれたかまで確認してください。ログにタイムアウトがある場合も、表示されたIPアドレスやホスト名がノード側か接続先側かを確かめずに、DNSの問題だと決めつけないことが大切です。
3. ルールとノードを順番に確認する
ルールモードでは、ルールが上から順に評価され、最初に一致したルールが接続の出方向を決めます。ChatGPT関連ドメイン向けのルールを追加するなら、既存の広いルールや最後のMATCHより前に置きます。ルール名として指定するプロキシグループは、設定に実在する名前と完全に一致していなければなりません。
以下は既存設定に追加する例です。実際のプロキシグループ名は、利用中の設定に定義済みのグループ名へ置き換えてください。この例は完全な設定ではなく、ノードやグループを新規に作成するものでもありません。
rules:
- DOMAIN-SUFFIX,chatgpt.com,実際のプロキシグループ名
- DOMAIN-SUFFIX,openai.com,実際のプロキシグループ名
- DOMAIN-SUFFIX,oaistatic.com,実際のプロキシグループ名
- DOMAIN-SUFFIX,oaiusercontent.com,実際のプロキシグループ名
# 既存のその他のルールを続ける
- MATCH,既存の最終ポリシー
ドメイン構成や必要な接続先はサービス側で変更されることがあります。このリストは切り分けの出発点であり、常にすべての関連ドメインを網羅するものではありません。ログに別の認証先や静的コンテンツ用ホストが現れた場合は、そのホストに実際に一致しているルールを確認します。接続一覧に示されたドメインを手掛かりにし、無関係なドメインをまとめてプロキシに送る広いルールは避けてください。
- クライアントでルールモードを選び、設定を再読み込みします。設定エラーが出ていないことも確認します。
- ChatGPTのページを再読み込みし、接続一覧で対象のホスト、ルール名、グループ、最終ノードを記録します。
- 特定ノードだけで失敗する場合は、同じグループ内の別ノードを選び、同じブラウザー操作で再試験します。
- 複数のノードで失敗する場合は、同じネットワーク上の別サイトが通るか、また別のネットワークでも同じ症状かを比較します。
- 接続先ドメインと出方向を確認したうえで、必要なルールだけを調整します。変更前の設定は保存し、問題が広がったら元に戻せるようにしてください。
プロキシの速度テストやグループのURLテストが成功しても、ブラウザーの認証、ページ内リソースの取得、ログイン後の通信まで確認したことにはなりません。ルールが意図したグループに一致し、かつそのグループで選ばれたノードが実際のChatGPT接続を処理できるかを、接続一覧とページの動作の両方で確かめます。
4. DNS・ブラウザー・TUNの違いを切り分ける
DNSエラーが記録されている場合は、まず問い合わせがClashのDNS機能に届いているかを調べます。クライアントのDNS上書き、コアのDNS設定、OSのDNS、ブラウザーのセキュアDNSは、異なる経路を通ることがあります。ブラウザーが独自のDNS over HTTPSを使用していると、OSやClash側で想定した名前解決の確認結果と一致しない場合があります。ただし、ブラウザーのDNS設定が異なることだけで、必ず接続失敗になるとは限りません。実際の接続一覧とログを基準にしてください。
- Fake-IP利用時:DNS応答に偽アドレスが含まれていても、それだけで異常とは限りません。そのアドレス宛ての通信がTUNなどを通じてコアに戻り、対応するドメイン情報を使って処理される経路が必要です。
- システムプロキシ利用時:ブラウザーのHTTP/HTTPS通信がシステムプロキシを使っているか確認します。ブラウザーの個別プロキシ設定や拡張機能が、システム設定を上書きしている場合があります。
- TUN利用時:OSやクライアントでTUNの状態を確認し、必要に応じて権限、仮想ネットワークインターフェース、DNSの横取り設定を調べます。TUNとシステムプロキシを同時に切り替えると、比較条件が分かりにくくなるため、一度に一つずつ変更してください。
- ブラウザー要因:プライベートウィンドウで試し、拡張機能や古いCookieの影響を比較します。ログインだけが失敗する場合は、ページ本体への接続と認証先への接続を別々に確認してください。
名前解決を確かめるために、OSのDNSキャッシュを消去したりDNSサーバーを変更したりする場合は、変更前の状態を記録してください。DNSサーバーを変えるだけでプロキシ経由のルートが直るとは限らず、別の問題を追加する可能性があります。診断中は複数のDNS設定やTUNオプションを同時に変更せず、一つの変更ごとに同じURL、同じノード、同じネットワークで結果を比較します。
5. 修正後の確認と安全な設定への戻し方
修正後は「ページが一度表示された」だけで終わらせず、同じ条件で数回確認します。たとえば、ブラウザーを再起動してログイン画面を開き、必要ならログイン後のページも読み込みます。接続一覧では、ChatGPT関連の接続が意図したルールに一致し、指定したグループとノードを通っていることを確認してください。ページの一部だけ読み込めない場合は、失敗したリソースのホスト名を記録し、その接続のルールを個別に調べます。
コマンドラインからHTTPプロキシを確認する場合は、Clashが実際に待ち受けているポートを使います。次の例の7890は一般的な例示値であり、すべてのクライアントの既定値ではありません。
curl -I -x http://127.0.0.1:7890 https://chatgpt.com/
このテストは指定したHTTPプロキシを通してHTTP応答を受け取れるかを調べるもので、ブラウザーのCookie、ログイン、JavaScript、サービスの利用可否を確認するものではありません。リダイレクトやアクセス制限の応答が返っても、直ちにClashの不具合とは断定できません。ポートが異なる場合は、クライアントのポート設定を確認してから値を置き換えてください。
接続が復旧したら、調査のため一時的に変更したログレベルやDNS設定を見直し、不要な変更を元に戻します。ログ共有時は、サブスクリプションURL、ノードの認証情報、APIキー、個人を特定できる情報を伏せてください。また、プロキシ接続が成功しても、サービスの提供地域やアカウント条件が変わるわけではありません。利用可能性やアカウントに関する表示が出る場合は、ネットワーク設定だけで解決しようとせず、サービス側の案内も確認してください。