Zum Hauptinhalt springen
  1. Braindump/

Linux hinter einem HTTP-Proxy nutzen

2 min
Marcel Ryser
Autor
Marcel Ryser
Softwarearchitekt und Tech-Enthusiast aus Bern

Ein Proxy ist immer eine Qual, aber in Firmennetzen begegnet er dir ständig. Weil jede Anwendung und jeder Desktop Proxies anders verwaltet, wird es schnell nervig. In den nächsten Abschnitten zeige ich alle Orte für Proxy-Einstellungen, die ich bisher gefunden habe 😄

Umgebungsvariablen
#

Wenn du der einzige Nutzer der Maschine bist oder die Einstellungen systemweit setzen willst, gehören diese Variablen in deine /etc/environment:

http_proxy=http://myproxy.server.com:8080/
https_proxy=http://myproxy.server.com:8080/
ftp_proxy=http://myproxy.server.com:8080/
no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"
HTTP_PROXY=http://myproxy.server.com:8080/
HTTPS_PROXY=http://myproxy.server.com:8080/
FTP_PROXY=http://myproxy.server.com:8080/
NO_PROXY="localhost,127.0.0.1,localaddress,.localdomain.com"

Warum in Klein- und Grossbuchstaben? Manche Anwendungen nutzen Kleinbuchstaben, andere Grossbuchstaben – und funktionieren nicht, wenn die Variablen nicht wie erwartet definiert sind.

Willst du die Einstellungen nicht für alle Nutzer, trägst du die Variablen besser in .bashrc, .profile oder .zshrc im Home-Verzeichnis deines Users ein.

Damit die Variablen auch in sudo-Sessions erhalten bleiben, ergänzen wir folgende Zeilen in /etc/sudoers:

# Keep Proxy Params in sudo session
Defaults        env_keep+="http_proxy"
Defaults        env_keep+="HTTP_PROXY"
Defaults        env_keep+="https_proxy"
Defaults        env_keep+="HTTPS_PROXY"
Defaults        env_keep+="ftp_proxy"
Defaults        env_keep+="FTP_PROXY"
Defaults        env_keep+="no_proxy"
Defaults        env_keep+="NO_PROXY"

sonst sind die Variablen in sudo-Sessions nicht gesetzt und du bekommst “Connection refused”-Fehler.

APT
#

Auf Debian/Ubuntu-basierten Distributionen nutzten ältere apt-Versionen einen anderen Weg für Proxy-Einstellungen. Selbst Variablen in /etc/environment werden von älteren apt-get-Versionen nicht verwendet.

Um ältere apt-Versionen mit Proxy zu nutzen, lege eine neue Datei /etc/apt/apt.conf.d/95proxies an:

Acquire::http::proxy "http://myproxy.server.com:8080/";
Acquire::https::proxy "https://myproxy.server.com:8080/";
Acquire::ftp::proxy "ftp://myproxy.server.com:8080/";

GTK3-Programme
#

GTK-3-Programme wie Rhythmbox nutzen eigene Einstellungen, die du so setzt:

gsettings set org.gnome.system.proxy mode 'manual' 
gsettings set org.gnome.system.proxy.http host 'myproxy.server.com'
gsettings set org.gnome.system.proxy.http port 8080

Docker
#

Auf einem Linux-System mit systemd kannst du die systemd-Definition von Docker bearbeiten und die Variablen zum Service hinzufügen:

sudo systemctl edit docker

nun ergänzen:

[Service]
Environment="HTTP_PROXY=http://myproxy.server.com:8080/"
Environment="HTTPS_PROXY=http://myproxy.server.com:8080/"

und je nach gesetztem EDITOR ein :wq oder Ctrl+O, Ctrl+X, dann den Service neu starten:

sudo systemctl restart docker

Update 2. Feb. 2019: Docker hat eine eigene Seite zum Setzen von Proxies: Docker Daemon - HTTP Proxy