ユースケース別情報 · Clash 技術ブログ

ChatGPT、Gemini、Claude を Clash で振り分ける方法

ChatGPT、Gemini、Claude の Web ページ、ログイン、モデル API では、異なるドメインが使われる場合があります。各サービスを安定したポリシーへ割り当て、実際の接続記録からルールを補うことで、ログイン時や長い応答中の出口の変動を抑えられます。

  • ChatGPT
  • Gemini
  • Claude
目次

ChatGPT、Gemini、Claude を振り分けるには、まずウェブ、ログイン、API を分ける

ChatGPT、Gemini、Claude のトップページが開いても、フロントエンドの一部のリクエストが成功したことしか証明できません。アカウントへのログインでは認証ドメインへ移動し、メッセージ送信ではモデルのエンドポイントへアクセスし、ファイルのアップロードではオブジェクトストレージやコンテンツ用ドメインも使用します。いずれか一つが直接接続になったり、拒否されたり、出口を切り替えたりすると、ユーザーには読み込み中の表示しか見えないことがあります。

まず失敗した操作を具体的にします。画面が真っ白になる、ログインがループする、メッセージを送信できない、ストリーミング応答が途中で切れる、ファイルがアップロード中のまま止まる、といった症状は、それぞれ異なるリクエストに対応します。すべてを「AI が開かない」とまとめると、検証できないドメイン一覧が長くなるだけです。

最初に症状とリクエスト段階を対応させる

確認された現象最初に確認する内容最初に行うべきでないこと
画面が真っ白になる、またはスタイルが欠けるスクリプト、静的リソース、DNSアカウントを何度も切り替える
ログイン後に再びログインページへ戻る認証リダイレクト、Cookie、出口の地域モデル API のルールだけを追加する
メッセージが読み込み中のまま、または途中で切断されるモデルのエンドポイント、ストリーミング接続、ノードの切り替えトップページだけをテストする
ファイルのアップロードが止まるアップロード用ドメイン、オブジェクトストレージ、リクエスト本文のサイズすべての CDN をプロキシ対象へ追加する

ログイン中は出口を固定し、自動速度テストグループに地域を切り替えさせない

認証リクエストとログイン直後の最初のインターフェースリクエストが異なる出口を使うと、再認証を求められたり、セッションが無効になったりする可能性があります。トラブルシューティング時は手動ポリシーグループを作り、利用可能なノードを一つ固定して、アカウントページ、メインサイト、インターフェースが一回のログイン中に同じ出口を使うようにします。

これは三つのサービスで一つのノードを永続的に共有するという意味ではありません。問題を確認した後は ChatGPT、Gemini、Claude ごとにグループを分けられますが、各サービス内の認証リクエストとデータリクエストは同じ地域を維持する必要があります。アカウントが利用できない、現在地でサービスが提供されていない、製品側でレート制限されているといった問題は、Clash のルールを数件増やしても解消しません。

ドメインは実際のセッションから特定し、古いリストを丸ごとコピーしない

接続記録を消去したら、Claude へのログイン、Gemini で短いメッセージを一つ送信、ChatGPT から小さなファイルを一つアップロード、のように一つの操作だけを完了します。失敗前後に現れたホスト名、一致したルール、送信先を記録して初めて、どの層が欠けているか判断できます。

明確な製品入口から記録を始めます。ChatGPT は chatgpt.com、OpenAI API は api.openai.com を使用します。Gemini のウェブ版は gemini.google.com、Gemini API の一般的な入口は generativelanguage.googleapis.com です。

Claude のウェブ版は claude.ai、Anthropic API は api.anthropic.com を使用します。ログインのリダイレクト先、静的リソース、アップロード先は、自分の接続記録から追加してください。

新しいルールは、広範な GEOIP、ルールセット、MATCH より前に置きます。Google のログイン用ドメインは Gmail や YouTube などのサービスでも共用されるため、Gemini のためだけに accounts.google.com のような広いドメインを AI グループへ永続的に割り当てないでください。

接続記録で認証リクエストが誤った出口を使ったことを確認してから、そのセッションで現れたホストを AI グループへ追加し、再検証します。

次の内容は、そのまま貼り付けられる完全な設定ではありません。現在のサブスクリプションのポリシーグループ一覧で、実在するグループ名を一つ探し、すべての YOUR_EXISTING_GROUP をその名前へ置き換えてください。そうしないと、設定チェックで必ず group not found が発生します。三つの AI グループを作成した後で、ルールを追加します。

既存のグループ名を正しく置き換えてから、三つの AI ポリシーグループを作る
# 必须先把 YOUR_EXISTING_GROUP 替换成当前配置里真实存在的组名
proxy-groups:
  - name: AI-OPENAI
    type: select
    proxies:
      - YOUR_EXISTING_GROUP
      - DIRECT
  - name: AI-GOOGLE
    type: select
    proxies:
      - YOUR_EXISTING_GROUP
      - DIRECT
  - name: AI-CLAUDE
    type: select
    proxies:
      - YOUR_EXISTING_GROUP
      - DIRECT

rules:
  - DOMAIN-SUFFIX,chatgpt.com,AI-OPENAI
  - DOMAIN,api.openai.com,AI-OPENAI
  - DOMAIN,gemini.google.com,AI-GOOGLE
  - DOMAIN,generativelanguage.googleapis.com,AI-GOOGLE
  - DOMAIN,api.anthropic.com,AI-CLAUDE
  - DOMAIN-SUFFIX,anthropic.com,AI-CLAUDE
  - DOMAIN-SUFFIX,claude.ai,AI-CLAUDE
  - GEOIP,CN,DIRECT
  - MATCH,YOUR_EXISTING_GROUP

このルールセットが実際に機能している証拠

  • 設定チェックに合格し、group not found がない
  • ChatGPT、Gemini、Claude のテストリクエストが、それぞれ対応するポリシーグループに一致する
  • ログインのリダイレクト中とメッセージ送信中に出口が変わらない
  • ルールへ追加していない Google サービスが誤って AI-GOOGLE に入らない

ウェブ版は正常なのに CLI がタイムアウトする場合、同じプロキシ入口を使っていない可能性が高い

ブラウザは通常 Windows または macOS のシステムプロキシを使用しますが、Python SDK、コマンドラインツール、IDE プラグイン、コンテナが同じとは限りません。まず、失敗したリクエストが Clash の接続ページに表示されるか確認してください。記録がまったくなければ、リクエストはまだルールエンジンへ入っていません。

コマンドラインツールでは HTTP_PROXY、HTTPS_PROXY、NO_PROXY を一時的に設定でき、デスクトップの開発環境でもアプリの説明に従ってプロキシを指定できます。システムプロキシを使わないプロセスが実際に複数ある場合に限り、TUN を検討してください。接続がすでに記録へ表示されているなら、環境変数を変更し続けず、一致したルール、ポリシーグループ、ノードを確認します。

同じサービスで時々画面が真っ白になる場合は、まず DNS の入口を統一する

ブラウザのセキュア DNS、システム DNS、Clash DNS が同時に動作すると、同じサービスでもプログラムごとに異なるアドレスが返る場合があります。トラブルシューティング中はブラウザ独自の DoH を一時的に無効にし、ドメイン問い合わせと接続の両方を Clash に通してから、画面の白抜けやリソース読み込み失敗が続くか確認します。

名前解決に成功しても TLS ハンドシェイクや接続が引き続きタイムアウトする場合に限り、ノード品質とルールを見直します。一度の DNS 失敗だけで十の都市を切り替えたり、結果を観察せずに Fake-IP、スニッフィング、上流 DNS を同時に変更したりしないでください。

長い応答やアップロードは、速度テストの数ミリ秒の差よりも出口の変化に影響されやすい

AI の対話では、長時間のストリーミング接続が維持されます。自動グループがノードを頻繁に選び直すと、トップページは常に速くても、回答が途中で切れる可能性があります。テストでは一つの固定ノードを使い、長い応答、再生成、ファイルアップロードを完了してから、自動グループで実際に改善するか比較します。

アップロードに失敗した場合は、リクエストが送信済みかどうかも切り分けます。進捗が 0% から動かないなら、まずアップロード先がルールに一致しているか確認します。途中まで進んで明確な HTTP ステータスが返る場合は、サイズ制限、ファイル形式、サービスの応答を確認してください。Clash が変更できるのはネットワーク経路だけで、製品自体の制限を回避することはできません。

最後にログイン、長い応答、アップロード、API を個別にテストする

トップページを開くだけより有意義なテスト

  1. もう一度ログインする

    認証リダイレクトの完了後にログインページへ戻らず、出口の地域も変わらないことを確認します。

  2. 長い会話を送信する

    最初の文字が表示されるまでの時間、ストリーミング出力、完了時の状態を観察します。最初の一文が表示されるかだけで判断しないでください。

  3. 小さなファイルを一つアップロードする

    アップロード用ドメイン、進捗、最終的な処理結果を確認します。

  4. API を一度呼び出す

    ホスト、HTTP ステータスコード、クライアントが正しいプロキシ入口を使用したかを記録します。

いずれかの項目が失敗したら、対応する段階だけを見直します。ログインは安定しているのに対話が中断する場合は、認証ルールを変更しません。ブラウザは正常でも API クライアントの接続記録がない場合は、プロセスのプロキシ設定を修正します。記事のルールを問題そのものより速く増やさないでください。

参考資料