Przejdź do głównej zawartości

Konfiguracja Proxy i VPN

Zainstalowałeś Claude Code, uwierzytelniłeś się i uruchomiłeś pierwszy prompt. Wisi przez trzydzieści sekund, potem wyrzuca ECONNREFUSED. Twoja sieć korporacyjna wymaga, aby cały ruch HTTPS przechodził przez proxy, a Claude Code o tym nie wie. Połowa developerów w Twoim zespole rezygnuje w tym momencie.

Ten przewodnik obejmuje każdy scenariusz sieciowy, z jakim możesz się spotkać w środowisku korporacyjnym, od prostych proxy HTTP po mTLS z niestandardowymi urzędami certyfikacji.

  • Działający Claude Code za proxy HTTP/HTTPS
  • Konfigurację niestandardowych certyfikatów CA dla korporacyjnej inspekcji TLS
  • Rozwiązywanie problemów z VPN dla konfiguracji split-tunnel i full-tunnel
  • Wzorce zmiennych środowiskowych działające we wszystkich narzędziach opartych na Node.js

Claude Code to aplikacja Node.js i respektuje standardowe zmienne środowiskowe proxy.

Okno terminala
# Ustaw dla bieżącej sesji powłoki
export HTTP_PROXY=http://proxy.company.com:8080
export HTTPS_PROXY=http://proxy.company.com:8080
export NO_PROXY=localhost,127.0.0.1,.company.com
# Uruchom Claude Code
claude

Dla trwałej konfiguracji dodaj te zmienne do profilu powłoki (~/.bashrc, ~/.zshrc lub ~/.profile):

Okno terminala
# W ~/.zshrc lub ~/.bashrc
export HTTP_PROXY="http://proxy.company.com:8080"
export HTTPS_PROXY="http://proxy.company.com:8080"
export NO_PROXY="localhost,127.0.0.1,.company.com,.internal"

Jeśli Twoje proxy wymaga uwierzytelniania:

Okno terminala
export HTTPS_PROXY="http://username:password@proxy.company.com:8080"

Dla proxy używających uwierzytelniania NTLM lub Kerberos zazwyczaj potrzebujesz lokalnego narzędzia proxy jak cntlm lub px:

Okno terminala
# Zainstaluj i skonfiguruj cntlm
brew install cntlm # macOS
# Skonfiguruj cntlm z danymi AD
# Następnie skieruj Claude Code na lokalne proxy cntlm
export HTTPS_PROXY="http://localhost:3128"

Wiele sieci korporacyjnych używa proxy z inspekcją TLS z niestandardowymi urzędami certyfikacji. Node.js domyślnie nie używa systemowego magazynu certyfikatów.

Okno terminala
# Wskaż Node.js na korporacyjny pakiet CA
export NODE_EXTRA_CA_CERTS="/path/to/corporate-ca-bundle.pem"

Na macOS eksportuj z Keychain:

Okno terminala
# Eksportuj wszystkie zaufane certyfikaty główne
security find-certificate -a -p /Library/Keychains/System.keychain > /tmp/corporate-cas.pem
security find-certificate -a -p /System/Library/Keychains/SystemRootCertificates.keychain >> /tmp/corporate-cas.pem

Na Linuksie:

Okno terminala
# Połącz certyfikaty systemowe z korporacyjnym
cat /etc/ssl/certs/ca-certificates.crt /path/to/corporate-ca.crt > /tmp/combined-cas.pem
export NODE_EXTRA_CA_CERTS="/tmp/combined-cas.pem"

VPN-y split-tunnel kierują tylko ruch korporacyjny przez VPN. Wywołania API Claude Code idą do api.anthropic.com, które zazwyczaj są kierowane przez publiczny internet:

  • Jeśli api.anthropic.com nie znajduje się w tabeli tras VPN, działa bez konfiguracji proxy
  • Jeśli Twój VPN kieruje cały ruch (full tunnel), potrzebujesz powyższej konfiguracji proxy

VPN-y full-tunnel kierują cały ruch przez infrastrukturę korporacyjną. Prawie na pewno będziesz potrzebować:

  1. Konfiguracji proxy (dla ruchu HTTP/HTTPS)
  2. Niestandardowych certyfikatów CA (dla inspekcji TLS)
  3. Rozdzielczości DNS dla api.anthropic.com przez korporacyjny DNS
Okno terminala
# Sprawdź, czy api.anthropic.com się rozwiązuje
nslookup api.anthropic.com
# Sprawdź, czy możesz dotrzeć do endpointu API
curl -v https://api.anthropic.com/v1/messages 2>&1 | head -30
# Sprawdź bieżące ustawienia proxy
env | grep -i proxy
# Testuj z trybem debug Claude Code
claude --debug "api"

Dla wdrożenia w całej organizacji użyj zarządzanych ustawień, aby wymusić konfigurację proxy:

{
"env": {
"HTTPS_PROXY": "http://proxy.company.com:8080",
"NO_PROXY": "localhost,127.0.0.1,.company.com",
"NODE_EXTRA_CA_CERTS": "/etc/ssl/certs/corporate-ca.pem"
}
}

Wdróż to w lokalizacji zarządzanych ustawień dla Twojej platformy. Zobacz Integracja korporacyjna po szczegóły dotyczące lokalizacji plików zarządzanych ustawień.

ECONNREFUSED po konfiguracji proxy: URL proxy może być nieprawidłowy. Przetestuj za pomocą curl -x http://proxy.company.com:8080 https://api.anthropic.com/. Jeśli curl działa, ale Claude Code nie, sprawdź czy Twoje zmienne środowiskowe są wyeksportowane i widoczne dla procesu Claude Code.

Błędy certyfikatu SSL z proxy: Twoje proxy prawdopodobnie przeprowadza inspekcję TLS i musisz skonfigurować NODE_EXTRA_CA_CERTS. Zdobądź certyfikat CA od swojego działu IT.

Proxy działa dla curl, ale nie dla Claude Code: Node.js obsługuje proxy inaczej niż curl. Upewnij się, że używasz HTTPS_PROXY (nie tylko https_proxy — choć oba powinny działać, wersja wielką literą jest bardziej niezawodna w różnych narzędziach).

Timeout-y za VPN: VPN-y full-tunnel mogą dodać znaczne opóźnienie. Jeśli Claude Code dostaje timeout, sprawdź czy VPN dodaje więcej niż 2-3 sekundy RTT do api.anthropic.com.