4

Java の SSLSocket 経由でサーバーにリモート接続するクライアント/サーバー アプリケーションがあります。

認証済みの SOCKS v5 プロキシを介した接続を可能にするオプション モードを実装しようとしています。

関連するチュートリアルを使用してみましたが、SSL について具体的には何も言及されていません。

システム全体のプロパティ (「socksProxyHost」と「socksProxyPort」) を設定しようとしましたが、何もしないようです。

私の次のアプローチは、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);

しかし、このアプローチの問題点は、createSocket メソッドでは基礎となるソケットが既に接続されている必要があり、サーバーが非 SSL 接続を受け入れないことです。

SOCKS を使用してリモート サーバーに接続する最良の方法は何ですか? また、このシステムで認証されたSOCKSのユーザー名/パスワードを提供する方法がほとんどわかりません。

ありがとう!

4

1 に答える 1

8
        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);
于 2011-09-21T19:23:10.483 に答える