SOCKS5 ist als Protokoll sehr schlank – der Handshake umfasst einige Dutzend Bytes und verursacht nach dem Start der Datenübertragung keinerlei Overhead. Dass es in der Praxis dennoch langsam wirkt, liegt in der Regel nicht am Protokoll, sondern an der Client-Konfiguration.
Die eigentlichen Kosten: Handshake-Runden
Jede Runde kostet eine Round-Trip-Zeit (RTT). Beträgt die RTT zum Proxy 34 ms, nähert sich allein der Verbindungsaufbau 200 ms. Die Wiederverwendung der Verbindung beseitigt diese Kosten.
1. Nutzen Sie Connection Pooling
Hier liegt der größte Gewinn. Für jede Anfrage eine neue SOCKS5-Verbindung zu öffnen bedeutet, die Handshake-Kosten jedes Mal erneut zu bezahlen. Mit Keep-Alive können Sie mehrere Anfragen über denselben Tunnel leiten.
Der häufigste Fehler besteht darin, bei jeder Anfrage ein neues Session oder agent -Objekt zu erzeugen. Das bedeutet, dass das Pooling überhaupt nicht greift.
2. Bringen Sie die Timeouts ins Gleichgewicht
Zu kurze Timeouts brechen gesunde Anfragen ab; zu lange Timeouts halten tote Verbindungen offen. Bei SOCKS5 müssen drei separate Werte eingestellt werden:
| Phase | Empfehlung | Hinweis |
|---|---|---|
| Verbinden (connect) | 10–15 Sek. | Zeit bis zum Erreichen des Proxys |
| Lesen (read) | 25–40 Sek. | Antwortzeit des Ziels |
| Warten im Pool (pool) | 5–10 Sek. | Warten auf eine freie Verbindung |
Wenn der Exit-Punkt ein Heimanschluss oder ein Mobilfunknetz ist, erhöhen Sie diese Werte. Ein Lese-Timeout von 10 Sekunden bricht bei einem Mobile-Proxy einen erheblichen Teil der gesunden Anfragen ab.
3. Steuern Sie die Kosten der DNS-Auflösung
socks5h zu verwenden verhindert Leaks, verlagert die Auflösung aber auf den Proxy. Ist der Resolver des Proxys langsam, erzeugt das zusätzliche Latenz. Es gibt zwei Abwägungen:
- Priorität Datenschutz:
socks5hVerwenden Sie es und nehmen Sie die zusätzliche Latenz in Kauf. - Priorität Geschwindigkeit, Datenschutz zweitrangig: Lösen Sie lokal auf und senden Sie die IP – dabei gelangt der Domainname allerdings aus dem lokalen Netz nach außen.
- Ausgewogen:
socks5hVerwenden Sie es, halten Sie die Verbindungen bei feststehender Ziel-Liste aber lange offen; die Auflösung erfolgt dann nur einmal.
4. Stellen Sie die Parallelität richtig ein
Während der Durchsatz um 32 herum abflacht, steigt die p95-Latenz rasch an. Der optimale Punkt liegt in der Regel dort, wo das Abflachen beginnt; danach wächst lediglich die Warteschlange.
Zur Berechnung der Parallelitaet siehe unseren Beitrag zum Limit gleichzeitiger Verbindungen können Sie nachlesen.
5. Vergessen Sie die Komprimierung nicht
Da SOCKS5 keine Kenntnis vom Inhalt hat, liegt die Entscheidung über die Komprimierung vollständig beim Client. Accept-Encoding: gzip, br Stellen Sie sicher, dass der Header gesendet wird – bei Textinhalten bringt das 65–80 % Ersparnis und wirkt sich unmittelbar auf die Dauer aus.
Messung
time_connect und time_appconnect Die Differenz dazwischen zeigt die Gesamtkosten von SOCKS5-Handshake und TLS-Aufbau.
Für eine umfassendere Messung in unserem Beitrag zum Speedtest und Ping-Test unserem Tool.
Zusammenfassung
SOCKS5 selbst ist ein schnelles Protokoll; Langsamkeit rührt fast immer von fehlender Wiederverwendung der Verbindungen her. Richten Sie das Pooling korrekt ein, passen Sie die Timeouts an den Exit-Typ an, ermitteln Sie die Parallelität durch Messungen und behalten Sie die Komprimierung bei. Diese vier Punkte zusammen steigern die effektive Geschwindigkeit eines typischen SOCKS5-Betriebs spürbar. Für die Produktoptionen unsere SOCKS5-Proxy-Seite können Sie nachlesen.