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-ისთვის შეასრულეთ დანიშნულების TLS ხელის ჩამორთმევა SOCKS CONNECT-ის წარმატების შემდეგ, დანიშნულების SNI-ისა და ჰოსტის სახელის შემოწმების შენარჩუნებით. მხოლოდ წარმატებული პროქსის პასუხი ვებსაიტს არ ავთენტიფიცირებს.

შეინარჩუნეთ გაუქმება და ვადები მთელი კონფიგურაციის თანმიმდევრობის განმავლობაში. თუ TCP კავშირის დამყარების დრო ამოიწურება, შემდგომი მისალმების, ავთენტიფიკაციისა და CONNECT გაცვლები უსაზღვრო დარჩება.

დაკავშირებული სტატიები