当tcpdump遇到Wireshark,会撞出什么火花呢?
Wireshark is a network packet analyzer(网络报文分析器),用于解决网络问题,安全问题,调试协议。运行于window PC下可将报文可视化和流量统计。
tcpdump是Linux下抓包命令,它可以指定网口指定协议指定端口指定源地址或目的地址等进行抓包,以cap文件保存,以便后期通过Wireshark工具进行报文分析。当tcpdump遇到Wireshark,linux下的报文都会原形毕露(这里指报文图形可视化)。
tcpdump工具安装和命令介绍
从tcpdump官网下载tcpdump 及其依赖且相匹配的pcap包(未实践),到linux机器上将pcap和tcpdump分别依次进行安装(./configure && make && make install)。
tcpdump(dump the traffic on a network)针对网络层、协议、主机、网络或端口的过滤,并提供and or not等逻辑语句来将网络中传送你的所需要的数据包的“头”完全拦截。
监控网口 tcpdump -i eth0 -w packet.cap
监控指定主机和端口 tcpdump port 23 and host 1.1.1.1
监控指定协议端口且打印长度超过576字节的ip数据包 tcpdump tcp port 80 and ip[2:2]>576
指定网口指定源网络地址且不抓取目的端口22的报文 tcpdump -i eth0 srt net 192.168.1.0/24 and dst port !22
接下来就可以将抓到报文进行Wireshark解析,然后对报文中的信息进行分析。
Wireshark安装和报文分析
window下安装Wireshark最简单,网上搜索或从此链接下载exe文件,点击运行下一步直到安装成功。
打开Wireshark工具,然后打开tcpdump抓到的报文cap文件,输入过滤条件即可看到想要分析的报文了!
0) 过滤条件: 指定IP(ip.addr==1.1.1.1,ip.dst==1.1.1.1,ip.src==1.1.1.1),基于mac,ip段,指定端口(port 80)
1) TCP协议:TCP三次握手(SYN, SYN/ACK,ACK),使用follow tcp stream可以很快辨识中三次握手的信号。
2) HTTP协议:比如post/put/get的某个接口中发送或返回信息中参数的正确性验证。
3) 网络性能排查:TCP重传和重复ACK,TCP窗口与拥塞处理(检测丢包),狙击网络高时延点(客户端/线路/服务端延时)。
4) 报文分析ftp协议的第6部分(主动模式和被动模式抓包分析)
参考资料
Wireshark学习参考链接EMC中文论坛。