1

Java アプリケーションで socks5 サーバーに接続しましたが、外部アプリケーションを起動して、すべての接続を socks5 サーバー経由で実行したいと考えています。外部アプリケーション自体は、socks5 をサポートしていません。

ここで私の頭を悩ませて、どんな入力でも素晴らしいでしょう..

4

2 に答える 2

0

私が知っている 2 つのトリックは、標準のランタイム ライブラリを置き換えるか、同様のトリックを使用して OS ネットワーク呼び出しをインターセプトするか、カーネルで細かく調整された一連のファイアウォール ルールを設定することです。

これらの手法はどちらも OS 固有のものであり、Java を使用してそれを行う方法はありません。

あなたの最善の策は、既存の socks5 ラッパーを実行し、そのプログラムが socksify のような外部アプリケーションを起動できるようにすることです

私はこのアプローチについてさまざまな経験をしてきました。一部のアプリケーションは機能し、他のアプリケーションは機能しません。また、ロジックが見つかりませんでした。

YMMV

もう 1 つの方法は、Java アプリケーションで tcpproxy を実行し (たとえば、Apache MINA などを使用)、アプリケーションを localhost のプロキシ ポートに接続させることです。繰り返しますが、これは特定のサービスでのみ機能します。

于 2010-09-09T17:28:00.547 に答える
0

外部アプリケーションが Java で作成されている場合、SOCKSはサポートされます。-DsocksProxyHost=host および -DsocksProxyPort=port で実行するだけです。[1] を参照してください。

[1]: http://download.oracle.com/javase/6/docs/technotes/guides/net/properties.html「ネットワーク プロパティ」。

于 2010-09-09T23:51:14.093 に答える