Zum Inhalt springen
GProxy
Registrierung
Гайды 6 Min. Lesezeit 38 Aufrufe

Proxy mit Paketmanagern verwenden

Dieser Leitfaden erklärt, wie man Proxy-Einstellungen für gängige Paketmanager wie npm, pip und Composer konfiguriert, um

Python
Proxy mit Paketmanagern verwenden

Um einen Proxy mit Paketmanagern wie npm, pip und Composer zu verwenden, konfigurieren Sie die Proxy-Einstellungen entweder über Umgebungsvariablen (HTTP_PROXY, HTTPS_PROXY), Befehlszeilenargumente oder spezifische Konfigurationsdateien, die für jeden Paketmanager einzigartig sind.

Viele Entwicklungsumgebungen arbeiten hinter Unternehmensfirewalls oder erfordern eine Verkehrsüberwachung, was die Verwendung eines HTTP- oder HTTPS-Proxyservers für ausgehende Verbindungen notwendig macht. Paketmanager, die Abhängigkeiten von externen Registries herunterladen, müssen so konfiguriert werden, dass sie ihre Netzwerkanfragen über solche Proxys leiten, um korrekt zu funktionieren.

Allgemeine Konzepte der Proxy-Konfiguration

Proxyserver können HTTP- und HTTPS-Verkehr abfangen und weiterleiten. Für den Zugriff auf diese Proxys ist oft eine Authentifizierung erforderlich.

Format der Proxy-URL

Das Standardformat für eine Proxy-URL, einschließlich optionaler Authentifizierung, ist:

protocol://[user:password@]host:port

  • protocol: http oder https
  • user:password: Optionale Anmeldeinformationen für die Proxy-Authentifizierung.
  • host: Der Hostname oder die IP-Adresse des Proxyservers.
  • port: Der Port, auf dem der Proxyserver lauscht (z.B. 8080, 3128).

Beispiel: http://user:password@proxy.example.com:8080

Umgebungsvariablen

Die gängigste und oft universell anerkannte Methode zur Konfiguration von Proxys über verschiedene Tools hinweg, einschließlich Paketmanagern, ist die Verwendung von Standard-Umgebungsvariablen.

  • HTTP_PROXY oder http_proxy: Gibt den Proxyserver für HTTP-Anfragen an.
  • HTTPS_PROXY oder https_proxy: Gibt den Proxyserver für HTTPS-Anfragen an.
  • NO_PROXY oder no_proxy: Eine durch Kommas getrennte Liste von Hostnamen, Domains oder IP-Adressen, die den Proxy umgehen sollen. Dies ist entscheidend für den direkten Zugriff auf interne Ressourcen oder lokale Entwicklungsserver.

Diese Variablen sind unter Windows typischerweise nicht zwischen Groß- und Kleinschreibung zu unterscheiden, auf Unix-ähnlichen Systemen jedoch schon. Es ist gängige Praxis, sowohl UPPER_CASE- als auch lower_case-Versionen für maximale Kompatibilität festzulegen.

# Beispiel für Unix-ähnliche Systeme (Linux, macOS)
export HTTP_PROXY="http://user:password@proxy.example.com:8080"
export HTTPS_PROXY="http://user:password@proxy.example.com:8080" # Oft dasselbe wie HTTP_PROXY
export NO_PROXY="localhost,127.0.0.1,.internal.domain.com"

# Für Windows-Eingabeaufforderung
set HTTP_PROXY=http://user:password@proxy.example.com:8080
set HTTPS_PROXY=http://user:password@proxy.example.com:8080
set NO_PROXY=localhost,127.0.0.1,.internal.domain.com

# Für Windows PowerShell
$env:HTTP_PROXY="http://user:password@proxy.example.com:8080"
$env:HTTPS_PROXY="http://user:password@proxy.example.com:8080"
$env:NO_PROXY="localhost,127.0.0.1,.internal.domain.com"

npm (Node Package Manager)

npm kann über sein integriertes Konfigurationssystem oder über Umgebungsvariablen konfiguriert werden.

Konfiguration über npm config

Die bevorzugte Methode für npm ist, Proxy-Einstellungen direkt in seiner Konfiguration festzulegen. Dies speichert die Einstellungen dauerhaft.

# HTTP-Proxy festlegen
npm config set proxy http://user:password@proxy.example.com:8080

# HTTPS-Proxy festlegen (oft dasselbe wie HTTP-Proxy)
npm config set https-proxy http://user:password@proxy.example.com:8080

# Einen Proxy aufheben
npm config rm proxy
npm config rm https-proxy

# Einstellungen überprüfen
npm config get proxy
npm config get https-proxy

Wenn Ihr Proxy keine Authentifizierung erfordert, lassen Sie das Segment user:password@ weg.

SSL-Zertifikatsprobleme

Bei der Verwendung eines HTTPS-Proxys oder einer HTTPS-Registry über einen HTTP-Proxy kann npm auf Probleme bei der SSL-Zertifikatsüberprüfung stoßen. Dies kann auftreten, wenn der Proxy den HTTPS-Verkehr mit seinem eigenen Zertifikat abfängt und neu verschlüsselt, welches von Ihrem System nicht vertraut wird.

Um dies zu beheben, können Sie:
1. Das CA-Zertifikat des Proxys zum Vertrauensspeicher Ihres Systems hinzufügen. Dies ist der empfohlene sichere Ansatz.
2. npm anweisen, eine bestimmte CA-Zertifikatsdatei zu verwenden:
bash npm config set cafile /path/to/proxy/ca-certificate.pem
3. Die strikte SSL-Überprüfung deaktivieren (nicht für die Produktion empfohlen):
bash npm config set strict-ssl false
Dies umgeht die Zertifikatsvalidierung und kann Sie Man-in-the-Middle-Angriffen aussetzen. Nur für temporäres Debugging in kontrollierten Umgebungen verwenden.

Registry-Konfiguration

Wenn Ihre Organisation eine private npm-Registry (z.B. Nexus, Artifactory) verwendet, die direkt oder über einen anderen Proxy zugänglich ist, stellen Sie sicher, dass die registry-Einstellung korrekt ist.

npm config set registry https://my-private-registry.example.com/npm/

pip (Python Package Installer)

pip unterstützt die Proxy-Konfiguration über Befehlszeilen-Flags, Umgebungsvariablen oder eine Konfigurationsdatei.

Befehlszeilen-Flag

Für einen einzelnen pip-Befehl verwenden Sie das --proxy-Flag:

pip install some-package --proxy http://user:password@proxy.example.com:8080

Konfigurationsdatei

Für dauerhafte Proxy-Einstellungen ändern oder erstellen Sie die pip-Konfigurationsdatei.
* Linux/macOS: ~/.config/pip/pip.conf oder ~/.pip/pip.conf
* Windows: %APPDATA%\pip\pip.ini oder %HOME%\pip\pip.ini

Fügen Sie Folgendes zum Abschnitt [global] hinzu:

# ~/.config/pip/pip.conf oder %APPDATA%\pip\pip.ini
[global]
proxy = http://user:password@proxy.example.com:8080

Umgebungsvariablen

pip respektiert die Standard-Umgebungsvariablen HTTP_PROXY, HTTPS_PROXY und NO_PROXY. Wenn diese gesetzt sind, werden sie automatisch verwendet.

export HTTP_PROXY="http://user:password@proxy.example.com:8080"
export HTTPS_PROXY="http://user:password@proxy.example.com:8080"
export NO_PROXY="localhost,127.0.0.1,.internal.domain.com"
pip install some-package

SSL-Zertifikatsprobleme

Ähnlich wie npm kann pip auf SSL-Fehler stoßen.
1. CA-Zertifikat des Proxys zum System-Vertrauensspeicher hinzufügen.
2. Einen vertrauenswürdigen Host für den Index angeben:
ini # ~/.config/pip/pip.conf oder %APPDATA%\pip\pip.ini [global] trusted-host = pypi.org
Dies weist pip an, dem angegebenen Host zu vertrauen, auch wenn die SSL-Validierung für ihn fehlschlägt. Mit Vorsicht verwenden.
3. Ein benutzerdefiniertes CA-Bundle angeben:
ini # ~/.config/pip/pip.conf oder %APPDATA%\pip\pip.ini [global] cert = /path/to/proxy/ca-bundle.pem
Oder über die Befehlszeile: pip install some-package --cert /path/to/proxy/ca-bundle.pem

Private Paket-Indizes

Wenn Sie einen privaten Python-Paketindex (z.B. Artifactory, Nexus) verwenden, konfigurieren Sie die index-url oder extra-index-url:

# ~/.config/pip/pip.conf oder %APPDATA%\pip\pip.ini
[global]
index-url = https://my-private-pypi.example.com/simple/

Composer (PHP Dependency Manager)

Composer verlässt sich stark auf Umgebungsvariablen für die Proxy-Konfiguration und benötigt möglicherweise auch die Proxy-Einstellungen von Git für über Git abgerufene Repositories.

Umgebungsvariablen

Composer verwendet hauptsächlich die Standard-Umgebungsvariablen HTTP_PROXY, HTTPS_PROXY und NO_PROXY.

export HTTP_PROXY="http://user:password@proxy.example.com:8080"
export HTTPS_PROXY="http://user:password@proxy.example.com:8080"
export NO_PROXY="localhost,127.0.0.1,.internal.domain.com"
composer install

Composer-Konfiguration (config.json)

Obwohl Composer keine direkte proxy-Einstellung in seiner config.json für allgemeinen HTTP/HTTPS-Verkehr hat, ist es möglich, Proxy-Einstellungen für spezifische VCS-Repositories zu konfigurieren, wenn diese nicht von Umgebungsvariablen übernommen werden oder wenn verschiedene Proxys benötigt werden.

Zum Beispiel, um einen Proxy für Git zu konfigurieren:

{
    "config": {
        "github-oauth": {
            "github.com": "YOUR_OAUTH_TOKEN"
        }
    }
}

Dies ist keine direkte Proxy-Einstellung, zeigt aber, wo andere netzwerkbezogene Konfigurationen platziert werden könnten. Für die tatsächliche Git-Proxy-Nutzung siehe den nächsten Abschnitt.

Git-Proxy-Konfiguration

Composer ruft Pakete oft direkt von Git-Repositories (z.B. GitHub, GitLab) ab. Wenn Ihr Git-Verkehr über einen Proxy laufen muss, müssen Sie Git selbst konfigurieren.

# HTTP-Proxy für Git festlegen
git config --global http.proxy http://user:password@proxy.example.com:8080

# HTTPS-Proxy für Git festlegen
git config --global https.proxy http://user:password@proxy.example.com:8080

# Aufheben
git config --global --unset http.proxy
git config --global --unset https.proxy

# Überprüfen
git config --global --get http.proxy
git config --global --get https.proxy

Dies ist besonders wichtig, wenn Ihre composer.json vcs-Repositories oder direkte Git-URLs verwendet.

SSL-Zertifikatsprobleme

Composer kann, wie andere Tools, SSL-Probleme haben.
1. CA-Zertifikat des Proxys zum System-Vertrauensspeicher hinzufügen.
2. Git konfigurieren, um die SSL-Überprüfung zu deaktivieren (nicht empfohlen):
bash git config --global http.sslVerify false
Dies sollte ein letzter Ausweg sein und mit äußerster Vorsicht verwendet werden.

Behebung häufiger Proxy-Probleme

  • Falsche Proxy-Adresse/Port: Überprüfen Sie den Hostnamen, die IP-Adresse und den Port. Ein häufiger Fehler ist die Verwendung von HTTP für einen HTTPS-Proxy oder umgekehrt.
  • Authentifizierungsfehler: Stellen Sie sicher, dass Benutzername und Passwort in der Proxy-URL korrekt und URL-kodiert sind, falls sie Sonderzeichen enthalten.
  • SSL-Zertifikatsfehler: Wenn Sie SSL_ERROR_SYSCALL, certificate verify failed oder ähnliche Fehler erhalten, führt Ihr Proxy möglicherweise eine SSL-Abfangung durch. Installieren Sie das Root-CA-Zertifikat des Proxys in den Vertrauensspeicher Ihres Systems oder konfigurieren Sie den Paketmanager so, dass er einem bestimmten CA-Bundle vertraut (wie oben beschrieben).
  • NO_PROXY-Probleme: Wenn interne Dienste immer noch versuchen, über den Proxy zu gehen, überprüfen Sie, ob Ihre NO_PROXY-Einstellung korrekt und umfassend ist. Stellen Sie sicher, dass sie localhost, 127.0.0.1 und alle relevanten internen Domain-Suffixe enthält.
  • Firewall-Blockierung: Bestätigen Sie, dass die Firewall oder die Netzwerksicherheitsgruppen Ihres Computers ausgehende Verbindungen zur IP und zum Port des Proxyservers zulassen.
  • Gemischte HTTP/HTTPS-Konfiguration: Einige Proxys behandeln HTTP und HTTPS unterschiedlich. Stellen Sie sicher, dass Sie sowohl HTTP_PROXY als auch HTTPS_PROXY konfiguriert haben, falls zutreffend, oder deren spezifische Paketmanager-Äquivalente.

Vergleich der Proxy-Konfigurationsmethoden

Feature / Manager npm pip composer
Umgebungsvariablen Ja (HTTP_PROXY, HTTPS_PROXY) Ja (HTTP_PROXY, HTTPS_PROXY) Ja (HTTP_PROXY, HTTPS_PROXY)
Dedizierter Konfigurationsbefehl npm config set proxy Kein direkter Befehl für Proxy Kein direkter Befehl für Proxy
Speicherort der Konfigurationsdatei ~/.npmrc ~/.config/pip/pip.conf / %APPDATA%\pip\pip.ini Keine direkte Proxy-Einstellung in composer.json
Befehlszeilen-Flag Kein direktes Proxy-Flag --proxy Kein direktes Proxy-Flag
Authentifizierung in URL Ja Ja Ja
SSL-Zertifikatshandhabung cafile, strict-ssl cert, trusted-host Verlässt sich auf System-/Git-Konfiguration
Git-Proxy-Abhängigkeit Keine direkte Abhängigkeit Keine direkte Abhängigkeit Ja (über git config)
Registry-URL-Einstellung registry index-url, extra-index-url repositories (in composer.json)
Aktualisiert: 04.03.2026
Zurück zur Kategorie

Testen Sie unsere Proxys

20.000+ Proxys in über 100 Ländern weltweit

support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.