SOCKS5-verbindingsfoutcodes begrijpen
Bepaal of SOCKS-onderhandeling, authenticatie of het doel mislukte voordat u elke SOCKS-fout als een defecte proxy ziet.
Een SOCKS5-server kan uw TCP-verbinding aannemen en toch de aanvraag om een bestemming te bereiken weigeren. Lees het antwoord in de juiste fase voordat u beslist welk eindpunt faalde.
Eerst wordt de methode gekozen. Authenticatie met gebruikersnaam en wachtwoord heeft, indien gekozen, een eigen resultaat. Pas daarna antwoordt de server op CONNECT of een ander SOCKS-commando. Een bytewaarde uit de ene fase kan niet met de tabel van een andere fase worden uitgelegd.
Aanvraagantwoorden onderscheiden verschillende fouten
| Antwoordwaarde | Betekenis in het SOCKS5-aanvraagantwoord |
|---|---|
| 0x01 | Algemene serverfout. |
| 0x02 | Verbinding niet toegestaan door de regels. |
| 0x03 | Netwerk onbereikbaar. |
| 0x04 | Host onbereikbaar. |
| 0x05 | Verbinding geweigerd. |
| 0x06 | TTL verlopen. |
| 0x07 | Commando niet ondersteund. |
| 0x08 | Adrestype niet ondersteund. |
Een weigering op aanvraagniveau wordt bijvoorbeeld gemeld nadat de SOCKS-dienst is bereikt. Dat is iets anders dan dat uw besturingssysteem de eerste TCP-verbinding met die dienst weigert.
Een adrestypefout kan de weergave als IPv4, IPv6 of hostnaam betreffen. Dat betekent niet automatisch dat het hele eindpunt geen SOCKS5 ondersteunt. Ook zegt een niet-ondersteund UDP-commando niets definitiefs over een aparte TCP CONNECT-aanvraag.
Verzamel de context die de code nuttig maakt
Bewaar bij het schrijven van een foutrapport het proxyadres, commando, doelhost en poort, adresfamilie en DNS-modus bij het resultaat. Beheert u het eindpunt, dan zijn beleidslogs op de server nuttig. Een regelweigering vraagt om controle van de toepasselijke toestemming, niet om een langere verbindingstime-out.
Het antwoord is het verslag van de server, geen volledige onafhankelijke diagnose van het doelnetwerk. Ook de formulering van clients verschilt. Noteer waar beschikbaar de fase en het onderliggende antwoord in plaats van alleen op een korte vertaalde foutmelding te vertrouwen.