由於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