Asio TCP-socketin yhdistäminen SOCKS5-kuuntelijaan suorittaa yhden vaiheen: TCP-yhteyden kyseiseen kuuntelijaan. Se ei pyydä proxya yhdistämään lopulliseen palvelimeen. Sallittua julkisen kohteen testiä varten SOCKS5-proxyluettelo tarjoaa ehdokkaita tuolle ensimmäiselle TCP-päätepisteelle; yhdistäjän on silti suoritettava alla oleva vaihto.

SOCKS5-yhdistäjän on sen jälkeen suoritettava protokollan vaihto:

  1. Lähetä version 5 tervehdys, joka luettelee asiakkaan tukemat todennusmenetelmät.
  2. Lue valittu menetelmä ja suorita sen todennusvaihto, kun sitä vaaditaan.
  3. Lähetä CONNECT kohteen osoitetyypin, osoitteen ja portin kanssa verkon tavujärjestyksessä.
  4. Lue vastaus, tarkista sen versio ja tuloskoodi, ja kuluta koko vaihtelevan pituinen sidottu osoite ja portti.
  5. Luovuta muodostettu virta sovelluksen protokollalle.

socks5::async_proxy_connect-niminen apuri kuuluu siihen SOCKS-toteutukseen, joka tarjoaa kyseisen apurin. Sen nimeäminen boost::asio:n vieressä ei tee siitä osaa Asion TCP-socket-rajapinnasta.

TCP-luennat voivat palauttaa vain osan vastauksesta. Kokoa luennot tarvittaville tavumäärille ja valitse sitten jäljellä oleva pituus osoitetyyppikentästä. Älä oleta, että jokaisella palvelimen vastauksella on kiinteä IPv4-asettelu.

HTTPS:ää varten tee kohteen TLS-kättely vasta onnistuneen SOCKS CONNECTin jälkeen, säilyttäen kohteen SNI ja isäntänimen varmennus. Pelkkä onnistunut proxyvastaus ei todenna verkkosivustoa.

Säilytä peruutus ja määräajat koko asennusjakson ajan. Jos TCP-yhteyden muodostuksen aikaraja umpeutuu, myöhemmät tervehdys-, todennus- ja CONNECT-vaihdot jäävät rajoittamattomiksi.

Aiheeseen liittyvät artikkelit