SOCKS5 კავშირის წარუმატებლობის კოდების წაკითხვა
დაადგინეთ, ჩავარდა SOCKS-ის შეთანხმება, ავთენტიფიკაცია თუ სამიზნემდე წვდომა, სანამ ყველა შეცდომას მკვდარ პროქსის მიაწერთ.
SOCKS5 სერვერმა შეიძლება მიიღოს TCP კავშირი, მაგრამ მაინც უარყოს სამიზნემდე მიღწევის მოთხოვნა. სანამ გადაწყვეტთ, რომელი საბოლოო წერტილი ჩავარდა, პასუხი სწორ ეტაპზე წაიკითხეთ.
ჯერ მეთოდი ირჩევა. მომხმარებლის სახელითა და პაროლით ავთენტიფიკაციას, თუ არჩეულია, საკუთარი შედეგი აქვს. მხოლოდ ამის შემდეგ აბრუნებს სერვერი CONNECT-ის ან სხვა SOCKS ბრძანების პასუხს. ერთი ეტაპის ბაიტის მნიშვნელობა მეორე ეტაპის ცხრილით არ უნდა აიხსნას.
მოთხოვნის პასუხები სხვადასხვა შეცდომას განასხვავებს
| პასუხის მნიშვნელობა | მნიშვნელობა SOCKS5 მოთხოვნის პასუხში |
|---|---|
| 0x01 | სერვერის ზოგადი შეცდომა. |
| 0x02 | კავშირი წესების ნაკრებით დაშვებული არ არის. |
| 0x03 | ქსელი მიუწვდომელია. |
| 0x04 | ჰოსტი მიუწვდომელია. |
| 0x05 | კავშირი უარყოფილია. |
| 0x06 | TTL ვადა ამოიწურა. |
| 0x07 | ბრძანება მხარდაჭერილი არ არის. |
| 0x08 | მისამართის ტიპი მხარდაჭერილი არ არის. |
მაგალითად, მოთხოვნის დონეზე უარყოფა SOCKS სერვისამდე მიღწევის შემდეგ იტყობინება. ეს განსხვავდება ოპერაციული სისტემის მიერ ამ სერვისთან საწყისი TCP კავშირის უარყოფისგან.
მისამართის ტიპის შეცდომა შეიძლება IPv4, IPv6 ან ჰოსტის სახელის წარმოდგენას ეხებოდეს. ეს ავტომატურად არ ნიშნავს, რომ მთელი ბოლო წერტილი SOCKS5-ს არ უჭერს მხარს. ასევე, მხარდაუჭერელი UDP ბრძანება ცალკე TCP CONNECT მოთხოვნაზე საბოლოო დასკვნას არ იძლევა.
შეაგროვეთ კონტექსტი, რომელიც კოდს სასარგებლოს ხდის
შეცდომის ანგარიშის წერისას შედეგთან ერთად შეინახეთ პროქსის მისამართი, ბრძანება, სამიზნე ჰოსტი და პორტი, მისამართების ოჯახი და DNS რეჟიმი. თუ ბოლო წერტილს მართავთ, სერვერის პოლიტიკის ჟურნალები სასარგებლოა. წესებით უარყოფა შესაბამისი ნებართვის შემოწმების მიზეზია და არა კავშირის ტაიმაუტის გაზრდის.
პასუხი სერვერის ანგარიშია და არა სამიზნე ქსელის სრული დამოუკიდებელი დიაგნოზი. კლიენტების ტექსტიც განსხვავდება. როცა შესაძლებელია, ჩაიწერეთ ეტაპი და საფუძვლად არსებული პასუხი, ნაცვლად იმისა, რომ მხოლოდ მოკლე თარგმნილ შეცდომის შეტყობინებას დაეყრდნოთ.