2017-09-21 9 views
0

基本情報:
SOCKSプロキシ経由でターゲットに接続するJavaアプリケーションを取得しようとしています。プロキシ設定を構成する方法を知る上で、thisが見つかりました。重要なのは、ソースコードを変更してプロキシの使用方法を設定できないためです。ただし、アプリケーションはプロキシ経由で接続しませんでした。Ubuntu 16.04でJVMとSocksProxyの設定が機能しない

詳細
私は正確に一つのmainメソッドを持っており、これを行い、これをテストするための小型のカスタムクラス、使用しています:次に

public static void main(String... strings) throws URISyntaxException, IOException { 
    URL url = new URI("http", null, "localhost", 9998, null, null, null).toURL(); 
    System.out.println("opening connection to " + url.toString()); 
    URLConnection c = url.openConnection(); 
    System.out.println("connecting"); 
    c.connect(); 
    System.out.println(c.getContentLength()); 
    System.out.println(c.getContentType()); 
} 

を、私はjava <properties> <classname>を使用してそのクラスを開始します。私はこれまで(シングルとの組み合わせ)試してみました プロパティ:

  1. socksPropertyHost=localhost
  2. socksPropertyPort=9999
  3. http.proxySet=true
  4. http.proxyHost=localhost
  5. http.proxyPort=9999
  6. https.proxySet=true
  7. https.proxyHost=localhost
  8. https.proxyPort=9999
  9. proxySet=true
  10. proxyHost=localhost
  11. proxyPort=9999
  12. java.net.useSystemProxies=true

同様に、私は、コマンドラインでこれらを追加して、私の環境に次に加え、jre/lib/net.propertiesに値を設定し、それらをふくれっ面カンマで区切られたリストに変換され、その後、bashスクリプトで-D$JAVA_OPTSとして渡されます。

接続のすべてが基本的には、ここで問題(複数可)は、この/これらの/を

Exception in thread "main" java.net.ConnectException: Connection refused (Connection refused) 
    at java.net.PlainSocketImpl.socketConnect(Native Method) 
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) 
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) 
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) 
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) 
    at java.net.Socket.connect(Socket.java:589) 
    at java.net.Socket.connect(Socket.java:538) 
    at sun.net.NetworkClient.doConnect(NetworkClient.java:180) 
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:463) 
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:558) 
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:242) 
    at sun.net.www.http.HttpClient.New(HttpClient.java:339) 
    at sun.net.www.http.HttpClient.New(HttpClient.java:357) 
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1202) 
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1138) 
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1032) 
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:966) 
    at sandbox.Sandbox.main(Example.java:16) 

を拒否したとされているされた:

私はここで何か間違ったことをやっていますか?それはバグですか?それは私のシステムですか? いずれの回答も大歓迎です。

+1

-Dはコンマ区切りリストを使用しません。設定したいプロパティごとに-Dが1つ必要です。 –

+0

さて、明確にするために、私はコマンドラインに(-Done、-Dtwo、-Dthree'を使って)それぞれの変数を追加しました。それらを 'application.properties'に追加して環境に追加しました。 'net.properties'の各値と、desparationで、それらを1つの単一の文字列に結合するbashスクリプトを試しました。 –

+0

あなたのシナリオはあなたの質問から簡単に再現することはできません。私は接続がまったく同じスタックトレースで拒否されたとは思いません。実際には –

答えて

関連する問題