Erklärt
SOCKS5 ist ein Transportschicht-Proxy-Protokoll, das in RFC 1928 definiert ist. Im Gegensatz zu einem HTTP-Proxy, der HTTP-Anfragen und -Antworten versteht und analysiert, arbeitet ein SOCKS5-Proxy auf einer niedrigeren Ebene: Er leitet rohe TCP- oder UDP-Pakete zwischen Ihnen und dem Ziel weiter, ohne die Nutzlast zu prüfen oder zu verändern. Das bedeutet, ein SOCKS5-Proxy kann jedes Protokoll transportieren, das über TCP oder UDP läuft, nicht nur Web-Traffic.
SOCKS5 ist die moderne Version des SOCKS-Proxy-Protokolls und fügt Unterstützung für IPv6, UDP-Weiterleitung und Authentifizierungsmethoden hinzu (keine Authentifizierung, Benutzername/Passwort, GSS-API). Die meisten Residential- und ISP-Proxy-Anbieter stellen ihre Endpunkte sowohl über HTTP als auch über SOCKS5 bereit, sodass Clients das jeweils passende Protokoll wählen können.
Beim Web-Scraping über HTTPS verhalten sich ein HTTP-CONNECT-Proxy und ein SOCKS5-Proxy nahezu identisch - beide tunneln letztlich verschlüsselten TCP-Traffic. Die Unterschiede werden relevant, wenn Ihr Client Nicht-HTTP-Protokolle verwendet (FTP, SMTP, IRC, BitTorrent, Gaming) oder wenn Sie speziell UDP-Unterstützung benötigen.
So funktioniert es
Wenn Ihr Client eine Verbindung zu einem SOCKS5-Proxy herstellt, sendet er einen kurzen Handshake mit der Authentifizierungsmethode und anschließend einen CONNECT-Befehl mit Zielhost und Port. Der Proxy öffnet eine TCP-Verbindung zum Ziel und leitet von diesem Punkt an einfach Bytes zwischen Client und Ziel weiter. Es gibt keine HTTP-Schicht-Awareness - der Proxy liest weder URL, Header noch den Antwort-Body.
Diese Transparenz auf Transportschicht-Ebene ist der Grund, warum SOCKS5 für jedes TCP-basierte Protokoll funktioniert. UDP-Unterstützung verwendet einen separaten UDP-ASSOCIATE-Ablauf, bei dem der Client UDP-Datagramme an den Proxy sendet und der Proxy sie an das Ziel weiterleitet. Die Authentifizierung, falls verwendet, erfolgt einmalig während des initialen Handshakes und gilt für die gesamte Sitzung.