HTTP-Proxy und SOCKS5 lösen dieselbe Aufgabe – Ihre Adresse vor dem Server zu verbergen –, doch sie tun dies auf unterschiedlichen Ebenen des Netzwerk-Stacks, und daraus folgt alles Weitere: welchen Traffic sie durchlassen, was sie sehen und verändern können, wie sie sich mit DNS und UDP verhalten und mit welchen Programmen sie überhaupt kompatibel sind. Die Geschwindigkeit spielt entgegen der verbreiteten Meinung hier kaum eine Rolle. Im Folgenden finden Sie eine Analyse beider Protokolle, eine Vergleichstabelle und eine Auswahlregel, die neun von zehn Fällen abdeckt.

Kurzfassung

  • HTTP-Proxy versteht HTTP. Er liest die Anfrage, weiß, wohin Sie gehen, kann Header hinzufügen, Antworten cachen oder eine Adresse sperren. HTTPS leitet er blind über den Befehl CONNECT weiter. Nicht-HTTP-Traffic ist nicht seine Sache.
  • SOCKS5 versteht nichts und will nichts verstehen. Nach einem kurzen Handshake leitet er einfach Bytes in beide Richtungen weiter: TCP beliebiger Protokolle und bei Bedarf UDP. Darin kann alles stecken – Website, E-Mail, Telegram, Spiel, Torrent.
  • Weder der eine noch der andere verschlüsselt den Traffic von sich aus. Der Datenschutz ist Aufgabe des inneren Protokolls (HTTPS, TLS), nicht des Proxys.

Auf welcher Ebene welcher arbeitet

Der HTTP-Proxy lebt auf der Anwendungsebene. Der Client sendet ihm eine gewöhnliche HTTP-Anfrage, nur mit der vollständigen Adresse in der ersten Zeile (GET http://example.com/page HTTP/1.1), der Proxy öffnet selbst die Verbindung zum Server, empfängt die Antwort und gibt sie an den Client weiter. Der gesamte Inhalt läuft im Klartext durch ihn, und er darf ihn verändern.

Bei HTTPS gilt ein anderes Schema: Der Client bittet den Proxy, einen Tunnel mit dem Befehl CONNECT example.com:443 aufzubauen, der Proxy verbindet zwei Sockets und leitet danach nur noch verschlüsselte Bytes weiter. Er sieht den Hostnamen und den Port, aber nicht den Pfad, die Header oder den Request-Body.

SOCKS5 (RFC 1928) liegt tiefer – zwischen Transport und Anwendung. Der Client einigt sich mit dem Proxy auf eine Authentifizierungsmethode, nennt die Zieladresse (IPv4, IPv6 oder Domainname) und den Port, der Proxy öffnet die Verbindung und wird von diesem Moment an zu einem transparenten Rohr. Er weiß nicht, welches Protokoll darin steckt, und arbeitet daher mit jedem. Wenn Sie die Grundlagen auffrischen möchten, beginnen Sie mit dem Artikel darüber, was ein Proxy-Server ist.

Wie ein HTTP-Proxy aufgebaut ist

Was er kann, weil er das Protokoll versteht

  • Caching. Wiederholte Anfragen an dieselbe Ressource erreichen den Server möglicherweise nicht – so funktionieren Unternehmens- und Provider-Proxys.
  • Filterung nach URL. Der Proxy sieht die Adresse und kann sie sperren, Tracker entfernen oder umleiten.
  • Änderung von Headern. Er kann Via, X-Forwarded-For oder Forwarded (RFC 7239) hinzufügen – und damit Ihre echte Adresse verraten. Er kann aber auch Überflüssiges entfernen.
  • Authentifizierung. Login und Passwort werden im Header Proxy-Authorization übertragen, meist im Basic-Schema – also in Base64-Kodierung, ohne Verschlüsselung. Über einen ungesicherten Kanal sind sie sichtbar.

Was er nicht kann

Alles, was nicht HTTP ist. Mail-Protokolle, SSH, Spielserver, Torrent-Clients, VoIP funktionieren entweder gar nicht über einen HTTP-Proxy oder erfordern, dass das Programm die Verbindung in CONNECT einwickeln kann und der Proxy solche Tunnel auf beliebige Ports erlaubt. Viele Proxys erlauben CONNECT nur auf Port 443.

Drei Stufen der Anonymität

Aufgrund der Header werden HTTP-Proxys traditionell in drei Klassen eingeteilt. Ein transparenter Proxy gibt Ihre echte IP im X-Forwarded-For weiter und informiert in Via ehrlich über sich selbst. Ein anonymer verbirgt die Adresse, lässt aber die Proxy-Header stehen – der Server erkennt, dass ein Vermittler davor sitzt. Ein elitärer fügt nichts hinzu und erscheint wie ein gewöhnlicher Client. Bei SOCKS5 gibt es diese Klassifizierung nicht: Er hat keinen Zugriff auf Header und fügt per Definition nichts hinzu.

Wie SOCKS5 aufgebaut ist

Handshake

Die Verbindung beginnt damit, dass der Client die unterstützten Authentifizierungsmethoden auflistet und der Server eine auswählt: ohne Authentifizierung, per Login und Passwort (RFC 1929) oder GSS-API. Danach sendet der Client eine Anfrage mit Befehl, Adresstyp und Port. Es gibt drei Befehle: CONNECT – eine gewöhnliche ausgehende TCP-Verbindung, BIND – eine eingehende Verbindung annehmen (etwa für aktives FTP nötig), UDP ASSOCIATE – eine UDP-Datagramm-Weiterleitung öffnen.

Remote-DNS

Der entscheidende Unterschied zu SOCKS4: Die Zieladresse kann als Domainname übergeben werden, und dann löst der Proxy den Namen auf, nicht Ihr Computer. In curl und Python ist dieser Unterschied im URL-Schema abgebildet: socks5:// löst den Namen lokal auf, socks5h:// auf der Proxy-Seite. Die erste Variante lässt DNS-Anfragen bei Ihrem Provider, die zweite nimmt sie zusammen mit dem Traffic mit. Für Aufgaben, bei denen die Adresse nicht preisgegeben werden soll, braucht man genau socks5h.

UDP

Über UDP ASSOCIATE läuft, wofür TCP nicht geeignet ist: Sprache und Video in Messengern, DNS, ein Teil der Spielprotokolle, QUIC. In der Praxis unterstützen nicht alle Server und nicht alle Clients UDP über SOCKS5, daher sollte man dies vor dem Kauf eines Proxys für eine solche Aufgabe gesondert prüfen.

Passwort ohne Verschlüsselung

Login und Passwort werden bei SOCKS5 (Methode RFC 1929) im Klartext übertragen, genau wie bei HTTP Basic. Der Kanal zum Proxy ist in beiden Fällen ungeschützt; sicher wird der Traffic nur durch TLS innerhalb der Verbindung. Bietet der Anbieter eine Authentifizierung per IP an, ist das nicht weniger zuverlässig und hinterlässt kein Passwort in den Logs der Programme.

Die wichtigsten Unterschiede in einer Tabelle

KriteriumHTTP-ProxySOCKS5
EbeneAnwendungsebene (versteht HTTP)Sitzungsebene (überträgt Bytes)
TrafficHTTP, HTTPS über CONNECTBeliebiges TCP, optional UDP
Sieht InhalteJa bei HTTP, nur Host bei HTTPSNur die Zieladresse
Kann Anfrage verändernJa (Header, Cache, Filter)Nein
DNS-AuflösungAm ProxyAm Proxy (socks5h) oder lokal (socks5)
VerschlüsselungNein (nur bei HTTPS darin)Nein (nur beim inneren Protokoll)
AuthentifizierungProxy-Authorization, BasicLogin und Passwort (RFC 1929), GSS-API, ohne Authentifizierung
Unterstützung in ProgrammenFast überallBreit, aber nicht allgegenwärtig
OverheadParsen der HeaderMinimal

Geschwindigkeit: Warum der Unterschied nicht dort liegt, wo man ihn sucht

SOCKS5 parst keine Header und puffert keine Antworten, spart also theoretisch Mikrosekunden pro Anfrage. Gegenüber der Netzwerklatenz zum Proxy und vom Proxy zum Server ist das nicht messbar. Die tatsächliche Geschwindigkeit bestimmen vier Dinge: die Entfernung zum Proxy-Server und von ihm zum Ziel, der IP-Adresstyp (mobile und residenzielle Kanäle sind langsamer als Datacenter – mehr dazu im Artikel über Proxy-Typen), die Auslastung des konkreten Servers und die Anzahl der Verbindungen, die Sie parallel öffnen. Das Protokoll steht nicht auf dieser Liste.

Der einzige Fall, in dem ein HTTP-Proxy deutlich schneller ist, ist ein cachender Proxy bei wiederkehrendem Content. Der einzige Fall, in dem SOCKS5 deutlich schneller ist, ist Traffic, der über einen HTTP-Proxy gar nicht laufen würde.

Anonymität und Leaks

Ein Adress-Leak über einen Proxy entsteht nicht „wegen des Protokolls“, sondern wegen konkreter Mechanismen, und jeder hat seine eigene Ursache.

  • Header. Ein transparenter HTTP-Proxy gibt Ihre IP im X-Forwarded-For preis. Behebbar durch die Wahl eines elitären Proxys. Bei SOCKS5 gibt es diesen Leak-Kanal nicht.
  • DNS. Wird der Name lokal aufgelöst, sieht Ihr Provider, wohin Sie gehen. HTTP-Proxy und socks5h lösen auf ihrer Seite auf; socks5 nicht.
  • WebRTC. Der Browser kann über STUN die lokale und externe Adresse an jedem Proxy vorbei offenlegen. Das ist eine Eigenschaft des Browsers, nicht des Proxys; behebbar durch Einstellungen oder eine Erweiterung.
  • Traffic am Proxy vorbei. Der Proxy wird pro Anwendung konfiguriert. Alles, was Sie nicht konfiguriert haben – System-Updates, ein anderer Browser, ein Messenger –, geht direkt raus. Soll das gesamte Gerät abgedeckt werden, ist das eine Aufgabe für ein VPN, siehe Proxy vs. VPN und Tor.

Kompatibilität mit Programmen

  • Browser. Chrome und Edge beziehen den Proxy aus den Systemeinstellungen und verstehen beide Typen; Firefox hat eigene Einstellungen und kann „DNS über SOCKS5 proxyen“ per separatem Häkchen.
  • curl. curl -x http://user:pass@host:port für HTTP, curl -x socks5h://user:pass@host:port für SOCKS5 mit Remote-DNS.
  • Python. In requests und httpx funktionieren HTTP-Proxys out of the box, SOCKS5 nach Installation eines zusätzlichen Pakets; das Schema socks5h:// verlagert die Auflösung ebenfalls auf den Proxy.
  • Telegram, Discord, Torrent-Clients, Spiele. In der Regel nur SOCKS5: Ihr Traffic ist nicht HTTP.
  • Antidetect-Browser und Parser. Unterstützen beide; Anbieter mobiler und residenzieller Proxys geben oft denselben Port in beiden Protokollen aus.
  • SSH. ssh -D 1080 user@server startet einen lokalen SOCKS5-Proxy über jeden Server, auf den Sie Zugriff haben – eine praktische Methode, um zu prüfen, wie ein Programm sich mit SOCKS5 verhält.

Wann was wählen

AufgabeWahlWarum
Browser, Arbeit mit WebsitesBeliebig; HTTP häufigerDer gesamte Traffic ist HTTP(S), überall unterstützt
Scraping über eine HTTP-BibliothekHTTP oder socks5hWichtig ist, DNS am Proxy aufzulösen und keine überflüssigen Header zu senden
Messenger, Spiele, Torrents, E-MailSOCKS5Nicht-HTTP-Traffic, manchmal UDP
Viele Accounts in einem Antidetect-BrowserBeliebig; auf die IP achten, nicht aufs ProtokollAnti-Fraud bewertet Adresse und Fingerprint, nicht die Verbindungsart
Unternehmensnetz, Kontrolle und CacheHTTPFilterung und Logging nach URL erforderlich
Vollständige Privatsphäre des GerätsWeder nochDas ist eine Aufgabe für VPN oder Tor
Regel: Hat das Programm ein Feld „HTTP-Proxy“ und geht es nur über HTTP(S) – nehmen Sie HTTP. Ist das Programm nicht web-bezogen oder hat es nur „SOCKS5“ – nehmen Sie SOCKS5 mit Remote-DNS. Über Geschwindigkeit zu streiten ist sinnlos.

Typische Fehler

  1. Vom Proxy eine Verschlüsselung erwarten. Weder HTTP noch SOCKS5 schützen den Traffic bis zum Proxy; nur TLS innerhalb schützt.
  2. socks5:// statt socks5h:// verwenden und dann suchen, woher das DNS „leakt“.
  3. Einen HTTP-Proxy in einem Programm konfigurieren, das nicht über HTTP geht, und dessen Schweigen auf einen „schlechten Proxy“ schieben.
  4. Das Protokoll nach der Geschwindigkeit wählen. Die Geschwindigkeit bestimmen Adresse und Route, und diese lassen sich in einer Minute prüfen – siehe wie man einen Proxy auf Anonymität, Leaks und Geschwindigkeit testet.
  5. Einen elitären HTTP-Proxy für „anonymer“ als SOCKS5 halten. Beide geben die Adresse nicht preis; der Unterschied liegt nur darin, dass SOCKS5 nicht einmal die technische Möglichkeit hat, sie hinzuzufügen.

Fragen und Antworten

Was ist schneller – SOCKS5 oder HTTP-Proxy?

Auf demselben Server ist der Unterschied gegenüber der Netzwerklatenz nicht messbar. Die Geschwindigkeit bestimmen IP-Typ, Entfernung und Serverlast, nicht das Protokoll.

Verschlüsselt SOCKS5 den Traffic?

Nein. SOCKS5 überträgt Bytes unverändert; auch Login und Passwort gehen im Klartext. Sicher wird der Traffic durch TLS innerhalb der Verbindung, etwa HTTPS.

Kann man einen HTTP-Proxy für Telegram oder Torrents verwenden?

In der Regel nicht: Ihr Traffic ist nicht HTTP, und einen Tunnel über CONNECT auf beliebige Ports verbieten die meisten HTTP-Proxys. Für solche Programme braucht man SOCKS5.

Worin unterscheidet sich socks5h von socks5?

Der Buchstabe h bedeutet, dass der Proxy-Server den Domainnamen auflöst. Ohne ihn geht die DNS-Anfrage von Ihrem Computer über Ihren Provider, und die Zieladresse ist für ihn sichtbar.

Welches Protokoll ist anonymer?

Ein elitärer HTTP-Proxy und SOCKS5 geben Ihre Adresse gleichermaßen nicht preis. Ein transparenter HTTP-Proxy verrät sie über Header; bei SOCKS5 gibt es einen solchen Mechanismus nicht. Die übrigen Leaks – DNS, WebRTC, Traffic am Proxy vorbei – hängen nicht vom Protokoll ab.