Tools hinter Proxy

Allgemein

Die Umgebungsvariablen sollten am besten sowohl in Kleinbuchstaben, als auch in Großbuchstaben hinterlegt werden, da diverse Anwendungen nur auf die eine Schreibweise achten können. Beachte dabei, dass dies kein Standard ist, sondern eine auf das Verhalten von CERNs libwww basierende Konvention, die später von geturl bzw. wget sowie libcurl in abgewandelter Form übernommen wurden. Weitere Details unter [Proxy server | Arch Linux Wiki] , [HttpClient.DefaultProxy Property | Microsoft .NET] sowie [We need to talk: Can we standardize NO_PROXY? | GitLab]

Allgemein ist es sinnvoll, die Umgebungsvariablen http_proxy bzw. https_proxy wie folgt zu setzen:

export http_proxy=http://proxy.example.org:port/
export https_proxy=https://proxy.example.org:port/

Diverse Anwendungen wie cURL, wget, Ruby, Python und Go sollten die Werte hier respektieren. Konkret sieht die Anerkennung der Umgebungsvariablen durch die jeweiligen Tools laut dem o.g. GitLab Artikel wie folgt aus:

curl wget Ruby Python Go
http_proxy
HTTP_PROXY
(warning)

(if REQUEST_METHOD not in env)
https_proxy
HTTPS_PROXY
Case precedence lowercase lowercase only lowercase lowercase Uppercase
Reference source source source source source

cURL

Manuelle Eingabe

Hier verwendet man die Optionen -x, --proxy [protocol://]host[:port]. So sieht der Aufruf der Webseite example.org wie folgt aus:

curl -x "http://user:pwd@127.0.0.1:1234" https://example.org

Permanente Konfiguration

Unter Windows erfolgt diese Konfiguration unter %APPDATA%/_curlrc

Falls jede Anfrage via cURL immer über den Proxy laufen soll, kann auch die Datei ~/.curlrc entsprechend angepasst werden:

proxy="http://user:pwd@127.0.0.1:1234"

Proxy umgehen

curl --noproxy "*" http://example.org

wget

Manuelle Eingabe

Hier verwendet man die Option -e use_proxy=on -e http_proxy=host:port, also:

wget -e use_proxy=on -e http_proxy=host:port https://example.org

Permanente Konfiguration

Auch hier kann man dies unter ~/.wgetrc bzw /etc/wgetrc konfigurieren:

use_proxy=on # depending on wget version, use 'yes' instead
http_proxy=127.0.0.1:1234
https_proxy=127.0.0.1:1234