3つのシステム(A-> B-> C)でSSHトンネルを実行している間、トラフィック転送にnetcatを使用しています。ホストAがホストBで実行するエージェントコマンドは次のとおりです。
/usr/bin/ssh host_B nc localhost 19999
そして、Host_B:19999とHost_C:22の間にトンネルがあります。
netcatが何をしているのか知りたいです。 netcatログファイルはどこにありますか? Aで次のプロキシコマンドを実行してみました。
/usr/bin/ssh host_B nc -vv localhost 19999 > log.txt 2>&1
ただし、常にホストAで「ssh_exchange_identification:リモートホストによって接続が閉じられました」というメッセージが表示されます。
ありがとう、
答え1
Netcatは何も記録しません。
netcatの出力をファイルにリダイレクトすると、その出力はプロセスに移動する必要があるため、設定が中断されますssh
。リダイレクトを設定すると、リモートホストから送信されたデータがクライアントではなくlog.txt
クライアントに送信されます。エラーのみを記録するには、を使用してください2>log.txt
。
netcatに送信されたすべてのデータをファイルにダンプするには、そのデータをコピーする必要があります。
unbuffer tee input.data | nc localhost 19999 | unbuffer tee output.data