Per a un bootstrap/pipeline de Netty existent on el servidor SOCKS ha de resoldre la destinació:

bootstrap.resolver(NoopAddressResolverGroup.INSTANCE);

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

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

El punt final del proxy és el port local 1080; l'objectiu de connexió no resolt és example.com:443. No feu servir l'adreça del proxy per als dos papers ni resoleu el nom abans que el gestor el rebi. Per a objectius públics en una ruta de proxy públic permesa, la llista de proxys SOCKS5 proporciona candidats per al punt final del proxy del gestor.

Col·loqueu Socks5ProxyHandler abans dels gestors que intercanvien trànsit de destinació. Espereu el future de la connexió del proxy, no només un canal que arribi a l'oient. Un mètode o una destinació rebutjats pertanyen a aquesta etapa de configuració.

Per a HTTPS, la capa TLS següent fa servir el nom d'amfitrió de la destinació, la verificació i la confiança necessàries—no la identitat del punt final SOCKS. Només llavors comença l'intercanvi HTTP/aplicació.

El fragment no forneix bucles d'esdeveniments, tipus de canal, gestors TLS/HTTP ni gestió normal d'errors. Trieu el constructor SOCKS que encaixi amb les necessitats d'autenticació; un gestor HTTP Basic és un altre protocol.

Feu servir el resolutor no-op només on aquest gestor posterior posseeix la resolució de noms d'amfitrió. Altres connexions poden necessitar cerca local. Mantingueu separats la sortida del resolutor, el future del proxy, TLS i el resultat de l'aplicació en diagnosticar una fallada.

Articles relacionats