tcpdump 的使用说明

Tcpdump是个异常强大的网络包抓取和分析工具,最近又把它翻出来了。因为在写一个Web Service相关的程序,嫌原来的脚本性能太差,准备用gSoap重写一遍。这台服务器是需要身份验证的,可是服务器应答我身份验证成功后,RPC调用依然失败,怀疑是否soap包的结构有错误呢。因为不清楚具体原因,所以想抓包看看。

我们知道一般使用tcpdump可以这样,这会打印出你所要抓取的包的详细内容,其中-X选项会同时打印出hex和ASCII格式的内容,特别适合分析新协议;-s0表示完整抓取所有数据包,如果你想过滤一些包,可以把数字0改成你所关注的数据包的最大字节数:

# tcpdump -X -s0 host 192.168.0.1 and tcp and port 80

如果你在本机做实验,比如侦听本机apache的数据包,那么必须用参数-i指定侦听的设备:

# tcpdump -i lo port 80

如果要抓取的内容太多,不希望打印到标准输出,那么可以通过-w-r选项,写入到文件,然后再从文件中读出分析:

$ tcpdump -w tcpdump.log host 192.168.0.1
$ tcpdump -r tcpdump.log

而soap其实是架设在http之上的,tcpdump有专门打印出数据包ASCII形式的参数,所以我们过滤所有包含endpoint的ip地址如192.168.1.111的数据包,然后打印出来,我们就能直观的看出soap交互的详细内容。

$ tcpdump -A -s0 host 192.168.1.111

你可能感兴趣的:(apache,服务器,service,脚本,SOAP,hex)