Claude Codeでプロキシを設定する必要性
なぜプロキシ設定が必要なのか
多くの企業では、セキュリティ対策としてプロキシサーバーを経由してインターネットに接続しています。
プロキシが必要なケース:
- 企業のファイアウォール配下での開発
- セキュリティポリシーによる直接接続の制限
- 社内ネットワークからの外部API呼び出し
- VPN環境での利用
プロキシ未設定時の症状
プロキシ設定がない場合、以下のエラーが発生することがあります:
Error: connect ETIMEDOUT
Error: Network request failed
Error: Unable to reach Claude API
Claude Codeのプロキシ設定方法
環境変数での設定
最も一般的なプロキシ設定方法は環境変数を使用することです。
Linux/macOS:
# HTTP プロキシ
export HTTP_PROXY=http://proxy.example.com:8080
export HTTPS_PROXY=http://proxy.example.com:8080
# 認証が必要な場合
export HTTP_PROXY=http://username:password@proxy.example.com:8080
export HTTPS_PROXY=http://username:password@proxy.example.com:8080
# プロキシを経由しないホスト
export NO_PROXY=localhost,127.0.0.1,.internal.company.com
Windows(PowerShell):
# 環境変数を設定
$env:HTTP_PROXY = "http://proxy.example.com:8080"
$env:HTTPS_PROXY = "http://proxy.example.com:8080"
$env:NO_PROXY = "localhost,127.0.0.1"
Windows(コマンドプロンプト):
set HTTP_PROXY=http://proxy.example.com:8080
set HTTPS_PROXY=http://proxy.example.com:8080
set NO_PROXY=localhost,127.0.0.1
永続的な設定
シェルの設定ファイルに追加することで、永続的にプロキシ設定を適用できます。
~/.bashrc または ~/.zshrc:
# Claude Code プロキシ設定
export HTTP_PROXY="http://proxy.example.com:8080"
export HTTPS_PROXY="http://proxy.example.com:8080"
export NO_PROXY="localhost,127.0.0.1"
設定後、ターミナルを再起動するか、以下を実行:
source ~/.bashrc # または source ~/.zshrc
npmのプロキシ設定
Claude Codeはnpmパッケージとして配布されているため、npmのプロキシ設定も必要な場合があります。
# npmのプロキシ設定
npm config set proxy http://proxy.example.com:8080
npm config set https-proxy http://proxy.example.com:8080
# 認証付きプロキシ
npm config set proxy http://username:password@proxy.example.com:8080
# 設定確認
npm config list
認証付きプロキシの設定
基本認証
企業プロキシでは認証が必要なことがあります。
# URLに認証情報を含める
export HTTPS_PROXY=http://user:password@proxy.example.com:8080
注意:パスワードに特殊文字が含まれる場合
パスワードに@や:などの特殊文字が含まれる場合は、URLエンコードが必要です:
文字 | エンコード |
|---|---|
@ | %40 |
: | %3A |
# | %23 |
? | %3F |
例:パスワードがp@ss:wordの場合
export HTTPS_PROXY=http://user:p%40ss%3Aword@proxy.example.com:8080
NTLM認証(Windows統合認証)
企業でNTLM認証を使用している場合は、Cntlmなどのプロキシツールが必要になることがあります。
# Cntlmをインストール
brew install cntlm # macOS
apt-get install cntlm # Ubuntu
# Cntlm設定
# /etc/cntlm.conf を編集
Username your_username
Domain COMPANY
Password your_password
Proxy company-proxy.example.com:8080
Listen 127.0.0.1:3128
# Cntlm起動後、ローカルプロキシを使用
export HTTPS_PROXY=http://127.0.0.1:3128
プロキシ設定のトラブルシューティング
接続テスト
プロキシ設定が正しいか確認するには:
# curlでテスト
curl -v https://api.anthropic.com
# プロキシ経由を明示
curl -x http://proxy.example.com:8080 https://api.anthropic.com
よくあるエラーと解決策
1. SSL証明書エラー
企業プロキシがSSL検査を行っている場合:
# 証明書を信頼するディレクトリに追加
# または一時的に(非推奨)
export NODE_TLS_REJECT_UNAUTHORIZED=0
2. プロキシ接続タイムアウト
# タイムアウト値を増やす
npm config set fetch-timeout 60000
3. 認証エラー
パスワードの特殊文字をエスケープしているか確認:
# エンコード確認
python3 -c "import urllib.parse; print(urllib.parse.quote('your_password'))"
プロキシ環境でのMCP設定
MCP(Model Context Protocol)サーバーもプロキシ設定の影響を受けます。
MCP設定ファイル
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"HTTP_PROXY": "http://proxy.example.com:8080",
"HTTPS_PROXY": "http://proxy.example.com:8080"
}
}
}
}
セキュリティ上の注意点
認証情報の管理
やってはいけないこと:
- パスワードをシェルスクリプトにハードコード
- 認証情報をGitリポジトリにコミット
推奨される方法:
# 環境変数ファイルを使用(.envファイル)
# .gitignoreに追加することを忘れずに
# .env.proxy
HTTP_PROXY=http://user:password@proxy.example.com:8080
HTTPS_PROXY=http://user:password@proxy.example.com:8080
# 読み込み
source .env.proxy
プロキシログの注意
企業プロキシを経由すると、通信内容がログに記録される可能性があります。機密情報の取り扱いには注意してください。
プロキシなしで使う代替案
プロキシ設定がうまくいかない場合の代替案:
1. VPN接続
社外ネットワークへのVPN接続が許可されている場合:
# VPN接続後はプロキシ不要になることが多い
unset HTTP_PROXY
unset HTTPS_PROXY
2. リモート開発環境
プロキシ制限のないリモート環境を使用:
- GitHub Codespaces
- AWS Cloud9
- GitPod
3. IT部門への相談
Anthropic APIエンドポイントのホワイトリスト登録を依頼:
api.anthropic.com
まとめ
Claude Codeをプロキシ環境で使用するためのポイント:
- 環境変数でHTTP_PROXY/HTTPS_PROXYを設定
- npm設定でプロキシを構成
- 認証情報は適切にエスケープ
- SSL証明書の問題に注意
- セキュリティを意識した認証情報管理
適切なプロキシ設定を行うことで、企業ネットワーク内でもClaude Codeを快適に使用できます。設定に問題がある場合は、IT部門と連携して解決策を見つけることをおすすめします。