· 応用知識 · 約12分

Claude Codeが接続できない?V2Rayでターミナルのプロキシを設定する方法

Claude Codeをターミナルから使うとタイムアウトする、ログインできないといった場合に確認したい設定を解説します。v2rayNなどのクライアントでローカルプロキシを用意し、シェルのプロキシ環境変数やルーティングを設定する手順、ノード選びと接続トラブルの切り分け方を紹介します。

Claude Codeを起動できても、認証が進まない、接続がタイムアウトする、APIへの通信でエラーになることがあります。ターミナルアプリは、ブラウザーで設定したシステムプロキシを自動で使うとは限りません。まずv2rayNのローカル待ち受けを確認し、ターミナルの環境変数をその接続先に合わせると、原因を切り分けやすくなります。

この記事の要点

Claude Codeのターミナル接続に問題があるときに向けて、v2rayNでHTTPプロキシの待ち受けを確認し、WindowsのPowerShellから環境変数を設定する手順を解説します。設定後の疎通確認、シェルごとの違い、タイムアウトやログインエラーの調べ方も紹介します。ポート番号は環境によって異なるため、例の値をそのまま使わず、v2rayNの設定画面と照合してください。

最初に確認:ブラウザーとターミナルは別の経路

ブラウザーでWebページを開けても、Claude Codeの通信まで同じ経路を通るとは限りません。ブラウザーはシステムプロキシ設定を参照することがありますが、ターミナルから起動したプログラムは、環境変数やアプリ固有の設定を参照する場合があります。v2rayNの画面でシステムプロキシが有効でも、Claude Codeがその設定を使っているとは限りません。

通信経路は、ターミナルの環境変数、PC上のローカルプロキシ、v2rayNのコア、リモートサーバー、Claudeのサービスという順に確認できます。どこで止まっているかを分けると、サブスクリプションを何度も更新したり、関係のない設定を変更したりせずに済みます。

10809
HTTPプロキシポートの例。実際の値はv2rayNで確認
127.0.0.1
同じPC内のプロキシを指定するループバックアドレス
2つの変数
HTTP_PROXYとHTTPS_PROXYを設定して確認

v2rayNでローカルプロキシの待ち受けを確認

ここではWindows版v2rayNを例にします。メニュー名や設定画面は、デスクトップ版・WPF版やリリースによって異なることがあります。ポートの例としてよく使われる値はHTTPが10809、SOCKSが10808ですが、固定値ではありません。利用中の画面でHTTPまたは混合プロキシの待ち受けポートを確かめてください。

  1. ノードを選ぶ

    v2rayNで使用する設定を選び、アクティブサーバーに設定します。設定が一覧に表示されているだけでは、実際にその設定が使われているとは限りません。

  2. コアを起動する

    コアが起動し、ログに起動失敗やポート使用中のエラーがないか確認します。ノードの接続テストが成功していても、ターミナルが使うローカルポートの待ち受けは別に確認してください。

  3. 待ち受けを調べる

    「設定」→「パラメーター設定」などから、ローカルのHTTPまたは混合プロキシのポートを確認します。画面の項目名が異なる場合は、ローカルポートの設定を探してください。

  4. HTTP接続を選ぶ

    ターミナルには、v2rayNが提供するHTTPまたはHTTP接続に対応した混合プロキシを指定します。SOCKS専用のポートをHTTPプロキシとして指定すると接続できないため、種類と番号の両方を記録します。

  5. まず単体で試す

    システムプロキシやTUNの設定は調査中に切り替えず、ローカルの待ち受けと同じポートを使って疎通確認します。設定を変更する場合は一度に1項目だけにします。

PowerShellで環境変数を設定する

Claude Codeを起動するPowerShellのウィンドウで、HTTPプロキシとHTTPSプロキシを設定します。HTTPS通信でも、指定するプロキシURLの方式は通常http://です。これはターミナルとローカルプロキシ間の接続方式を示すもので、接続先WebサービスがHTTP通信になるという意味ではありません。

PowerShellの一時設定

HTTP_PROXY
http://127.0.0.1:10809
HTTPS_PROXY
http://127.0.0.1:10809
適用範囲
現在のPowerShellプロセスと子プロセス

実際のポートが異なる場合は、両方の値を置き換えます。

対象外にする接続先

NO_PROXY
プロキシを使わない宛先の一覧
ローカル指定例
localhost,127.0.0.1
注意点
広い指定は必要な通信まで除外することがある

除外設定は、必要性を確認できる場合だけ追加してください。

次のコマンドは、現在のPowerShellセッションだけに設定します。10809は例です。v2rayNで確認したポートに置き換えてから実行してください。

$env:HTTP_PROXY = "http://127.0.0.1:10809"
$env:HTTPS_PROXY = "http://127.0.0.1:10809"

# 設定内容を確認
$env:HTTP_PROXY
$env:HTTPS_PROXY

# このPowerShellからClaude Codeを起動
claude

環境変数は、プログラムを起動したときのプロセス環境から引き継がれます。すでに開いているターミナルに後から設定しても、別のターミナルで起動済みのClaude Codeには反映されません。設定後は同じPowerShellウィンドウから起動し、別のランチャーやショートカットから起動する場合は、その起動元にも同じ設定が必要かを確認します。

接続確認が終わったら、一時設定を解除できます。永続設定を急いで追加するより、まず一時設定で動作を確かめるほうが、誤設定の影響範囲を小さくできます。

Remove-Item Env:HTTP_PROXY -ErrorAction SilentlyContinue
Remove-Item Env:HTTPS_PROXY -ErrorAction SilentlyContinue

Claude Codeを起動する前に疎通を確認

最初に、ローカルプロキシを経由したHTTPS接続が試せるかを確認します。Windows PowerShellでは、curlが別のコマンドに割り当てられている環境があるため、次の例では実行ファイルをcurl.exeと指定します。ポートを実際の設定に合わせてから実行してください。

curl.exe -I -x http://127.0.0.1:10809 https://api.anthropic.com/

応答が返っても、Claude CodeのログインやAPI利用が完全に成功したことを証明するわけではありません。この確認で調べるのは、指定したローカルプロキシを通じて接続を試みられるかどうかです。認証やアプリ固有の通信は、Claude Codeを起動した後に別途確認します。

疎通確認が成功したら、同じPowerShellからClaude Codeを起動して再現を試します。改善した場合は環境変数が有効だった可能性が高く、改善しない場合は、起動したプロセスがその環境を引き継いでいるか、出力されたエラーがプロキシ接続・認証・サービス側のどの段階を示しているかを調べます。ログを共有する場合は、認証情報やセッションに関する値、個人情報を先に隠してください。

シェルの違いとルーティングの注意点

環境変数の設定方法は、Claude Codeを起動するシェルに合わせる必要があります。PowerShellで設定した値は、すでに開いているGit Bashや別のターミナルには自動で移りません。また、Windowsのシステムプロキシを変更しても、ターミナルから起動したすべてのプログラムが同じ設定を使うとは限りません。

TUNは、システムプロキシを参照しないアプリの通信も取り込む必要がある場合に検討する機能です。ただし、TUNを有効にすると経路やルーティングルールの影響範囲が広がり、問題の切り分けが難しくなる場合があります。Claude Codeのターミナル通信だけを試す段階では、まずHTTPプロキシの環境変数で確認し、必要性が明確になってからTUNを検討してください。

タイムアウトとログインエラーを切り分ける

エラーの文面だけで原因を決めず、発生した段階を確認します。Claude Codeのプロセスが起動しない問題、ローカルプロキシへ接続できない問題、リモートへの通信が完了しない問題、認証が通らない問題では、確認箇所が異なります。発生時刻とエラーの前後を記録すると、v2rayNのコアログと照合しやすくなります。

ブラウザーは使えるのにClaude Codeだけタイムアウトします

Claude Codeを起動する同じPowerShellで$env:HTTPS_PROXYを確認します。次に、設定値のポートとv2rayNのHTTP待ち受けポートが一致するか確かめ、同じターミナルから疎通コマンドを実行してください。

ログイン画面が開くのに認証が完了しません

ログイン画面が表示されたことと、認証処理が完了したことは別です。認証フロー中に通信が止まっていないか確認し、Claude Codeが表示したエラーを記録します。組織のネットワーク制限がある場合は管理者にも確認してください。

SOCKSのポートを環境変数に指定しても動きません

環境変数に設定したURLの方式と、v2rayNの待ち受け方式が一致しているか確認します。まずHTTPまたはHTTP対応の混合プロキシを指定して再試行し、SOCKS専用ポートをHTTPプロキシとして指定しないようにしてください。

PowerShellでは直ったのに別のターミナルでは失敗します

環境変数がPowerShellのプロセス内だけに設定されている可能性があります。失敗するターミナルを開き直し、そのシェルの書式で変数を設定して値を確認した後、同じシェルからClaude Codeを起動してください。

ログにタイムアウトがある場合は、発生時刻、接続先、ローカルポート、選択中のノードを記録し、同じ条件で一度だけ再試行します。サブスクリプションURLや認証トークンを公開せず、エラーの前後にある具体的なメッセージを手掛かりにしてください。設定変更を複数まとめて行うと、改善した理由や新たな問題の原因を特定しにくくなります。

よくある質問

システムプロキシを有効にすれば十分ですか?

必ずしも十分ではありません。ターミナルから起動するプログラムがシステムプロキシを参照するとは限らないため、まずClaude Codeを起動するシェルでHTTP_PROXYとHTTPS_PROXYを設定して確認してください。

プロキシのポートはどこで確認できますか?

v2rayNの「設定」→「パラメーター設定」などから、ローカルのHTTPまたは混合プロキシの待ち受け設定を確認します。画面の名称はバージョンによって異なるため、番号だけでなく接続方式も確認してください。

環境変数を毎回入力する必要がありますか?

まずは一時設定で接続を確認してください。動作が安定し、毎回使う必要があると分かった後で、利用するシェルの設定方法に合わせて保存を検討します。共有PCや管理対象の端末では、永続設定の前に管理方針を確認してください。

v2rayNをダウンロードプラットフォームに合わせてクライアントを選択