简介
Wireshark 并未为性能所特地优化,主要是为了初学者和流量分析工程师分析流量特征和解析协议,但是鉴于其UI友好型,我在某核心网络流量镜像与分析的项目中也使用了 Wireshark.
众所周知,Wireshark 将监听到但还未保存的数据文件全部存放于 /Temp
目录,同时将其装载到内存中作为快速缓存,I/O瓶颈显然会影响性能。
这里可以把临时目录挂载到内存盘(ramdisk)中,可以大幅提高解析等操作的速度。
接下来就是实时的数据处理,数据包类型的着色与高亮,DNS的反向查找,都会拖慢重新过滤的速度。
可以在高级设置中设置: - IP/Reassembled fragmented IP datagrams - TCP/Allow subdissectors to reassemble TCP streams
硬件方面,Wireshark 的任务处理采用单线程,多核的优势聊胜于无。
其他方面,可以参考:wiki.wireshark.org/Performance
从捕获过滤降低流量规模
一般情况下,如果要过滤 POST 包,需要在显示过滤器中过滤,在无人值守时,期间可能会发生内存溢出等情况。
使用捕获过滤器可以有效规避:
port 80 and tcp[((tcp[12] & 0xf0) >> 2):4] = 0x47455420
'G', 'E', 'T', ' ' (16 进制值分别对应为 47, 45, 54, 20;tcp[12] & 0xf0) >> 2 为数据偏移位,取 4 字节即为 GET 。
0x504f5354 POST