我对Solaris不太熟悉,所以也许有些工具我不知道。 我需要debugging同一台机器上两个组件之间的通信,使用普通的TCP套接字相互通话。
现在似乎有两种可用的工具,一种是从linux上称为tcpdump ,另一种是称为snoop的solaris实用工具。 不幸的是,在客户的网站,有很多的限制,什么都不是,所以使用这些工具是不允许/可能的。
所以,我的想法是,我可以改变服务器进程的监听端口到其他东西,有一个像netcat这样的工具作为代理实际端口,同时转发stream量到“真实”的服务器进程,所以我可以转储这些组件之间的通信。
有没有这样的工具 – 最好输出一个像tcpdump的已知格式? 或者,你会怎么做呢?
snoop不是一个选项,因为它不会在同一个主机上的两个进程之间的通信。
DTrace是你最好的select。 例如,下面是一个以snoop格式捕获同一服务器上两个进程之间的stream量的脚本 。 但是,这个特定的脚本依赖于内核的内部工作,因此它可能会或可能不会与您的Solaris 10版本一起工作。
将服务器进程的侦听端口改为其他东西,并有像netcat这样的工具
netcat将做端口转发 – 但不logging信息。 然而,代码是广泛可用的 – 所以如果你的C语言技能能够胜任,那么直接添加这个代码就可以了。如果Perl比较喜欢,那么就有几个端口转发器。 这里有一个cpan模块。
如果数据通过networking传输,并且您可以物理访问networking(在数据未encryption的地方),那么您可以使用wireshark 。