如何在 Solaris 上拦截套接字流量?

如何在 Solaris 上拦截套接字流量?

我对 Solaris 不太熟悉,所以可能有一些我不知道的工具。我需要调试同一台机器上两个组件之间的通信,使用普通 TCP 套接字相互通信。

现在似乎有两个可用的工具,一个是 Linux 上的,称为tcpdump,另一个是 Solaris 实用程序,称为snoop。不幸的是,在客户站点,有很多限制等等,因此不允许/不可能使用这些工具。

因此,我认为我可以将服务器进程的监听端口更改为其他端口,并使用类似的工具netcat在实际端口上充当代理,同时将流量转发到“真实”服务器进程,这样我就可以转储这些组件之间的通信。

有没有可以实现这个功能的工具 - 最好是输出像 tcpdump 这样的已知格式?或者您还能用什么其他方法实现这个功能?

答案1

snoop无论如何都不是一个选择,因为它不适用于同一主机上两个进程之间的流量。

跟踪是最好的选择。例如,用于捕获同一服务器上两个进程之间的流量的脚本格式snoop。但是,此特定脚本依赖于内核的内部工作,因此它可能适用于您的 Solaris 10 版本,也可能不适用于您的 Solaris 10 版本。

答案2

将服务器进程的监听端口更改为其他端口,并使用 netcat 之类的工具

netcat 将执行端口转发 - 但不记录信息。但是源代码广泛可用 - 因此如果您的 C 语言技能足够好,那么添加它就很简单了。如果您更喜欢 Perl - 那么有几种使用它编写的端口转发器。有一个 cpan 模块这里

如果数据在网络上传输,并且你可以物理访问网络(在数据未加密的地方),那么你可以使用wireshark

相关内容