Ein SOCKS5-Server kann Ihre TCP-Verbindung annehmen und trotzdem die Anfrage zum Ziel ablehnen. Lesen Sie die Antwort in der richtigen Phase, bevor Sie entscheiden, welcher Endpunkt gescheitert ist.

Zuerst erfolgt die Methodenwahl. Eine gewählte Benutzername/Passwort-Authentifizierung hat ihr eigenes Ergebnis. Erst danach antwortet der Server auf CONNECT oder einen anderen SOCKS-Befehl. Ein Bytewert aus einer Phase darf nicht anhand der Tabelle einer anderen Phase ausgelegt werden.

Anfrageantworten kennzeichnen unterschiedliche Fehler

AntwortwertBedeutung in der SOCKS5-Anfrageantwort
0x01Allgemeiner Serverfehler.
0x02Verbindung laut Regelsatz nicht erlaubt.
0x03Netzwerk nicht erreichbar.
0x04Host nicht erreichbar.
0x05Verbindung abgelehnt.
0x06TTL abgelaufen.
0x07Befehl nicht unterstützt.
0x08Adresstyp nicht unterstützt.

Eine Ablehnung auf Anfrageebene wird beispielsweise gemeldet, nachdem der SOCKS-Dienst erreicht wurde. Das unterscheidet sich davon, dass Ihr Betriebssystem die anfängliche TCP-Verbindung zu diesem Dienst ablehnt.

Ein Adresstypfehler kann die Darstellung als IPv4, IPv6 oder Hostname betreffen. Er bedeutet nicht automatisch, dass der gesamte Endpunkt SOCKS5 nicht unterstützt. Ebenso sagt ein nicht unterstützter UDP-Befehl nichts Abschließendes über eine separate TCP-CONNECT-Anfrage aus.

Den Kontext erfassen, der den Code nützlich macht

Notieren Sie beim Schreiben eines Fehlerberichts Proxyadresse, Befehl, Zielhost und Port, Adressfamilie und DNS-Modus zusammen mit dem Ergebnis. Verwalten Sie den Endpunkt, helfen serverseitige Richtlinienlogs. Eine Ablehnung durch den Regelsatz verlangt die Prüfung der geltenden Berechtigung, keine Erhöhung des Verbindungszeitlimits.

Die Antwort ist der Bericht des Servers, keine vollständige unabhängige Diagnose des Zielnetzes. Auch die Formulierungen der Clients variieren. Erfassen Sie nach Möglichkeit Phase und zugrunde liegende Antwort, statt sich nur auf eine kurze übersetzte Fehlermeldung zu verlassen.

Ähnliche Artikel