Esošam Netty bootstrap/pipeline, kur SOCKS serverim jāatrisina galamērķis:

bootstrap.resolver(NoopAddressResolverGroup.INSTANCE);

pipeline.addFirst(
    new Socks5ProxyHandler(new InetSocketAddress("127.0.0.1", 1080))
);

bootstrap.connect(
    InetSocketAddress.createUnresolved("example.com", 443)
);

Starpniekservera galapunkts ir vietējais 1080 ports; neatrisinātais savienojuma mērķis ir example.com:443. Neizmantojiet starpniekservera adresi abām lomām un neatrisiniet nosaukumu pirms apdarinātājs to saņem. Atļautā publiskā starpniekservera maršrutā esošajiem publiskajiem mērķiem SOCKS5 starpniekserveru saraksts nodrošina kandidātus apdarinātāja starpniekservera galapunktam.

Novietojiet Socks5ProxyHandler pirms apdarinātājiem, kas apmaina galamērķa datplūsmu. Gaidiet tā starpniekservera savienojuma future, nevis tikai kanālu, kas sasniedz klausītāju. Noraidīta metode vai galamērķis pieder šim iestatīšanas posmam.

HTTPS gadījumā nākamais TLS slānis izmanto galamērķa resursdatora nosaukumu, nepieciešamo pārbaudi un uzticēšanos—ne SOCKS galapunkta identitāti. Tikai tad sākas HTTP/lietojumprogrammas apmaiņa.

Fragments nenodrošina notikumu cilpas, kanālu tipus, TLS/HTTP apdarinātājus vai parastu kļūdu apstrādi. Izvēlieties autentifikācijas vajadzībām atbilstošu SOCKS konstruktoru; HTTP Basic apdarinātājs ir cits protokols.

Izmantojiet no-op resolver tikai tur, kur šis lejupējais apdarinātājs pārvalda resursdatora nosaukuma atrisināšanu. Citiem savienojumiem var būt nepieciešama vietējā meklēšana. Diagnosticējot kļūmi, turiet atsevišķi resolver izvadi, starpniekservera future, TLS un lietojumprogrammas rezultātu.

Saistītie raksti