linux/windows常用抓包分析操作

windows:Wireshark抓包,打開wireshark,選擇抓包的網卡,輸入過濾條件,常用過濾條件:

1、過濾IP: ip.addr == 192.168.21.45

2、過濾端口:tcp.port == 5060 || udp.port == 5060

3、根據消息協議過濾,如:sip,sip.Call-ID == "MTI2Y2YyMD", rtp, rtp.ssrc == 12345, http等

注:! && || 非且或3個符號linux/win通用,不喜歡寫 not and or

本機抓包:本機發送到本機的數據包不會經過網卡,無法抓到包,需要設置路由
route add 本機ip mask 255.255.255.255 網關ip
如:route add 92.168.136.200 mask 255.255.255.255 192.168.128.1
使用完畢後用route delete 192.168.136.200 mask 255.255.255.255 192.168.128.1刪除,否則所有本機報文都經過網卡出去走一圈回來很耗性能。

 

linux 抓包:需要安裝tcpdump, 可以直接yum或apt-get install tcpdump 安裝,不能連網的話下載rpm包安裝,需要下載libpcap和tcpdump的rpm包,rpm -Uvh +rpm包安裝即可,

libpcap rpm包官方下載地址:http://www.rpmfind.net/linux/rpm2html/search.php?query=libpcap&submit=Search+...&system=&arch=

tcpdump rpm包官方下載地址:http://www.rpmfind.net/linux/rpm2html/search.php?query=tcpdump

這兩地址就是在http://www.rpmfind.net/上搜一下libpcap和tcpdump就出來了,搬到csdn上賺c幣騙小白不厚道。收藏好http://www.rpmfind.net/,好東西。

常用抓包命令:

1、-i 指定網卡如eth0, ip addr 看下,如果安裝了k8s虛擬網卡太多,可以 ip addr|grep 192.168 快速找到,可以不指定,設爲any 即可。

2、host 指定ip, port 指定端口,可以加tcp或udp限定協議,-vn 打印, -w 輸出到文件,再拷貝到win上用wireshark打開。

簡單的看下信令,直接打印即可:

tcpdump -i any udp port 5060 -vn (打印5060端口抓到的包)

寫到文件:

tcpdump -i any udp port 5060 -vn -w sip.pcap

tcpdump -i any host 192.168.12.34 -vn -w sip.pcap 指定ip抓

加了-vn會提示抓到多少個包,ctrl +c 結束後拷貝sip.pcap 用wireshark打開分析。

 

wireshark分析技巧:

1、分析sip中會話流程(如invite流程)可過濾call-id, 見上面win過濾。

2、分析rtp:如果沒有顯示數據爲rtp包,可選中一個包,右鍵選擇“解碼爲”(倒數第二個選項),“當前“選擇RTP(快速輸入RTP會跳轉)

OK解碼成rtp包後,選擇 電話-->RTP-->流分析

確認後就可分析出流的丟包、亂序等問題

左邊寫了,丟包28個佔2.25%,亂序1個,將流保存下來,把後綴名強行改爲.ps 或.h264/h265,即可播放,h264可以用eseye_u分析,h265的ps流的話只能用ffmpeg播,vlc播不了,若ps 流打包有問題,可以看另一篇“最簡單的h264/h265/svac和g711封裝成ps流”具體分析,常見的問題是h265打包成了264。

保存時一定要選擇爲raw原始數據,保存後再改後綴。

附:國標接入或級聯某些小廠家時可能會出現視頻下半截放不出來,這種現象90%是發送方pes包沒處理好,pes包最大65535(u_short)。

如果是下半截嚴重花屏,多半是發送方沒有做流量峯值控制,接收方擴大緩衝區可以解決,但容易丟包。簡單的峯值控制定時循環時設置最大發送rtp包數即可。

海康h265的ps流中有0x00 0x00 0x01 0xbd字段,不知道啥用,注意解ps流時去掉它附帶的數據就行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章