Ինչպես կարդալ 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 ռեժիմը։ Եթե կառավարում եք վերջնակետը, օգտակար են սերվերի քաղաքականության մատյանները։ Կանոններով մերժումը հիմք է կիրառելի թույլտվությունը ստուգելու, ոչ թե կապի ժամանակասահմանը մեծացնելու։
Պատասխանը սերվերի հաղորդումն է, ոչ նպատակակետի ցանցի ամբողջական անկախ ախտորոշումը։ Հաճախորդների ձևակերպումներն էլ են տարբեր։ Եթե հասանելի են, գրանցեք փուլն ու հիմքում ընկած պատասխանը՝ միայն կարճ թարգմանված սխալի հաղորդագրությանը չհենվելով։