前言
sngrep是抓sip包的利器
本人在生成环境使用sngrep进行长时间抓包,业务量高峰期的时候经常发现sngrep进程吃满CPU
原因
因为sngrep默认会捕获机器上的所有的数据库包甚至SSH
解决办法
BPF过滤是所有libpcap工具(sngrep,ngrep,tcpdump,sipgrep等)中功能最强大的过滤。
sngrep portrange 5000-6000 #捕获这些端口之间的所有内容
或者,如果您知道本地RTP端口,则可以跳过它们
sngrep portange not 13000-190000#在这些端口之间使用src或dst端口跳过数据包
您还可以使用您提到的十六进制过滤数据包
sngrep ‘udp[8] & 0xc0’ != 0x80 #跳过具有RTP标头的数据包
你可以在将以上的几个结合一起使用,使用关键字and
或则 or