如何查看转发的 ssh 端口上的流量?

ams*_*ams 6 ssh

可以设置一个 SSH 端口转发,其中 ssh 客户端将通过 ssh 端口交换的流量打印到屏幕或文件。

我正在尝试调试问题,并想查看在本地计算机上运行的 java 进程与在 Solaris 上运行的远程进程之间发送的内容。我正在通过 ssh 使用端口转发,以便我可以单步执行 java 程序。通常我必须将 .java 文件复制到 Solaris 机器,构建它们并运行,这不是非常有效的调试方式,因此端口转发。客户端和服务器使用 IIOP 协议,所以我不能使用 http 代理来监控流量。

Dra*_*oan 7

我会作弊并在管道中添加几个netcat's 和 a tee

nc -k -l -p $localport -c "tee file.out | nc 127.0.0.1 $portforwardport"
Run Code Online (Sandbox Code Playgroud)

where$localport是一个任意端口来指向你的 java 进程,$portforwardport是你的 ssh 端口转发端口号。这-k使得监听 netcat 保持监听而不是在客户端第一次断开连接后退出。输出将file.out在您的本地主机上结束。