我使用 netcat 在 3 台机器(A->B->C)ssh 隧道期间进行流量转发。主机 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