tcpdump
简介
用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。
命令1tcpdump (选项)
选项
|
|
使用例子
- 首先在端口5555启动一个监听程序
执行命令
1sudo tcpdump -i lo tcp port 5555telnet连接这个端口
1telnet 127.0.0.1 5555抓包结果
12317:46:14.089113 IP localhost.17827 > localhost.5555: Flags [S], seq 3155508131, win 43690, options [mss 65495,sackOK,TS val 346898 ecr 0,nop,wscale 7], length 017:46:14.089133 IP localhost.5555 > localhost.17827: Flags [S.], seq 1578794747, ack 3155508132, win 43690, options [mss 65495,sackOK,TS val 346898 ecr 346898,nop,wscale 7], length 017:46:14.089180 IP localhost.17827 > localhost.5555: Flags [.], ack 1, win 342, options [nop,nop,TS val 346898 ecr 346898], length
可以看到tcp的三次握手的过程
wireshark
tcpdump 对截获的数据并没有进行彻底解码,数据包内的大部分内容是使用十六进制的形式直接打印输出的。显然这不利于分析网络故障,通常的解决办法是先使用带-w参数的tcpdump 截获数据并保存到文件中,然后再使用其他程序(如Wireshark)进行解码分析。当然也应该定义过滤规则,以避免捕获的数据包填满整个硬盘