Skip to main content

Verwendung von Proxyservern mit einem Runner

Sie können Läufer in isolierten Umgebungen so konfigurieren, dass sie einen Proxyserver für die sichere Kommunikation mit GitHubverwenden.

Github-gehostete Runner für Unternehmen

Konfigurieren eines Proxys für Linux- und Windows-Runner

Wenn Ihr Läufer über einen Proxyserver kommunizieren muss, können Sie Proxyeinstellungen mithilfe von Umgebungsvariablen oder Konfigurationen auf Systemebene konfigurieren.

VariableDescriptionExample
https_proxyProxy-URL für HTTPS-Datenverkehr. Sie können bei Bedarf die Standardauthentifizierung einschließen.http://proxy.local
http://192.168.1.1:8080
http://username:password@proxy.local
http_proxyProxy-URL für HTTP-Datenverkehr. Sie können bei Bedarf die Standardauthentifizierung einschließen.http://proxy.local
http://192.168.1.1:8080
http://username:password@proxy.local
no_proxyEine durch Trennzeichen getrennte Liste von Hosts oder IP-Adressen, die den Proxy umgehen sollten. Einige Clients berücksichtigen nur IP-Adressen, wenn Verbindungen direkt mit der IP und nicht mit einem Hostnamen hergestellt werden.example.com
example.com,myserver.local:443,example.org

Die Proxyumgebungsvariablen werden gelesen, wenn die Läuferanwendung gestartet wird. Daher müssen Sie die Umgebungsvariablen festlegen, bevor Sie die Läuferanwendung konfigurieren oder starten. Wenn sich Ihre Proxykonfiguration ändert, müssen Sie die Läuferanwendung neu starten.

Auf Windows-Rechnern sind die Namen der Proxy-Umgebungsvariablen unabhängig von der Groß-/Kleinschreibung. Auf Linux- und macOS-Rechnern wird empfohlen, alle Umgebungsvariablen in Kleinbuchstaben zu schreiben. Wenn eine Umgebungsvariable sowohl in Kleinbuchstaben als auch in Großbuchstaben unter Linux oder macOS vorhanden ist (z. B. https_proxy und HTTPS_PROXY), verwendet die selbstgehostete Runneranwendung die Umgebungsvariable in Kleinbuchstaben.

Die Verbindung zwischen selbstgehosteten Runnern und GitHub verläuft über HTTPS (Port 443).

Beispielkonfigurationen

Hinweis

Um Probleme zu vermeiden, wird empfohlen, bei Umgebungsvariablen unabhängig vom Verhalten des verwendeten Betriebssystems und der verwendeten Shell die Groß-/Kleinschreibung zu beachten.

Linux und macOS

Konfigurieren Sie Proxy-Umgebungsvariablen für Ihren Runner.

Shell
export https_proxy=http://proxy.local:8080
export http_proxy=http://proxy.local:8080
export no_proxy=example.com,localhost,127.0.0.1

Fenster

Unter Windows können Sie Proxyeinstellungen entweder durch Festlegen von Umgebungsvariablen oder mithilfe des Netsh-Befehls konfigurieren. Der netsh-Ansatz gilt für Anwendungen und Dienste, die auf der WinHTTP-API basieren.

Das Festlegen von Umgebungsvariablen ist für Läufer, die private Netzwerke verwenden, weiterhin erforderlich. Ob Sie netsh auch konfigurieren müssen, hängt von den anwendungen ab, die in Ihren Workflows verwendet werden.

Shell
netsh winhttp set advproxy setting-scope=machine settings={\"Proxy\":\"proxy.local:8080\",\"ProxyBypass\":\"168.63.129.16;169.254.169.254\",\"AutoconfigUrl\":\"\",\"AutoDetect\":false} 

Verwenden Sie setting-scope=machine beim Konfigurieren dieser Konfiguration während der benutzerdefinierten Imagegenerierung, um sicherzustellen, dass die Proxyeinstellungen nach neustarten und während der VM-Imageerstellung beibehalten werden.

Beständiges Erstellen von Proxyeinstellungen

Wenn Sie diese Umgebungsvariablen während der benutzerdefinierten Imagegenerierung festlegen, stellen Sie sicher, dass die Konfiguration über Neustarts oder Imageneuerstellungen hinweg beibehalten wird.

Linux und macOS

Schreiben Sie die Variablen in /etc/environment.

 echo 'http_proxy=http://proxy.local' >> /etc/environment

Fenster

Legen Sie die systemweiten Umgebungsvariablen fest.

Shell
[Environment]::SetEnvironmentVariable("http_proxy", "http://proxy.local", "Machine")

Konfigurieren eines Proxys für Azure-Runners

Wenn Ihr Runner in Azure gehostet wird, entweder als selbst gehosteter Runner oder als von GitHub bereitgestellter größerer Runner mit privatem Netzwerk, müssen Sie möglicherweise einen Proxy konfigurieren, um ausgehende Verbindungen zu GitHub-Diensten zuzulassen und gleichzeitig die Netzwerkisolation aufrechtzuerhalten.

Sie sollten Ihrer no_proxy Liste Azure-Metadaten- und Verwaltungs-IPs hinzufügen, um sicherzustellen, dass der Läufer auf erforderliche Azure-Dienste zugreifen kann. Diese Endpunkte ermöglichen Azure-VMs das Abrufen von Konfigurations- und Identitätsinformationen, die für den ordnungsgemäßen Betrieb erforderlich sind.

Die beiden Azure-IPs sind:

Eine .env-Datei zur Proxykonfiguration verwenden

Hinweis

Die Verwendung einer .env Datei zum Festlegen der Proxykonfiguration kann nicht auf einem von GitHub gehosteten Runner erfolgen.

Auf selbstgehosteten Runners können Sie die Proxyeinstellungen konfigurieren, indem Sie die Variablen zu einer .env Datei im Anwendungsverzeichnis des selbstgehosteten Runners hinzufügen (das Verzeichnis, in das Sie die Runner-Software heruntergeladen und entpackt haben). Dieser Ansatz ist nützlich, wenn der Runner so konfiguriert ist, dass er als Dienst unter einem Systemkonto ausgeführt wird. Beim Start des Runners liest er die in .env festgelegten Variablen für die Proxy-Konfiguration.

Beispiel .env-Proxykonfiguration

Shell
https_proxy=http://proxy.local:8080
no_proxy=example.com,myserver.local:443

Festlegen der Proxy-Konfiguration für Docker-Container

Wenn Du Docker-Container-Aktionen oder Service-Container in Deinen Workflows verwendest, musst Du möglicherweise zusätzlich zur Einstellung der oben genannten Umgebungsvariablen auch Docker so konfigurieren, dass er Deinen Proxy-Server verwendet.

Weitere Informationen zur erforderlichen Docker-Konfiguration findest du in der Docker-Dokumentation unter Konfigurieren von Docker zum Verwenden eines Proxyservers.