Verwendung von HTTP_PROXY / HTTPS_PROXY Umgebungsvariablen
Die Umgebungsvariablen HTTP_PROXY, HTTPS_PROXY und NO_PROXY sind der schnellste Weg, um den ausgehenden Datenverkehr eines Programms über einen Proxy zu senden. Hier ist, wie sie sich in curl, wget, Python, Node.js und Docker verhalten — und wo sie leise nicht funktionieren.
Wie die Proxy-Umgebungsvariablen funktionieren
HTTP_PROXY, HTTPS_PROXY und NO_PROXY sind eine alte, plattformübergreifende Konvention: Viele Befehlszeilenwerkzeuge und HTTP-Bibliotheken lesen sie beim Start und leiten ausgehende Anfragen über den von Ihnen angegebenen Proxy. Die Wirkung ist einfach – Ihre echte / ursprüngliche IP bleibt verborgen und das Ziel sieht stattdessen die Ausgangsadresse des Proxys.
The naming trips people up. HTTP_PROXY is the proxy used for http:// destination URLs and HTTPS_PROXY for https:// destination URLs — it does not mean "a proxy reached over HTTPS". The scheme inside the value (http:// or socks5h://) is what decides how your client reaches our proxy.
Nicht jedes Werkzeug respektiert diese Variablen, und die, die es tun, sind sich über die Details uneinig:
| Werkzeug | Liest Umgebungsvariablen? | Hinweise |
|---|---|---|
| curl | Ja | kleingeschrieben http_proxy nur für HTTP; beide Schreibweisen für HTTPS |
| wget | Ja | beachtet http_proxy, https_proxy, no_proxy |
| Python requests / urllib | Ja | automatisch; ein pro-Anfrage proxies= Argument überschreibt |
Node.js Kern fetch / http | Nein | benötigt undici ProxyAgent oder global-agent |
| Docker CLI / build | Teilweise | übergeben via --build-arg, -e oder config.json |
Unsere sind Rechenzentrum Proxys (nicht residential), daher können Verbraucher-Websites sie eher als solche kennzeichnen – großartig für APIs, CI und Scraping-Ziele, die Sie kontrollieren, weniger für gesperrte Verbraucherplattformen. Unsere authentifizierten SOCKS5 und HTTP Proxys benötigen einen Benutzernamen und ein Passwort, sodass nichts ohne Ihre Anmeldeinformationen ausgeht. Für immer aktives, geräteübergreifendes Routing verwenden Sie stattdessen das WireGuard VPN; um die wegwerfbare öffentliche Proxyliste oder die preisgesteuerte Nutzung zu testen, siehe Preise. Weitere Rezepte finden Sie in den Anleitungen, und ein vollständiger Vergleich von VPN vs Proxy ist ebenfalls hier.
Setzen Sie die Variablen in Ihrer Shell (curl + wget)
Exportieren Sie einmal, dann gehen gewöhnliche Befehle über den Proxy. Die Authentifizierung erfolgt inline in der URL als USER:PASS. Setzen Sie auch die Kleinbuchstabenform – curl liest nur http_proxy in Kleinbuchstaben für das HTTP-Schema.
# HTTP proxy endpoint (port 3128) with inline auth export HTTP_PROXY="http://USER:PASS@proxy.s4m.online:3128" export HTTPS_PROXY="http://USER:PASS@proxy.s4m.online:3128" # curl and some tools only read the lowercase form — set both export http_proxy="$HTTP_PROXY" export https_proxy="$HTTPS_PROXY" # Never send local / internal traffic through the proxy export NO_PROXY="localhost,127.0.0.1,::1,.internal,169.254.169.254" export no_proxy="$NO_PROXY" # Now normal commands go through the proxy curl https://api.ipify.org # prints the proxy exit IP, not yours wget -qO- https://api.ipify.org # One-off, without exporting anything: curl -x http://USER:PASS@proxy.s4m.online:3128 https://example.com # SOCKS5 (port 1080). socks5h makes DNS resolve AT the proxy, # so your origin never leaks the hostname lookup. export ALL_PROXY="socks5h://USER:PASS@proxy.s4m.online:1080" curl https://api.ipify.org
Python und Node.js
Pythons requests/urllib nehmen die Variablen automatisch auf. Nodes Kern-http und global fetch() tun dies nicht — Sie müssen selbst einen Proxy-Agenten anhängen.
# --- Python: requests, urllib, pip and httpx honor the env vars ---
import requests
print(requests.get("https://api.ipify.org").text) # proxy exit IP
# Override per-request (this ignores the env vars):
proxies = {
"http": "http://USER:PASS@proxy.s4m.online:3128",
"https": "http://USER:PASS@proxy.s4m.online:3128",
}
requests.get("https://api.ipify.org", proxies=proxies)
# SOCKS5 needs the extra: pip install "requests[socks]"
proxies = {"https": "socks5h://USER:PASS@proxy.s4m.online:1080"}
# --- Node.js (>=18): core fetch does NOT read HTTP_PROXY on its own ---
// import { ProxyAgent, setGlobalDispatcher } from "undici";
// setGlobalDispatcher(
// new ProxyAgent("http://USER:PASS@proxy.s4m.online:3128"));
// const r = await fetch("https://api.ipify.org");
// console.log(await r.text()); // proxy exit IP
//
// To make libraries respect the env vars instead:
// npm i global-agent
// GLOBAL_AGENT_HTTP_PROXY=$HTTP_PROXY node -r global-agent/bootstrap app.jsDocker (Build und Laufzeit)
Container erben nicht Ihre Shell-Umgebung. Übergeben Sie die Variablen explizit für Builds und Ausführungen; der Daemon, der Bilder zieht, liest sie aus seiner eigenen Konfigurationsdatei.
# Build-time: forward the proxy into the build
docker build \
--build-arg HTTP_PROXY="http://USER:PASS@proxy.s4m.online:3128" \
--build-arg HTTPS_PROXY="http://USER:PASS@proxy.s4m.online:3128" \
--build-arg NO_PROXY="localhost,127.0.0.1" .
# Runtime: inject into the running container
docker run --rm \
-e HTTP_PROXY="http://USER:PASS@proxy.s4m.online:3128" \
-e HTTPS_PROXY="http://USER:PASS@proxy.s4m.online:3128" \
-e NO_PROXY="localhost,127.0.0.1" \
curlimages/curl https://api.ipify.org
# The Docker daemon itself (image pulls) reads ~/.docker/config.json:
# { "proxies": { "default": {
# "httpProxy": "http://USER:PASS@proxy.s4m.online:3128",
# "httpsProxy": "http://USER:PASS@proxy.s4m.online:3128",
# "noProxy": "localhost,127.0.0.1" } } }Wichtige Punkte, die es wert sind, gewusst zu werden
Prozentkodieren Sie Anmeldeinformationen
Sonderzeichen in USER:PASS unterbrechen die URL. Kodieren Sie sie: @ wird zu %40, : wird zu %3A, / wird zu %2F, # wird zu %23. Andernfalls schneidet der Parser den Wert an der falschen Stelle ab.
HTTPS_PROXY zielt auf https:// URLs ab
Es wählt den Proxy für HTTPS-Ziel-URLs aus — nicht einen über HTTPS erreichbaren Proxy. Das Schema im Wert (http:// oder socks5h://) bestimmt, wie Sie sich mit unserem Proxy verbinden.
NO_PROXY ist wählerisch
Komma-getrennt, keine Leerzeichen, suffix-matched (.example.com). CIDR-Bereiche und das *-Wildcard werden von einigen Tools unterstützt und von anderen ignoriert, also testen Sie lieber, als anzunehmen.
socks5h vs socks5
Mit socks5:// löst Ihr Computer DNS lokal auf und nur die TCP-Verbindung wird über den Proxy geleitet. Verwenden Sie socks5h://, damit die Hostnamenauflösung ebenfalls am Proxy erfolgt und DNS von Ihrem Ursprung ferngehalten wird.
Anmeldeinformationen sind lokal sichtbar
Umgebungsvariablen erscheinen in der ps-Ausgabe, der Shell-Historie und den CI-Protokollen. Verwenden Sie eine pro-Konto-Proxy-Anmeldeinformation, die Sie rotieren können, und bevorzugen Sie geheime Speicher anstelle von Commitments in einer Dockerfile oder Pipeline.
Nicht jeder Client befolgt sie
Die Kern-http- und Fetch-Funktionen des Knotens sowie einige SDKs ignorieren diese Variablen vollständig. Bestätigen Sie immer mit einem IP-Echo wie api.ipify.org, dass der Verkehr tatsächlich über den Proxy-Ausgang und nicht Ihre echte IP gegangen ist.
Fragen, beantwortet
Warum ignoriert curl HTTP_PROXY, respektiert aber http_proxy?
Für das HTTP-Schema liest curl absichtlich nur den Kleinbuchstaben http_proxy. Der Großbuchstabe HTTP_PROXY wurde vor Jahren deaktiviert, da CGI-Skripte eine HTTP_*-Umgebungsvariable von Client-Headern erhalten, die eine Proxy-Einstellung übernehmen könnte. Für HTTPS und NO_PROXY liest curl beide Fälle. Die sichere Gewohnheit ist, sowohl die Groß- als auch die Kleinschreibung zu exportieren.
Was ist der Unterschied zwischen HTTPS_PROXY und 'einem Proxy über HTTPS'?
HTTPS_PROXY wählt aus, welcher Proxy Anfragen an https:// Ziel-URLs bearbeitet. Es sagt nichts darüber aus, wie Sie sich mit dem Proxy selbst verbinden — das wird durch das Schema im Wert festgelegt. http://proxy.s4m.online:3128 erreicht unseren HTTP-Proxy im Klartext CONNECT; socks5h://proxy.s4m.online:1080 erreicht den SOCKS5-Endpunkt. Ihr tatsächlicher Payload zu einer https-Seite bleibt end-to-end TLS-verschlüsselt.
Kann ich eine SOCKS5-URL in HTTP_PROXY einfügen?
curl akzeptiert socks5:// und socks5h:// in der Proxy-URL, aber viele andere Tools tun dies nicht. Zur Portabilität verwenden Sie ALL_PROXY für SOCKS5 oder die eigene SOCKS-Option der Bibliothek. Bevorzugen Sie socks5h://, damit DNS bei proxy.s4m.online:1080 aufgelöst wird, anstatt Suchanfragen von Ihrem Ursprung zu leaken.
Sind das Wohnproxys?
Nein. s4m-Proxys sind authentifizierte Datacenter-SOCKS5- und HTTP-Proxys, die nach Verbrauch abgerechnet werden. Datacenter-IPs sind schnell und zuverlässig für APIs, CI und Scraping-Ziele, die Sie kontrollieren, aber einige Verbraucher-Websites erkennen und blockieren Datacenter-Bereiche leichter als Wohnbereiche. Wir verkaufen oder beanspruchen keine Wohn-IPs.
Werden diese Variablen meine echte IP überall verbergen?
Nur für Programme, die sie tatsächlich lesen. Nodes Kern-http, globales Fetch, bestimmte SDKs und jede App, die rohe Sockets öffnet, umgehen den Proxy und legen Ihre echte IP offen. Überprüfen Sie nach der Konfiguration mit einem IP-Echo wie api.ipify.org oder verwenden Sie unser WireGuard-VPN, wenn Sie jeden Prozess auf dem Gerät routen müssen.
Leite deine Anfragen über s4m
Authentifizierte SOCKS5- und HTTP-Rechenzentrums-Proxys, gemessen nach Nutzung, plus Flatrate WireGuard VPN. Keine Protokolle aus Design, RAM-zuerst, anonyme Konten. Fügen Sie jederzeit eine dedizierte persönliche IP hinzu, wenn Sie einen statischen Ausgang benötigen.
Menschen fanden diese Seite durch die Suche nach
- verwendung von HTTP_PROXY / HTTPS_PROXY umgebungsvariablen
- openvpn Einstellungen
- ist openvpn sicher
- openvpn
- ist Proxy-Authentifizierung sicher
- funktionierendes kostenlose Proxy-Liste
- was ist ein transparenter proxy
- VPN für Remote-Arbeit
- wie man VPN-Kill-Switch konfiguriert
- Puppeteer-Proxy-Setup mit authentifizierung
- HTTP-Proxy
- Was ist Proxy für Scraping
Echte Suchphrasen, auf die diese Seite antwortet — die verlinkten öffnen die Seite, die sie ausführlich behandelt.