Asio TCP сокетін SOCKS5 тыңдаушысына қосу бір қадамды аяқтайды: сол тыңдаушыға TCP қосылысын. Ол проксиден соңғы серверге қосылуды талап етпейді. Рұқсат етілген жалпыға ортақ мақсатты тексеру үшін SOCKS5 проксилер тізімі сол бірінші TCP шеткі нүктесіне үміткерлерді ұсынады; қосқыш төмендегі алмасуды орындауы керек.

Содан кейін SOCKS5 қосқышы протокол алмасуын орындауы тиіс:

  1. Клиент қолдайтын аутентификация әдістерін тізіп, 5-нұсқадағы сәлем жіберіңіз.
  2. Таңдалған әдісті оқып, қажет болғанда оның аутентификация алмасуын орындаңыз.
  3. CONNECT-ті мақсаттың мекенжай түрімен, мекенжайымен және желілік байт тәртібіндегі портымен жіберіңіз.
  4. Жауапты оқып, оның нұсқасын және нәтиже кодын тексеріңіз, содан кейін айнымалы ұзындықтағы байланған мекенжай мен портты толық тұтыныңыз.
  5. Орнатылған ағынды қолданба протоколына беріңіз.

socks5::async_proxy_connect деп аталатын көмекші сол көмекшіні ұсынатын SOCKS іске асырылуына жатады. Оны boost::asio жанында атау оны Asio-ның TCP сокет интерфейсінің бөлігі етпейді.

TCP оқулары жауаптың тек бір бөлігін қайтаруы мүмкін. Қажетті байт саны үшін оқуларды біріктіріңіз, содан кейін қалған ұзындықты мекенжай түрі өрісінен таңдаңыз. Әрбір сервер жауабының тіркелген IPv4 орналасуы бар деп ойламаңыз.

HTTPS үшін SOCKS CONNECT сәтті болғаннан кейін мақсаттың TLS қол алысуын орындаңыз, мақсаттың SNI-ін және хост атауын тексеруді сақтай отырып. Тек сәтті прокси жауабы сайтты аутентификацияламайды.

Бүкіл орнату реті бойына болдырмау мен мерзімдерді сақтаңыз. TCP қосылысын орнату уақыты бітсе, кейінгі сәлем, аутентификация және CONNECT алмасулары шектеусіз қалады.

Қатысты мақалалар