複数の tsocks サービスを使用する場合に転送ポートを指定するにはどうすればよいでしょうか?

複数の tsocks サービスを使用する場合に転送ポートを指定するにはどうすればよいでしょうか?

この回答によると質問、私は/etc/tsocks.conf次の行を含んでいます:

path {
server = localhost
server_port = 1081
reaches = <ip-address-of-server-b>/32
}
path {
server = localhost
server_port = 1082
reaches = <ip-address-of-server-d>/32
}

そして、次の 2 つのコマンドを実行しました。

ssh -fND :1081 server-a
ssh -fND :1082 server-b

ここで、最初に 1081 ポートをリッスンしている socks サービスを使用してページの wget を実行し、次に 1082 ポートをリッスンしている別のサービスを使用してページを wget しますtsocks。サービスが 1 つしかない場合は、次のコマンドで実行できることがわかっています。

tsocks wget http://www.google.com

複数のtsocksサービスがあるのですが、どうすればいいでしょうか? たとえば、オプションで転送ポートを指定できますか? のマニュアル ページで何かを見つけることができませんtsocks。次のようなものが欲しいです:

tsocks --forwarding_port=1081 wget http://www.google.com
tsocks --forwarding_port=1082 wget http://www.google.com

答え1

tsocks に 2 つの異なる設定ファイルを使用するのはいかがでしょうか?

によるとこのマニュアルページ、tsocks は環境変数で指定されたファイルから設定を読み取りますTSOCKS_CONF_FILE。したがって、tsocks.confを と に分割してtsocks.1081.conftsocks.1082.conf次のように実行できます (bash 構文)。

$ TSOCKS_CONF_FILE=/path/to/tsocks.1081.conf tsocks wget http://www.google.com
$ TSOCKS_CONF_FILE=/path/to/tsocks.1082.conf tsocks wget http://www.google.com

注記:マニュアルページにはタイプミスがあり、環境変数がTSOCKS_CONFFILE- としてリストされていますが、アンダースコアがありません。

関連情報