Eng SOCKS5-Front kann en HTTP-Proxy als säin nächsten Transport benotzen. Si trëfft als SOCKS-Server vis-à-vis vum Client op a wéi en HTTP CONNECT-Client vis-à-vis vum Parent. Déi zwou Kontroll-Austausche sinn eriwwer, ier den Applikatiounsstroum ufänkt.

D'SOCKS CONNECT-Ufro liwwert schonn den Zilhost oder d'Adress an de Port. Fir en illustrativen HTTP/1.1-Austausch mam Parent:

client → adapter: SOCKS5 CONNECT service.example.net:443
adapter → parent:
    CONNECT service.example.net:443 HTTP/1.1
    Host: service.example.net:443

parent → adapter: HTTP/1.1 200 Connection Established
                 [end of headers]
adapter → client: SOCKS5 success reply

client ↔ adapter ↔ parent ↔ service: application bytes

Iwwersetz d'Resultat op der Grenz

Den Adapter fäerdeg all néideg Authentifikatioun beim Parent a waart op d'CONNECT-Resultat. Eng erfollegräich 2xx-Äntwert setzt den Tunnel zum Parent op. Eréischt duerno soll en déi entspriechend SOCKS-Erfolgsäntwert un de Client ënnen weiderginn.

Wann de Parent d'Operatioun refuséiert, schéck eng definéiert SOCKS-Feeleräntwert a beend dann d'Clientverbindung direkt. SOCKS5 verlaangt dës Zoumaache bannent zéng Sekonnen nodeems de Feeler entdeckt gouf. Behal de HTTP-Status vum Parent als diagnostesch Informatioun fir den Adapter. Dës Statuslinn als Applikatiounsdaten weiderzeginn, géif eng HTTP-Kontrollnoriicht an e Stroum setzen, deem säi Client SOCKS-Kaderung erwaart.

Virun engem erfollegräichen CONNECT-Resultat schwätzt de Parent nach ëmmer HTTP, inklusiv der Kaderung vun all Äntwert op eng Erausfuerderung oder e Feeler. Nom Header-Trennzeechen vun engem erfollegräiche Resultat gëtt d'Verbindung den Tunnel; et gëtt kee HTTP-Äntwertkierper, deen een als éischt konsuméiere muss.

Behal d'Bytes no den Headere

Eng Liese kann d'Enn vun den Headere vum Parent an d'Bytes vum Zil gläichzäiteg enthalen. Behal déi zousätzlech Bytes fir d'Applikatioun ënnen. Server-first-Protokoller kënnen direkt nodeems hir Verbindung opgemaach gëtt, gréissen.

Soubal d'SOCKS-Erfolgsäntwert geschéckt gouf, leed den Applikatiounsstroum a béide Richtunge weider. Den Adapter muss net eng Clientnoriicht mat enger Servernoriicht ofwiesselen, an en muss TLS-Recorde net verstoien, fir se weiderzeleeden. Seng Protokollaarbecht war et, déi zwou Tunnelverhandlungen opzestellen an z'iwwersetzen.

Ähnlech Artikelen