Jak číst kódy selhání spojení SOCKS5
Zjistěte, zda selhalo vyjednávání SOCKS, ověření nebo přístup k cíli, než každou chybu označíte za nefunkční proxy.
Server SOCKS5 může přijmout TCP spojení, ale přesto odmítnout požadavek na dosažení cíle. Než rozhodnete, který koncový bod selhal, přečtěte odpověď ve správné fázi.
Nejprve se vybírá metoda. Ověření jménem a heslem, pokud je vybráno, má vlastní výsledek. Teprve potom server vrací odpověď na CONNECT nebo jiný příkaz SOCKS. Hodnotu bajtu jedné fáze nelze vykládat podle tabulky jiné fáze.
Odpovědi na požadavky rozlišují chyby
| Hodnota odpovědi | Význam v odpovědi na požadavek SOCKS5 |
|---|---|
| 0x01 | Obecné selhání serveru. |
| 0x02 | Spojení není povoleno sadou pravidel. |
| 0x03 | Síť je nedostupná. |
| 0x04 | Hostitel je nedostupný. |
| 0x05 | Spojení odmítnuto. |
| 0x06 | TTL vypršelo. |
| 0x07 | Příkaz není podporován. |
| 0x08 | Typ adresy není podporován. |
Například odmítnutí na úrovni požadavku se hlásí až po dosažení služby SOCKS. Liší se od toho, když operační systém odmítne počáteční TCP spojení s touto službou.
Chyba typu adresy může souviset s reprezentací IPv4, IPv6 nebo jména hostitele. Neznamená automaticky, že celý koncový bod nepodporuje SOCKS5. Podobně nepodporovaný příkaz UDP nedává konečný závěr o samostatném požadavku TCP CONNECT.
Shromážděte kontext, díky kterému je kód užitečný
Při psaní hlášení chyby uchovejte s výsledkem adresu proxy, příkaz, cílového hostitele a port, rodinu adres a režim DNS. Pokud koncový bod spravujete, pomohou serverové protokoly zásad. Odmítnutí pravidly vyžaduje kontrolu příslušného oprávnění, ne prodloužení časového limitu spojení.
Odpověď je hlášením serveru, nikoli úplnou nezávislou diagnózou cílové sítě. Také formulace klientů se liší. Zaznamenejte fázi a podkladovou odpověď, pokud jsou dostupné, místo spoléhání jen na krátkou přeloženou chybovou zprávu.