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 |
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
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"
curl --noproxy "*" http://example.org
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
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