SOCKS und HTTP Proxy im Vergleich: was wählen?

Veröffentlicht:

10 Min. Lesezeit

Acar Diveroli
Autor: Acar Diveroli
Vergleich von HTTP- und SOCKS-Proxy: Briefumschlag-Symbol und mehrspuriger Tunnel

Die erste technische Entscheidung beim Kauf eines Proxys ist meist das Protokoll: HTTP(S) oder SOCKS5? Beide leiten Ihren Traffic über eine andere IP, tun das aber auf unterschiedlichen Ebenen und mit unterschiedlichen Fähigkeiten. Ein HTTP-Proxy erkennt Webanfragen und arbeitet mit ihnen. Ein SOCKS-Proxy transportiert Bytes von einem Ende zum anderen, ohne sich dafür zu interessieren, welche Anwendung was sendet.

In diesem Beitrag erklären wir Schritt für Schritt, wie beide Protokolle funktionieren, die praktischen Unterschiede, Details zu DNS und Verschlüsselung, die Softwareunterstützung und wann welches gewählt werden sollte. Möchten Sie tiefer in die technischen Details von SOCKS5 einsteigen, ist unser Beitrag Was sind SOCKS5-Proxys? eine gute Ergänzung.

Wie funktioniert ein HTTP-Proxy?

Ein HTTP-Proxy spricht, wie der Name schon sagt, das HTTP-Protokoll. Er zeigt in zwei Fällen unterschiedliches Verhalten:

  • Bei unverschlüsselten HTTP-Anfragen sendet der Client die gesamte Anfrage an den Proxy. Der Proxy liest die Anfrage, leitet sie ans Ziel weiter und gibt die Antwort zurück. Dabei kann er Header einsehen, cachen oder verändern.
  • Bei HTTPS-Anfragen sendet der Client dem Proxy zunächst eine CONNECT ziel.com:443-Anfrage. Der Proxy öffnet eine TCP-Verbindung zum Ziel und überträgt danach nur noch verschlüsselte Bytes. Den Inhalt kann er nicht einsehen. Diese Methode ist in RFC 9110 definiert.

Im heutigen, überwiegend auf HTTPS basierenden Web hat ein HTTP-Proxy also nicht Zugriff auf den Inhalt der Website, sondern nur auf die angesteuerte Domain und den Port.

Der Weg einer HTTPS-Anfrage über den Proxy sieht so aus:

  1. Der Client verbindet sich per TCP mit dem Proxy und sendet CONNECT ziel.com:443 HTTP/1.1; falls nötig, authentifiziert er sich mit dem Proxy-Authorization-Header.
  2. Der Proxy verbindet sich mit dem Ziel und gibt dem Client 200 Connection Established zurück.
  3. Der Client führt innerhalb dieser Verbindung mit dem Ziel den TLS-Handshake durch. Die Zertifikatsprüfung erfolgt zwischen Client und Ziel.
  4. Verschlüsselter HTTP-Traffic fließt durch den Tunnel; der Proxy transportiert nur Bytes.

Der Ausdruck "HTTPS-Proxy" bezeichnet meist genau diese Tunneling-Fähigkeit; die Verbindung mit dem Proxy selbst ist meist unverschlüsseltes HTTP. Deshalb beginnen Proxy-Adressen auch für HTTPS-Websites mit http://.

Wie funktioniert ein SOCKS-Proxy?

SOCKS arbeitet unabhängig vom Anwendungsprotokoll. Der Client sagt dem Proxy "verbinde dich mit dieser Adresse, diesem Port"; der SOCKS-Server baut die Verbindung auf und überträgt den Traffic zwischen beiden Seiten unverändert. Ob der Traffic gegenüber Web, Spiel, E-Mail oder Datenbank steht, interessiert ihn nicht.

Die heute genutzte Version SOCKS5 ist in RFC 1928 definiert und fügt gegenüber dem alten SOCKS4 drei wichtige Funktionen hinzu:

  • Authentifizierung (Benutzername und Passwort, RFC 1929),
  • UDP-Unterstützung (für Spiele, Sprachanrufe, DNS-basierten UDP-Traffic),
  • Verbindung per Domainname, also die Möglichkeit, dass die DNS-Auflösung proxyseitig erfolgt; zudem IPv6-Adressunterstützung.

Auch eine SOCKS5-Verbindung wird in mehreren Schritten aufgebaut: Der Client teilt die von ihm unterstützten Authentifizierungsmethoden mit, der Server wählt eine aus, es wird authentifiziert, danach sendet der Client Zieladresse und -port. Nach Verbindungsaufbau fließen rohe Daten in beide Richtungen. Dieser Handshake besteht aus wenigen Bytes; er ist kleiner als HTTP-Header.

Die wesentlichen Unterschiede

KriteriumHTTP(S)-ProxySOCKS5-Proxy
ArbeitsebeneAnwendungsebene (HTTP)Sitzungsebene, protokollunabhängig
Transportierter TrafficWebanfragenJeglicher TCP- und UDP-Traffic
UDP-UnterstützungNeinJa
Zugriff auf Anfrage-HeaderBei unverschlüsseltem HTTP vorhandenNein
Cache und InhaltsfilterungBei unverschlüsseltem HTTP möglichNicht möglich
AuthentifizierungVorhanden (Proxy-Authorization)Vorhanden (Benutzername/Passwort)
DNS-AuflösungBei HTTPS wird der Zieldomainname an den Proxy übergebenKann beim Client oder beim Proxy erfolgen
Handshake-OverheadHTTP-HeaderWenige Bytes
Software-UnterstützungBrowser, HTTP-Bibliotheken, fast jedes ToolBrowser, cURL, Desktop-Anwendungen, Spieleclients; bei manchen Bibliotheken Zusatzpaket nötig
Typische NutzungWeb Scraping, SEO, PreisüberwachungSpiele, Desktop-Anwendungen, Nicht-Web-Protokolle

Warum ist die DNS-Auflösung wichtig?

Einer der am wenigsten bekannten, aber wichtigsten Unterschiede zwischen den beiden Protokollen ist, wo der Domainname in eine IP übersetzt wird.

  • Bei einem HTTP-Proxy übergibt die Anfrage CONNECT ziel.com:443 den Domainnamen an den Proxy; die Auflösung übernimmt der Proxy. An den eigenen DNS-Server des Clients geht keine Anfrage.
  • Bei SOCKS5 gibt es zwei Optionen. Der Client kann den Domainnamen selbst auflösen und die IP senden (bei cURL socks5://), oder die Auflösung dem Proxy überlassen (bei cURL socks5h://). Bei der ersten Option geht die DNS-Anfrage aus Ihrem eigenen Netzwerk hinaus; das bedeutet, dass die von Ihnen angesteuerten Websites vom lokalen Netzwerk sichtbar sind und die Zielseite dem Proxy statt Ihnen einen nicht optimal nahen Server zuweisen kann.

Praktische Regel: Bevorzugen Sie bei SOCKS5 die entfernte Auflösung. In Bibliotheken wird das meist über das Schema socks5h oder eine Option "Remote DNS" eingestellt; manche Tools lösen standardmäßig lokal auf, und dieser Unterschied wird leicht übersehen.

Welches Protokoll ist schneller?

Allgemein gesprochen hat SOCKS5 einen geringeren Overhead, da es weniger Arbeit leistet: Es interpretiert Anfragen nicht, sondern transportiert sie nur. Bei HTTPS-Traffic schließt sich der Unterschied größtenteils, da auch der HTTP-Proxy nach dem CONNECT-Tunnel nur noch Bytes überträgt.

In der Praxis bestimmen eher Standort des Proxy-Servers, IP-Typ und Leitungsqualität die Geschwindigkeit als das Protokoll. Einen dem Zielserver nahen Ausgangspunkt zu wählen, macht einen weit größeren Unterschied als ein Protokollwechsel. Wie sich dieser Unterschied bei Spielen misst, haben wir in Ping und Paketverlust bei Spielen lösen erklärt; die Auswirkung des IP-Typs auf die Geschwindigkeit in Residential- und Datacenter-Proxy im Vergleich.

Gibt es einen Unterschied bei Sicherheit und Privatsphäre?

Keines der beiden Protokolle verschlüsselt den Traffic. Die Verschlüsselung stammt aus dem Protokoll des Zieldienstes: im Web HTTPS, bei Remote-Shells SSH, bei E-Mail TLS. Deshalb ist es falsch zu sagen "SOCKS5 ist sicherer" oder "HTTP-Proxy ist sicherer"; beide transportieren gleichermaßen.

Zwei Punkte unterscheiden sich dennoch:

  • Sichtbarkeit bei unverschlüsseltem HTTP. Verbinden Sie sich mit einem HTTP-Proxy zu einer unverschlüsselten HTTP-Website, kann der Proxy die gesamte Anfrage lesen; SOCKS5 transportiert dieselben Bytes ebenso, interpretiert sie nur nicht. Hinsichtlich Privatsphäre gibt es also keinen Unterschied, in beiden Fällen ist der Traffic unverschlüsselt.
  • DNS-Leck. Wie oben beschrieben, ist bei lokaler Auflösung mit SOCKS5 sichtbar, welche Websites Sie im lokalen Netzwerk ansteuern. Bei einem HTTP-Proxy besteht dieses Risiko nicht, da der Domainname immer an den Proxy übergeben wird.

Interessiert Sie der Verschlüsselungsunterschied zwischen Proxy und VPN, lohnt sich ein Blick in unseren Beitrag Proxy und VPN im Vergleich.

Wann sollte man einen HTTP-Proxy wählen?

  • Web Scraping und Automatisierung. Python-Bibliotheken wie Requests, HTTPX und AIOHTTP unterstützen HTTP-Proxy ohne Zusatzpaket. Die Unterschiede zwischen den Bibliotheken haben wir in unserem Vergleich HTTPX, Requests und AIOHTTP behandelt; die Node.js-Seite in cURL in JavaScript.
  • Wenn Sie nur Web-Traffic leiten. In Browser, SEO-Tools oder Preisüberwachungssoftware bietet HTTP-Proxy die breiteste Kompatibilität.
  • Kommandozeilenwerkzeuge. Für schnelle Tests mit cURL und wget funktioniert HTTP-Proxy direkt. Erinnern wir daran, dass wget keine eingebaute SOCKS-Unterstützung hat; Details in unserem Beitrag Proxy-Nutzung mit wget.
  • Browser-Automatisierung. Puppeteer, Playwright und Selenium unterstützen bei HTTP-Proxy die Authentifizierung mit Benutzername und Passwort; bei SOCKS5 unterstützt Chrome diese Authentifizierung nicht.
  • Unternehmensnetz und Cache. Unverschlüsselten HTTP-Traffic zu cachen oder zu filtern ist nur mit einem HTTP-Proxy möglich.

Die passende Wahl für Web-Traffic sind die Pakete HTTPS-Proxy.

Wann sollte man einen SOCKS5-Proxy wählen?

  • Spiele und Desktop-Anwendungen. Spieleclients sind keine Web-Browser; sie kommunizieren mit eigenen Protokollen und oft per UDP. Diesen Traffic kann nur SOCKS5 transportieren. Die Einrichtung auf Spielseite haben wir in unseren Anleitungen zu Knight Online und Silkroad Online beschrieben.
  • Nicht-Web-Protokolle. SSH, FTP, E-Mail oder eigene TCP-Dienste.
  • Eine Anwendung zum Proxy zwingen. Programme ohne eigene Proxy-Einstellung lassen sich mit Werkzeugen wie Proxifier über SOCKS5 umleiten. Die Einrichtung finden Sie in unserer Proxifier-Anleitung.
  • DNS-Lecks vermeiden. Wenn Sie wollen, dass die Domainauflösung proxyseitig erfolgt (wie beim Schema socks5h:// in cURL).
  • Geringer Overhead. Bei Anwendungen mit vielen kurzen Verbindungen kann der kleine Handshake von SOCKS5 einen messbaren Unterschied machen.

Für diese Szenarien lohnt sich ein Blick auf die Pakete SOCKS5-Proxy.

Software-Unterstützung: was unterstützt welches Tool?

ToolHTTP(S)-ProxySOCKS5-Proxy
Chrome, Firefox, EdgeJaJa (bei Chrome keine Passwortauthentifizierung)
cURLJaJa (socks5://, socks5h://)
wgetJaNein
Python RequestsEingebautMit requests[socks]
Python HTTPXEingebautMit httpx[socks]
Node.js undici / fetchProxyAgentMit Zusatzpaket wie socks-proxy-agent
Puppeteer / PlaywrightJaJa (Passwortauthentifizierung eingeschränkt)
ProxifierJaJa
SSH-ClientsMit ProxyCommandMit ProxyCommand, native Unterstützung
SpieleclientsMeist nichtÜber ein Umleitungstool

Wie die Tabelle zeigt, ist die Unterstützung für HTTP-Proxy weiter verbreitet; SOCKS5 transportiert dort, wo es unterstützt wird, ein breiteres Spektrum an Traffic.

Kann derselbe Proxy beide Protokolle unterstützen?

Ja. Viele Anbieter bieten dieselbe IP sowohl über einen HTTP- als auch über einen SOCKS5-Port an; das Protokoll wird durch das Schema in der Verbindungsadresse bestimmt. Denselben Proxy mit cURL auf zwei Arten auszuprobieren, ist der schnellste Weg, den Unterschied zu sehen:

bash
# Über HTTP-Proxy
curl -x "http://kullanici:parola@pr.proxynet.io:8000" https://httpbin.org/ip

# Über SOCKS5, DNS-Auflösung proxyseitig
curl -x "socks5h://kullanici:parola@pr.proxynet.io:1080" https://httpbin.org/ip

Beide Befehle sollten dieselbe ausgehende IP zurückgeben. Adresse und Port hängen von Ihrem Paket ab; die richtigen Werte finden Sie in Ihrem Kundenpanel. Weitere Proxy-Optionen bei cURL finden Sie in unserem Beitrag Wie nutzt man einen Proxy mit cURL?.

Möchten Sie denselben Vergleich in Python mit Requests durchführen:

python
import requests

HTTP_PROXY = "http://kullanici:parola@pr.proxynet.io:8000"
SOCKS_PROXY = "socks5h://kullanici:parola@pr.proxynet.io:1080"  # pip install "requests[socks]"

for proxy in (HTTP_PROXY, SOCKS_PROXY):
    r = requests.get("https://httpbin.org/ip", proxies={"http": proxy, "https": proxy}, timeout=20)
    print(proxy.split("://")[0], r.json()["origin"])

Entscheidungshilfe

Ihr BedarfEmpfehlung
Web Scraping mit Python oder Node.jsHTTP(S)
Browser-Automatisierung, Proxy mit PasswortauthentifizierungHTTP(S)
SEO-, Preisüberwachungs-, AnzeigenverifizierungstoolsHTTP(S)
Spieleclient, UDP-TrafficSOCKS5
SSH, FTP, E-Mail, eigener TCP-DienstSOCKS5
Desktop-Anwendung ohne Proxy-EinstellungSOCKS5 + Proxifier
DNS-Anfragen sollen proxyseitig bleibenSOCKS5 (entfernte Auflösung) oder HTTP(S)
Download mit wgetHTTP(S)

Häufig gestellte Fragen

Verschlüsselt SOCKS5 den Traffic?

Nein. SOCKS5 transportiert Traffic unverändert. Die Vertraulichkeit der Verbindung stellt die Verschlüsselung des Zieldienstes sicher (zum Beispiel HTTPS oder SSH). Dasselbe gilt für den HTTP-Proxy.

Welches sollte ich im Browser nutzen?

Greifen Sie nur auf Websites zu, funktionieren beide. HTTP-Proxy wird breiter unterstützt und jeder Browser unterstützt die Passwortauthentifizierung; SOCKS5 bietet einen Vorteil, wenn Sie die DNS-Auflösung dem Proxy überlassen wollen. Für profilbasiertes Management auf Browserebene finden Sie in unseren Anleitungen zu SwitchyOmega und Firefox-Proxy-Einstellungen weitere Informationen.

Kann ich in Python SOCKS5 nutzen?

Ja, je nach Bibliothek ist ein Zusatzpaket nötig. Für Requests wird requests[socks], für HTTPX httpx[socks] installiert; anschließend wird in der Proxy-Adresse das Schema socks5:// oder socks5h:// verwendet.

Wird SOCKS4 noch genutzt?

Manche älteren Tools unterstützen es, doch da Authentifizierung, UDP und Domainnamenunterstützung fehlen, wird es bei neuen Setups nicht bevorzugt. Sagt ein Anbieter heute "SOCKS", ist damit SOCKS5 gemeint.

Ist HTTP-Proxy dasselbe wie HTTPS-Proxy?

Im alltäglichen Gebrauch ja: "HTTPS-Proxy" bedeutet einen HTTP-Proxy, der HTTPS-Websites per CONNECT-Tunnel erreichen kann. Technisch gibt es auch eine Form, bei der mit dem Proxy selbst per TLS kommuniziert wird, doch die ist nicht verbreitet und wird von den meisten Clients nicht unterstützt.

Wie erkenne ich, welches Protokoll mein Proxy unterstützt?

Im Panel des Anbieters wird die Portinformation meist je nach Protokoll angegeben; für HTTP und SOCKS5 gibt es unterschiedliche Ports. Sind Sie sich nicht sicher, probieren Sie die beiden obigen cURL-Befehle aus: Der Versuch, sich mit dem falschen Protokoll zu verbinden, führt zu einem Verbindungsfehler oder einer sinnlosen Antwort, das richtige Protokoll gibt die IP zurück.

Fazit

Leiten Sie Web-Traffic, bietet HTTP(S)-Proxy die breiteste Kompatibilität und funktioniert in den meisten Scraping-Tools sofort. Bei Spielen, Desktop-Anwendungen, UDP-Traffic oder Nicht-Web-Protokollen ist SOCKS5 die einzig richtige Wahl; vergessen Sie in diesem Fall nicht, die DNS-Auflösung proxyseitig zu belassen. Den Geschwindigkeitsunterschied bestimmen eher Standort und IP-Typ des Proxys als das Protokoll. Pakete, die beide Protokolle unterstützen, finden Sie in unseren Proxy-Lösungen.

ChatGPT fragenClaude fragen