Տեղադրեք Netty-ի SOCKS բանակցությունը ձեր հավելվածի արձանագրությունից առաջ
Տեղադրեք Netty SOCKS պրոքսի մշակիչը հավելվածի տրաֆիկից առաջ և պահպանեք չլուծված նպատակակետը, երբ պրոքսի կողմի DNS-ը նախատեսված է։
Գոյություն ունեցող Netty bootstrap/pipeline-ի համար, որտեղ SOCKS սերվերը պետք է լուծի նպատակակետը՝
bootstrap.resolver(NoopAddressResolverGroup.INSTANCE);
pipeline.addFirst(
new Socks5ProxyHandler(new InetSocketAddress("127.0.0.1", 1080))
);
bootstrap.connect(
InetSocketAddress.createUnresolved("example.com", 443)
);Պրոքսի վերջնակետը տեղական 1080 պորտն է. չլուծված կապակցման թիրախը example.com:443 է։ Մի՛ օգտագործեք պրոքսի հասցեն երկու դերերի համար և մի՛ լուծեք անունը, մինչև մշակիչը ստանա այն։ Թույլատրված հանրային պրոքսի երթուղու հանրային թիրախների համար SOCKS5 պրոքսիների ցանկը տրամադրում է թեկնածուներ մշակիչի պրոքսի վերջնակետի համար։
Տեղադրեք Socks5ProxyHandler-ը նպատակակետի տրաֆիկը փոխանակող մշակիչներից առաջ։ Սպասեք դրա պրոքսի կապակցման future-ին, ոչ միայն լսողին հասնող ալիքի։ Մերժված մեթոդը կամ նպատակակետը պատկանում է այս կարգավորման փուլին։
HTTPS-ի համար հաջորդ TLS շերտը օգտագործում է նպատակակետի հոսթի անունը, պահանջվող ստուգումը և վստահությունը—ոչ SOCKS վերջնակետի ինքնությունը։ Միայն դրանից հետո է սկսվում HTTP/հավելվածի փոխանակումը։
Հատվածը չի տրամադրում իրադարձությունների ցիկլեր, ալիքի տեսակներ, TLS/HTTP մշակիչներ կամ սովորական սխալների մշակում։ Ընտրեք նույնականացման կարիքներին համապատասխան SOCKS կոնստրուկտորը. HTTP Basic մշակիչը այլ արձանագրություն է։
Օգտագործեք no-op resolver-ը միայն այնտեղ, որտեղ այս ներքևի մշակիչը տիրապետում է հոսթի անվան լուծմանը։ Այլ կապակցումները կարող են պահանջել տեղական որոնում։ Խափանումը ախտորոշելիս առանձին պահեք resolver-ի ելքը, պրոքսի future-ը, TLS-ը և հավելվածի արդյունքը։