由于CentOS7上yum安装的wireshark对CoAP的解析支持不太完善,而我windows上的wireshark可以完美支持,所以以往我先在CentOS上wireshark抓包,并保持,然后拷贝到Windows上来解析,但是这样没有实时性。后来发现wireshark支持PIPE接口,网上搜到方法:
ADVsock2pipe+Wireshark+nc+tcpdump
下面要介绍的方法的核心原理,就是开辟一条PC与虚拟机的socekt通道并将数据转投到pipe中,然后在PC上,wireshark从pipe的另一端拿数据,让wireshark基于管道(PIPE)抓包。
一、测试设备
PC(windows系统)
虚拟机(linux系统)
二、工具
(1)PC上
wireshark
(2)虚拟机
nc
tcpdump
(3)网络环境
PC与虚拟机处于同一局域网
PC ip 10.0.0.23
itouch ip 10.0.0. 24
三、抓包步骤
第一步:在PC上运行ADVsock2pipe,输入如下命令
ADVsock2pipe.exe -pipe=wireshark -port 2134
第二步:在PC上运行wireshark,设置caption-Options
第三步:在linux上,打开终端输入以下命令
tcpdump -i eth0 -nn -w - -U -s 0 "not port 2134" | nc 10.0.0.23 2134
第四步:在linux上运行想要抓包分析的应用,即可在PC上实时的用wireshark观察数据包发送情况了
参考:
http://wiki.wireshark.org/CaptureSetup/Pipes