Claude Codeは、ターミナルからコードの読み取り、修正、テスト実行、Git操作まで依頼できる便利な開発ツールです。しかし、ログイン画面が開かない、モデル呼び出しの途中でタイムアウトする、パッケージのインストールだけ失敗するといった問題は、ネットワーク経路が不安定な環境で起こりやすくなります。Clash Vergeを正しく設定すれば、サブスクリプションの登録、Claude Codeの認証、ターミナルからのAPI通信を同じプロキシ経路で安定させることができます。この記事では、Clash Vergeへのサブスク登録からノード選択、システムプロキシ、ターミナル環境変数、接続テストまでを順番に解説します。
Claude CodeとClash Vergeの役割
Claude Codeはターミナル上で動作するCLIツールです。ブラウザでClaudeにアクセスするだけならブラウザ側のプロキシ設定で通信できますが、Claude Codeを使う場合は、認証リクエスト、モデルAPIへの接続、更新確認、場合によってはGitやnpmへのアクセスも発生します。そのため、ブラウザだけが接続できても、ターミナルからの通信が同じように通るとは限りません。
Clash Vergeは、サブスクリプションから取得したプロファイルを読み込み、複数のプロキシノードとルールを管理するクライアントです。基本的には、Clash Vergeが通信を受け取り、ルールに従って直接接続またはプロキシ接続へ振り分けます。Claude Codeの利用では、次の3つを分けて考えることが重要です。
| 項目 | 役割 | 確認ポイント |
|---|---|---|
| サブスクリプション | ノードとルールをClash Vergeへ読み込む | 有効期限、更新状態、URLの正確さ |
| Clash Verge | PC全体または指定アプリの通信を振り分ける | 稼働中のプロファイル、モード、ポート番号 |
| ターミナル | Claude Codeへプロキシ経路を知らせる | HTTP_PROXYやHTTPS_PROXYの値 |
Clash Vergeにサブスクを登録する
まず、利用しているサービスから発行されたサブスクリプションURLを用意します。URLには認証情報が含まれている場合があるため、SNSや公開チャットへ貼り付けたり、スクリーンショットで共有したりしないようにしてください。Clash Vergeを起動したら、プロファイル管理画面を開き、サブスクリプションURLを追加します。画面の名称はClash VergeとClash Verge Revのバージョンによって少し異なりますが、「Profiles」「プロファイル」「Subscriptions」などの項目から登録できます。
- Clash Vergeを起動し、プロファイルまたはサブスクリプション管理画面を開きます。
- サービスから発行されたサブスクリプションURLを入力し、名前を付けて保存します。
- 更新ボタンを押して、ノード一覧とルールが取得できることを確認します。
- 新しく読み込まれたプロファイルを選択し、Clashコアを起動します。
- プロキシ画面で利用可能なノードが表示されるか確認します。
登録後にプロファイルが表示されない場合は、URLの末尾に余分な空白や改行が入っていないか確認してください。また、サブスクリプションの期限切れ、同時利用数の上限、サービス側の一時的な障害でも更新に失敗します。ブラウザでURLを開いて設定ファイルが表示されるとは限りませんが、Clash Vergeの更新処理が成功するかどうかを基準に判断してください。
プロファイル: 最新のサブスクリプションを選択 コア: Mihomo または対応するClashコア モード: Rule(ルール) System Proxy: 必要に応じて有効化 Mixed Port: 7890 # 実際の画面に表示された番号を使用
Claude Code向けノードとルールを選ぶ
ノードを選ぶときは、単純にping値が最も低いものを選べばよいとは限りません。Claude Codeでは、短い接続を大量に処理するだけでなく、認証後に比較的長いモデル応答を待つことがあります。レイテンシ、パケットロス、接続の安定性、混雑時間帯の速度を総合的に確認しましょう。
| 選び方 | メリット | 注意点 |
|---|---|---|
| 手動選択 | 挙動を把握しやすく、検証に向いている | 障害時に自分で切り替える必要がある |
| url-test | 定期的に遅延を測定して候補を自動選択できる | 測定先と実際のAPI経路が異なる場合がある |
| fallback | 主ノード障害時にバックアップへ切り替えやすい | 切り替えまで一時的な再接続が発生する |
最初は手動選択で、複数のノードを同じ条件で試す方法がおすすめです。Claude Codeでログインを完了し、短いプロンプトを送信して、応答が途中で切れないか確認します。常に自動選択を使う場合でも、候補を増やしすぎると品質の低いノードへ切り替わることがあるため、安定して使える2〜5個程度に絞ると管理しやすくなります。
Clash Vergeのモードは、通常はRuleを優先します。Globalモードはすべての通信を同じノードへ送るため原因の切り分けには便利ですが、Git、npm、OSの更新、ローカル開発環境までプロキシされることがあります。DirectモードではClaude Codeの通信も直接接続になるため、認証やモデル呼び出しが失敗する場合があります。
ターミナルへプロキシを設定する
Clash VergeでSystem Proxyを有効にすると、一般的なデスクトップアプリは自動的にプロキシを利用できます。しかし、ターミナルアプリやCLIツールは、OSのシステムプロキシを参照しないことがあります。その場合は、Clash VergeのMixed PortまたはHTTPポートを環境変数へ明示的に設定します。ポート番号は環境によって異なるため、Clash Vergeの設定画面に表示されている値を使用してください。
macOSやLinuxの一時設定では、次のように実行します。現在のシェルセッションだけに適用されるため、まず安全に動作を確認できます。
export HTTP_PROXY=http://127.0.0.1:7890 export HTTPS_PROXY=http://127.0.0.1:7890 export ALL_PROXY=http://127.0.0.1:7890 export NO_PROXY=127.0.0.1,localhost,::1 # 環境変数を確認 env | grep -i proxy
Windows PowerShellでは、現在のウィンドウに対して次のように設定します。
$env:HTTP_PROXY = "http://127.0.0.1:7890" $env:HTTPS_PROXY = "http://127.0.0.1:7890" $env:ALL_PROXY = "http://127.0.0.1:7890" $env:NO_PROXY = "127.0.0.1,localhost" # 環境変数を確認 Get-ChildItem Env:*proxy*
Claude Codeの起動前に、まず通信自体を確認します。利用可能なURLへ接続して応答が返るか、DNS解決だけでなくHTTPS接続まで成功するかを確認してください。プロキシを設定した後も失敗する場合は、ターミナルを閉じて新しく開き、環境変数が引き継がれているかを確認します。
# HTTPSプロキシ経由で接続を確認 curl -I https://example.com # Claude Codeを起動 claude
設定を永続化する場合は、macOS・Linuxなら~/.zshrcや~/.bashrc、PowerShellならプロファイルへ追加できます。ただし、職場や共有PCではプロキシ設定を無期限に残さないほうが安全です。不要になったら環境変数を削除し、認証トークンやAPIキーをシェル履歴へ残さないよう注意してください。
ログインとモデル呼び出しを検証する
準備ができたら、Clash Vergeを起動した状態でClaude Codeを実行します。ログインフローがブラウザへ移動する場合は、ブラウザの通信とターミナルの通信が別々の設定になっていないか確認してください。ブラウザだけ成功してターミナルが失敗する場合、ターミナルの環境変数が未設定、ポート番号が違う、またはプロキシスキームが合っていない可能性があります。
- Clash Vergeでプロファイルとノードを選択し、コアが起動していることを確認します。
- System Proxyを必要に応じて有効にし、ターミナルへ環境変数を設定します。
- Claude Codeを起動し、公式のログインフローを完了します。
- 小さなプロジェクトでファイル一覧の確認や短いコード修正を依頼します。
- Clash Vergeの接続一覧で、該当通信が想定したルールとノードを通っているか確認します。
接続一覧では、通信先、使用されたルール、プロキシグループ、送受信バイト数を確認できます。想定外のDirect接続になっている場合は、ルールの順番やドメイン分類を見直します。一方、すべての通信がプロキシされている場合は、Gitや社内サービスまで遅くなっていないか確認してください。必要なドメインだけをプロキシする設計のほうが、開発環境全体の安定性を保ちやすくなります。
よくある接続トラブルの切り分け
- サブスク更新に失敗する:URLの期限、入力ミス、サービス側の通信制限を確認します。プロファイルを削除して再登録する前に、現在の設定をバックアップしてください。
- ブラウザは使えるがClaude Codeだけ失敗する:ターミナルの
HTTP_PROXY、HTTPS_PROXY、ALL_PROXYを確認し、Clash Vergeの実際のポート番号と一致させます。 - 認証ページは開くが完了しない:ブラウザとCLIの経路が異なる可能性があります。認証中だけノードを変更せず、Clashの接続ログでリクエストの失敗箇所を確認します。
- 応答が途中で止まる:ノードのパケットロス、接続アイドルタイムアウト、混雑時間帯の帯域不足を疑います。別ノードへ切り替え、短いリクエストと長いリクエストを比較します。
- npmやGitだけ失敗する:Claude Codeではなく、npmやGit独自のプロキシ設定が影響している可能性があります。環境変数と各ツールの個別設定が二重になっていないか確認します。
- ローカル開発サーバーに接続できない:
NO_PROXYにlocalhost、127.0.0.1、必要なローカルドメインを追加します。
証明書エラーが表示された場合、最初から証明書検証を無効にするのは避けてください。Clash Verge側でHTTPS通信を復号する設定を有効にしていないか、OSやNode.jsの証明書ストアが古くないかを先に確認します。skip-cert-verifyのような設定を安易に有効にすると、中間者攻撃を検知できなくなるため、本番利用では推奨できません。
Claude CodeをClash Vergeで使うときの要点は、サブスクリプションを登録するだけではなく、Clash Verge、ブラウザ、ターミナルの通信経路を一つずつ確認することです。まずRuleモードと安定したノードで検証し、System Proxyだけで足りない場合にターミナルの環境変数を追加してください。接続一覧で実際のルールとノードを確認できれば、ログイン失敗やモデル呼び出しのタイムアウトも切り分けやすくなります。設定が整ったら、無理に複雑なルールを増やさず、必要な通信だけを安定して通す構成から始めるのが安全です。
Clash でトラフィックを完全制御
Windows・macOS・Linux・Android・iOS 対応。柔軟なルール、すぐに使えます。