ブラウザーでは接続できるのに、Claude Code のログインや API 通信が失敗する場合、ターミナルの通信がブラウザーとは別の経路を通っている可能性があります。v2rayN のシステムプロキシを有効にしただけでは、CLI がその設定を使うとは限りません。ローカルの HTTP プロキシポートを確認し、シェルの環境変数を設定してから、実際の接続を順に検証しましょう。
Claude Code の CLI 通信を v2rayN 経由にしたい方向けの設定ガイドです。ノードとコアの状態を確認し、v2rayN が待ち受ける HTTP プロキシポートを調べ、HTTP_PROXY と HTTPS_PROXY をターミナルに設定します。curl と Claude Code の両方で経路を確かめ、ログイン失敗やタイムアウトを切り分ける手順も説明します。ポート番号は環境によって異なるため、例をそのまま使わず、実際の設定を確認してください。
1. ブラウザーの接続と CLI の接続を分けて考える
ブラウザーでWebサイトを開けることは、Claude Code の CLI も同じプロキシを使っている証拠にはなりません。ブラウザーはOSのシステムプロキシ設定を参照していても、ターミナルから起動したプログラムは別途設定された環境変数やアプリ独自のプロキシ設定を参照することがあります。v2rayNの画面でシステムプロキシを有効にしても、シェルの環境変数が空のままなら、CLIが直接接続を試みるケースがあります。
通信経路は、ノード、v2rayNのコア、ローカル待ち受けポート、CLIのプロキシ設定という複数の要素で成り立ちます。ノードを追加しただけではCLIの経路は決まりません。また、Claude Codeのブラウザー認証が完了しても、認証後に行うAPI通信まで同じ経路で成功するとは限りません。どの段階で失敗したかを分けて記録すると、ノードの問題と環境変数の設定漏れを見分けやすくなります。
- ブラウザーだけ成功:OSのシステムプロキシは使えていても、CLIの環境変数が設定されていない可能性があります。
- CLIだけ失敗:HTTPプロキシのポート違い、シェルへの設定漏れ、またはCLIの認証状態を確認します。
- 両方とも失敗:まずv2rayNのコアと選択中のノードが正常か、通常のWeb接続も含めて確認します。
2. v2rayNでノードとHTTPポートを確認する
最初にv2rayNを起動し、利用可能なノードを選択して、ブラウザーからHTTPSサイトを開けることを確認します。ノード一覧に表示されているだけでは、コアが正常に接続しているとは限りません。クライアントのログにコアの起動失敗や接続拒否がないことも確認してください。ノードの表示名やプロトコルだけで判断せず、実際の接続結果を基準にします。
次に、v2rayNの「設定」→「パラメータ設定」などから、ローカルプロキシのポートとプロトコルを確認します。メニュー名や項目の配置はバージョンやOSで異なる場合があります。設定画面でHTTP用のポートが独立しているか、HTTPとSOCKSをまとめた混合ポートがあるかを見てください。SOCKS専用ポートをHTTPプロキシとして指定すると、接続できないことがあります。
環境変数の入力例
- HTTP_PROXY
- http://127.0.0.1:10809
- HTTPS_PROXY
- http://127.0.0.1:10809
- 接続先
- 127.0.0.1
- ポート
- 実際のHTTP待ち受け番号
10809は説明用の例です。v2rayNの設定画面で現在のポートを確認して置き換えてください。
設定前に確認する項目
- ノード
- 選択中で接続テストに成功
- コア
- 起動中でエラーがない
- 待ち受け
- HTTPまたはHTTP対応のポート
- アドレス
- 同じ端末なら通常127.0.0.1
v2rayNのシステムプロキシ用ポートと、CLIが使うポートが同じとは限りません。
HTTPプロキシを使う場合、接続先がHTTPSのWebサイトでも、環境変数のURLスキームは通常 http:// です。これはCLIからローカルのHTTPプロキシまでの接続方式を示し、接続先サイトがHTTPになるという意味ではありません。ポート番号を変更したときは、環境変数とv2rayNの待ち受け設定の両方が一致しているかを確かめましょう。
3. ターミナルにプロキシ環境変数を設定する
Claude Codeを起動するターミナルと同じシェルに、HTTP_PROXY と HTTPS_PROXY を設定します。まずは一時設定で接続を試すと、設定ミスを元に戻しやすくなります。以下の例ではポートを10809としています。実際のHTTP待ち受けポートが異なる場合は、必ず数字を置き換えてください。
-
ノードを選ぶ
v2rayNで利用するノードを選択し、コアが起動していることをログで確認します。まずブラウザーなどで通常の接続も試し、ノード自体の問題とCLIの設定を混同しないようにします。
-
ポートを確認
「設定」→「パラメータ設定」などを開き、HTTPまたはHTTP対応のローカルポートを確認します。SOCKS専用ポートではなく、CLIから利用できるポートを選んでください。
-
変数を設定
LinuxやmacOSのシェルでは、以下を入力します。zshやbashでは同じ形式で一時設定できます。ポート番号は実際の値に変更してください。
-
CLIを起動
同じターミナルからClaude Codeを起動します。すでに起動していたプロセスには、後から設定した環境変数が反映されないため、いったん終了してから起動し直します。
export HTTP_PROXY="http://127.0.0.1:10809"
export HTTPS_PROXY="http://127.0.0.1:10809"
claude
PowerShellでは次のように設定します。変数は現在のPowerShellセッションに適用されます。別のウィンドウや、デスクトップのショートカットから起動したCLIには自動では引き継がれないため、設定したシェルから起動してください。
$env:HTTP_PROXY = "http://127.0.0.1:10809"
$env:HTTPS_PROXY = "http://127.0.0.1:10809"
claude
シェルを終了すると一時設定は通常クリアされます。毎回設定するのが不便な場合は、利用しているシェルの設定ファイルや専用の起動スクリプトに登録できますが、共有端末では保存先や適用範囲に注意してください。社内ネットワークなど、プロキシを使わずに接続する宛先がある場合は NO_PROXY の設定が必要になることもあります。まずは不要な例外設定を追加せず、ローカルプロキシ経由の基本動作を確認しましょう。
設定のポイント:CLIを起動したシェルをそろえる
環境変数を入力したターミナルからClaude Codeを起動してください。別のターミナル、GUIランチャー、既存のセッションから起動すると、変数が引き継がれず、設定したつもりでも直接接続になることがあります。
4. curlとClaude Codeで経路を検証する
環境変数を設定したら、まず同じターミナルからローカルプロキシに接続できるかを確認します。次のコマンドはHTTPS接続の応答コードを表示します。ネットワークやTLS接続が成立しても、認証情報なしではAPIの利用権限まで確認できません。応答コードだけを見てログイン成功と判断せず、Claude Codeの操作でも確かめてください。
curl -sS -o /dev/null -w "%{http_code}\n" https://api.anthropic.com/
curlが「Could not resolve proxy」「Connection refused」などを表示した場合は、まず環境変数のURL、ポート番号、v2rayNのHTTP待ち受け状態を見直します。タイムアウトする場合は、コアのログと選択中のノードを確認し、同じターミナルでプロキシ変数が設定されているかも調べます。curlが通信できてもClaude Codeだけが失敗するなら、CLIの認証状態、アカウント設定、起動方法など別の要因を切り分けます。
- 接続拒否:指定したポートで待ち受けていない、ポートが違う、またはHTTP用ではない可能性があります。
- 名前解決やプロキシのエラー:環境変数に余分な引用符や空白がないか、プロキシURLが正しいか確認します。
- HTTPエラー応答:HTTPS通信が相手に届いた後の認証やAPI応答である可能性があります。CLIの認証状態とエラー本文を確認してください。
- Claude Codeだけタイムアウト:起動元シェル、CLIのログ、認証手順、アカウントで利用可能な機能を個別に確認します。
診断ログや環境変数を共有するときは、トークン、APIキー、認証情報、サブスクリプションURLを必ず伏せてください。プロキシURLに認証情報を含めている場合も、コマンド履歴や画面キャプチャに値を残さないようにします。機密情報を含む設定ファイルをそのまま第三者へ送らないことが重要です。
5. ログイン失敗やタイムアウトを切り分ける
Claude Codeの認証は、ブラウザーで行う操作とCLI自身が行う通信の両方に関係する場合があります。ブラウザーで認証画面が開けた後にCLIがエラーになるなら、ブラウザーの表示だけで判断せず、CLIが起動しているターミナルの環境変数とエラー表示を確認してください。認証セッションが古い場合や、別のアカウントでログインしている場合も、通信経路の問題に似た症状になります。
ブラウザーは開くのにCLIのログインが終わりません
Claude Codeを起動したターミナルで HTTP_PROXY と HTTPS_PROXY を確認し、設定後にCLIを起動し直します。ブラウザーとCLIが別の経路を使う場合があるため、ブラウザーだけで接続確認を終えないでください。
接続がタイムアウトします。どこから見ればよいですか
v2rayNのコアが稼働中か、ノードが接続可能か、環境変数のポートがHTTP待ち受けポートと一致しているかの順に確認します。curlも同じ端末から実行し、プロキシ接続自体の結果を比較してください。
ポート番号は10809で固定ですか
固定ではありません。10809は説明用の例です。v2rayNの設定画面で実際のHTTPまたは混合ポートを確認し、その番号を環境変数に指定してください。SOCKS専用ポートを使う場合は、CLIが対応する接続方式かも確認が必要です。
HTTP_PROXYを設定しても直接接続されます
環境変数を設定した同じシェルからClaude Codeを起動したか確認します。プロキシ設定を使わない別の起動方法を避け、既存のCLIプロセスを終了してから再起動してください。変数名の綴りとURL内のポートも見直します。
問題が続く場合は、症状が出るまでに確認した順序と、エラーが起きた時刻、利用OS、v2rayNのバージョン、選択中のコア、HTTP待ち受けポートを記録します。ノードの認証情報や接続先の個人情報は公開せず、必要な箇所だけ伏せたログで切り分けましょう。環境変数を解除して再試行する場合は、プロキシなしでの通信が許可されたネットワークかを先に確認してください。