Een Asio-TCP-Socket mat engem SOCKS5-Listener ze verbannen, schléisst ee Schrëtt of: d'TCP-Verbindung zu deem Listener. Et freet de Proxy net, sech mam endgültege Server ze verbannen. Fir en erlaabte Test géint en ëffentlecht Zil bitt d'SOCKS5-Proxy-Lëscht Kandidaten fir deen éischten TCP-Endpunkt; de Connector muss den Austausch hei drënner awer nach ëmmer duerchféieren.

En SOCKS5-Connector muss duerno den Protokoll-Austausch ausféieren:

  1. Eng Begréissung vun der Versioun 5 schécken, déi d'Authentifikatiounsmethoden oplëscht, déi de Client ënnerstëtzt.
  2. Déi gewielte Method liesen an hirem Authentifikatiouns-Austausch ausféieren, wann et verlaangt gëtt.
  3. CONNECT mat dem Adresstyp, der Adress an dem Port vum Zil an der Netzwerk-Byte-Reiefolleg schécken.
  4. D'Äntwert liesen, hir Versioun an den Resultatscode kontrolléieren, an déi komplett gebonnen Adress a Port vu variabler Längt verbrauchen.
  5. Den etabléierte Stroum un de Protokoll vun der Applikatioun iwwerginn.

En Hëllefsinstrument mam Numm socks5::async_proxy_connect gehéiert zu der SOCKS-Implementatioun, déi dëst Hëllefsinstrument bereetstellt. Et niewen boost::asio ze nennen, mécht et net zu engem Deel vun der TCP-Socket-Schnittstell vum Asio.

TCP-Liesvorgäng kënnen nëmmen en Deel vun enger Äntwert zréckginn. Setzt Liesvorgäng fir déi néideg Bytezuelen zesummen, a wielt duerno déi reschtlech Längt aus dem Adresstyp-Feld. Hält net un, datt all Serveräntwert de festen IPv4-Layout huet.

Fir HTTPS féiert den TLS-Handshake zum Zil aus, nodeems SOCKS CONNECT erfollegräich war, an erhaalt déi SNI an d'Hostnummverifikatioun vum Zil. Eng erfollegräich Proxy-Äntwert eleng authentifizéiert d'Websäit net.

Hält Ofbriechung an Deadline iwwer déi ganz Installatiounssequenz. Wann d'Zäit fir den TCP-Verbindungsopbau ofleeft, bleiwen déi spéider Begréissungs-, Authentifikatiouns- an CONNECT-Austausch soss onbegrenzt.

Ähnlech Artikelen