この記事で分かること

Claude Code をターミナルから使おうとしたとき、ログイン画面が開かない、認証後に処理が進まない、リクエストがタイムアウトする、といった問題が起きることがあります。ブラウザでは Claude にアクセスできるのに CLI だけ失敗する場合、アカウントやモデルの問題だけでなく、ターミナルの通信が Clash Verge のプロキシを通っていない可能性があります。

この記事では、Clash Verge にプロファイルを読み込んで接続を確認し、適切なプロキシモードを選び、Claude Code を起動するターミナルへプロキシ設定を渡す手順を紹介します。Clash Verge の表示名やポート番号はバージョン、OS、プロファイルによって異なるため、特定の数値をそのまま使うのではなく、実際の設定画面とログを照らし合わせてください。

基本の考え方は、Clash Verge 側で通信経路を用意することと、Claude Code 側でその経路を利用することを別々に確認することです。片方だけ設定しても、CLI の通信がプロキシへ流れるとは限りません。まず小さな変更から試し、動作した条件を記録しながら切り分けましょう。

症状から原因の層を絞り込む

「接続できない」という表示だけでは原因を特定できません。エラーが発生するタイミングと、同じ端末上のほかのアプリの動作を見比べると、調査する場所を絞れます。

  • ブラウザは使えるが Claude Code のログインだけ失敗する:ブラウザは OS のシステムプロキシを使っていても、ターミナルのプロセスは環境変数を参照していない場合があります。シェルのプロキシ設定と、Clash Verge の混合ポートを確認します。
  • ログインはできるが、質問を送ると失敗する:認証と API リクエストで接続先や処理の段階が異なる可能性があります。エラー発生時刻の Clash Verge ログを確認し、対象ホストがどのルールとポリシーに一致したかを見ます。
  • 一度は成功するが、次の実行でタイムアウトする:ノードの品質、接続の維持、古いターミナルに残った環境変数などが考えられます。設定を変えたあとは、ターミナルを再起動して再現性を確かめます。
  • Clash Verge の接続テストも失敗する:CLI の設定以前に、プロファイル、ノード、ネットワーク自体に問題がある可能性があります。まず Clash Verge 単体でノードの状態を確認してください。
  • TLS や証明書に関するエラーが出る:経路の問題とは限らず、端末の時刻、企業や学校の通信検査、証明書設定が関係することもあります。原因を確認せずに証明書検証を無効化するのは避けましょう。

Clash Verge のログは、接続が発生したときのホスト名、使用ルール、選択されたポリシーを確認する手掛かりになります。ログに通信がまったく出ないなら、Claude Code がプロキシを利用していない可能性があります。ログには出ているものの失敗するなら、選ばれたポリシーやノード、DNS、上流ネットワークを次に調べます。

プロファイルを読み込み、モードを選ぶ

Clash Verge はプロキシ接続を提供するサービスそのものではなく、Mihomo などのコアを操作するクライアントです。接続には、信頼できる提供元から取得した Clash 対応プロファイルが必要です。購読 URL や設定ファイルには接続情報が含まれる場合があるため、公開のチャットや issue に貼り付けないでください。

  1. プロファイルを追加する:Clash Verge を開き、プロファイル画面から購読 URL を追加するか、手元の設定ファイルを読み込みます。項目名や追加方法はバージョンによって異なるため、画面の案内に従ってください。
  2. 更新と読み込みを確認する:プロファイルが一覧に表示され、選択中になっていることを確認します。ノードやプロキシグループが空の場合は、URL、更新状態、提供元の形式説明を確認します。
  3. ノードを選択する:提供元が推奨するノードや、自分の環境から応答するノードを選びます。最初は一つのノードに固定してテストすると、途中で選択先が変わることによる混乱を減らせます。
  4. ルールモードを確認する:ルールモードでは、宛先に応じて DIRECT やプロキシグループなどへ通信を振り分けます。Claude Code の接続先が意図したポリシーへ進むか、ログで確認します。

通常は、まず Rule(ルール)モードから試すと切り分けやすくなります。利用中のプロファイルに適切なルールが含まれていれば、対象通信を指定したグループへ送り、ほかの通信は従来のポリシーで処理できます。ルールの編集が必要なときは、現在のプロファイルが更新時に上書きされる形式かどうかを確認してください。提供元のプロファイルを直接編集すると、更新で追加した変更が失われることがあります。

ログ上で Claude Code の通信先が DIRECT になっている場合は、プロファイルのルール、ルールの優先順位、またはモードを確認します。特定のドメインをルールへ追加する場合、api.anthropic.com は調査の起点になりますが、すべての認証や補助通信が必ず同じホストだけで完結するとは限りません。エラー発生時にログへ出た実際のホスト名を確かめてから、必要なものだけをルールへ追加してください。

グローバルモードは、通信全体を選択したプロキシ経由にしたい場合の一時的な比較に使えます。ただし、ほかのアプリの接続先も変わるため、普段使いの設定として安易に切り替えるのは避けましょう。TUN はシステムプロキシや環境変数を参照しないアプリも捕捉できる場合がありますが、管理者権限、OS のネットワーク拡張、他の VPN との競合など確認事項が増えます。まずルールモードと端末側の設定を試し、それでも通信が Clash のログに現れない場合に、環境に応じて検討します。

TIP:Clash Verge のポート番号は、設定画面の混合ポートまたは HTTP プロキシの表示で確認してください。例に見かける 7897 などの値を、確認せずにそのまま設定すると接続できないことがあります。

ターミナルへプロキシ設定を渡す

Clash Verge でシステムプロキシを有効にすると、OS のプロキシ設定を参照するアプリが接続できるようになります。しかし、コマンドラインツールやその内部ライブラリが OS の設定を読むとは限りません。Claude Code を起動するシェルでプロキシ環境変数を確認し、必要なら Clash Verge の表示に合わせて設定します。

macOS や Linux の一般的なシェルでは、現在のターミナルセッションだけで試す方法があります。次のポートは例なので、実際には Clash Verge の混合ポートへ置き換えてください。

export HTTPS_PROXY=http://127.0.0.1:7897
export HTTP_PROXY=http://127.0.0.1:7897
export NO_PROXY=localhost,127.0.0.1,::1

設定後に env | grep -i proxy を実行し、想定した値が表示されることを確認します。Claude Code は、その環境変数を引き継いだ同じターミナルから起動してください。すでに起動しているターミナルや IDE は、後から設定した値を自動で受け取らないことがあります。設定を変更したのに結果が変わらない場合は、ターミナルを開き直し、必要に応じて Claude Code のプロセスも終了してから再試行します。

Windows では、Clash Verge が表示するポートを確認したうえで、PowerShell の現在のセッションに値を設定できます。以下は形式を示す例であり、ポート番号は各環境に合わせて変更してください。

$env:HTTPS_PROXY = "http://127.0.0.1:7897"
$env:HTTP_PROXY = "http://127.0.0.1:7897"
$env:NO_PROXY = "localhost,127.0.0.1,::1"

NO_PROXY は localhost など、プロキシを通さずに接続したい宛先のための設定です。最初の疎通確認では、除外範囲を必要最小限にします。大きなドメインを除外してしまうと、対象 API への通信が意図せず直接接続になることがあります。また、環境変数の大文字・小文字の扱いはツールや実行環境により差があるため、値を設定しても改善しない場合は、Claude Code の利用環境やシェル、IDE の起動方法も確認してください。

一時設定で成功したら、シェルの設定ファイルへ恒久的に追加するかを判断します。共有端末では、全ユーザーに影響する設定を不用意に変更しないでください。企業や学校の端末では管理者のポリシーを優先し、プロキシ URL や認証情報を Git リポジトリ、シェルの公開ログ、画面共有へ含めないようにします。

疎通をテストし、ログで原因を確かめる

いきなり長い Claude Code の作業を実行するのではなく、まず接続先へ到達できるかを分けて確認します。curl が利用できる環境では、次のコマンドで TLS 接続の結果を調べられます。

curl -I https://api.anthropic.com

応答が 401 や 404 でも、HTTP 応答まで受け取れたなら、少なくとも接続と TLS の段階を通過した可能性があります。これは Claude Code の認証や API 利用が成功したことを意味しません。反対に、名前解決に失敗する、接続がタイムアウトする、TLS の確立で止まる場合は、Clash Verge のログと照合します。詳細表示を使うときは、URL、ヘッダー、トークンなどの機密情報を共有しないよう注意してください。

テスト中は Clash Verge の接続ログを開き、試した時刻の新しい行を確認します。ホスト名、接続先のポリシー、DIRECT かプロキシ経由か、接続エラーの有無を見てください。ログの表示内容はバージョンによって異なりますが、「リクエストがログに出ているか」「どのルールに一致したか」「どのノードへ送られたか」の三点を追えば、次に調べる場所を絞れます。

  • ログに接続が出ない:環境変数が Claude Code のプロセスへ渡っているか、Clash Verge のポートが正しいかを確認します。TUN を利用している場合は、その状態や競合する VPN も確認してください。
  • ログに DIRECT と出る:現在のモード、ルールの一致順、プロファイルで使われているポリシーを確認します。対象ホストをログで特定し、プロファイルの編集方法を確認してから必要なルールを追加します。
  • プロキシへ送られているのに失敗する:選択ノードを変更して比較し、同じ条件で再試行します。ノードの遅延だけでなく、通信の安定性や長時間接続の状態も見ます。
  • curl は通るが Claude Code は失敗する:CLI の認証状態、アカウントや利用可能な機能、Claude Code のバージョン、起動元の環境変数を別々に確認します。プロキシ接続の成功だけでは、サービス側の利用条件は解決しません。
  • TLS エラーが続く:端末の日時、証明書ストア、組織の HTTPS 検査設定を確認します。原因を確かめずに TLS 検証を無効化したり、無関係な証明書を信頼させたりしないでください。

設定を一度に複数変更すると、どの変更が効果をもたらしたか判断しづらくなります。プロファイル、モード、ポート、環境変数、ノードを一つずつ確認し、毎回同じ簡単なテストを行いましょう。成功したときの設定とエラー時刻をメモしておけば、プロファイル更新後に再発した場合も比較しやすくなります。

よくある質問

システムプロキシを有効にすれば Claude Code も使えますか?

必ずしもそうではありません。OS のシステムプロキシを参照するアプリには有効ですが、ターミナルのプログラムは別途 HTTPS_PROXY などを必要とする場合があります。システムプロキシを設定したあとも失敗するなら、Claude Code を起動するシェルで環境変数を確認してください。

環境変数にはどのポートを指定すればよいですか?

Clash Verge の設定画面に表示される HTTP、HTTPS、または混合ポートを使います。ポート番号は環境ごとに異なるため、記事や古い設定例にある数値をそのまま流用しないでください。確認した値を http://127.0.0.1:ポート番号 の形式で設定します。

最初から TUN モードを使うべきですか?

通常は、まずルールモードとターミナルのプロキシ設定で試すほうが、経路を説明しやすくなります。CLI がプロキシ設定を無視していると確認できた場合に限り、権限や VPN との競合を確認したうえで TUN を検討してください。TUN の動作や必要な許可は OS と Clash Verge のバージョンによって異なります。

プロキシ経由なら認証や利用制限も解決しますか?

いいえ。プロキシ設定は通信経路の調整に使うもので、アカウントの状態、Claude Code の利用条件、サービス側のエラーを解決するものではありません。ネットワーク接続が確認できた後も認証や利用に関するエラーが続く場合は、表示されたメッセージとアカウントの案内を確認してください。

ほかのプロキシアプリでは、システム設定だけを変更して CLI の接続先までは追えない場合や、ルールとログの確認方法が分かりにくい場合があります。Clash Verge なら、プロファイル、通信モード、接続ログを順に見ながら、ターミナル側の環境変数と照合して原因を絞り込めます。自分の OS と用途に合うクライアントを確認したい場合は、ダウンロードページで対応環境を確認してください。

Clash を無料でダウンロードして、快適なネット体験を →