sirve - proxy java example
SOCKS5 Proxy con SSLSocket (1)
Tengo una aplicación cliente / servidor que se conecta de forma remota a un servidor a través de SSLSocket de Java.
Estoy tratando de implementar un modo opcional que permita las conexiones a través de un proxy SOCKS v5 autenticado.
Intenté utilizar el tutorial relevante, pero no menciona nada sobre SSL específicamente.
Intenté establecer las propiedades de todo el sistema ("socksProxyHost" y "socksProxyPort"), pero parece que no hace nada.
Mi siguiente enfoque fue utilizar el método de fábrica en SSLSocketFactory:
String proxyHost = Config.prefs.get("PROXY_NAME", "localhost");
int proxyPort = Config.prefs.getInt("PROXY_PORT", 1080);
InetSocketAddress proxyAddr = new InetSocketAddress(proxyHost, proxyPort);
Socket underlying = new SSLSocket(new Proxy(Proxy.Type.SOCKS, proxyAddr));
underlying.connect(new InetSocketAddress(getHost(), getPort()));
socket = (SSLSocket) factory.createSocket(
underlying,
getHost(),
getPort(),
true);
Pero el problema con este enfoque es que el método createSocket requiere que el socket subyacente ya esté conectado, y mi servidor no aceptará conexiones que no sean SSL.
¿Cuál es la mejor manera de conectarme a mi servidor remoto usando SOCKS? Además, no tengo ni idea de cómo proporcionar un nombre de usuario / contraseña para SOCKS autenticados en este sistema.
¡Gracias!
String proxyHost = Config.prefs.get("PROXY_NAME", "localhost");
int proxyPort = Config.prefs.getInt("PROXY_PORT", 1080);
InetSocketAddress proxyAddr = new InetSocketAddress(proxyHost, proxyPort);
Socket underlying = new Socket(new Proxy(Proxy.Type.SOCKS, proxyAddr));
underlying.connect(new InetSocketAddress(getHost(), getPort()));
socket = (SSLSocket) factory.createSocket(
underlying,
proxyHost,
proxyPort,
true);