文字接口数据包捕获器:tcpdump

1.前言

对于tcpdump这个软件,我们甚至可以说这个软件其实就是个黑客软件
因为它不但可以分析数据包的流向,甚至连数据包的内容都可以监听
如果使用明文传输数据的话,在Router或者Hub上面就可能被别人监听走了
注意:tcpdump必须使用root的身份执行

2.具体操作过程如下

tcpdump [ -Aennqx ] [ -i 接口 ] [ -w 存储文件名 ] [ -c 次数 ] [ -r 文件 ] [ 所要摘取的数据包数据格式 ]
具体的选项和参数如下:

-A 数据包的内容以ASCII显示,通常用来抓取WWW的网页数据包数据
-e 使用数据链路层(OSI第二层)的MAC数据包数据来显示
-nn 直接以IP及port number显示,而不是主机名与服务名称
-q 仅列出较为简短的数据包信息,每一行的内容比较精简
-X 可以列出十六进制以及ASCII的数据包内容,对于监听数据包内容很有用
-i 后面接要监听的网络接口,例如:eth0、lo、ppp0
-w 如果你要将监听所得的数据包数据存储下来,用这个参数就可以啦,后面接文件名
-r 从后面接的文件将数据包数据读出来,这个文件是已经存在的文件,并且这个文件是由-w所制作出来的
-c 监听的数据包数,如果没有这个参数,tcpdump会持续不断的监听,直到用户输入[ctrl]-c为止

想要捕获的数据包数据格式,我们可以专门针对某些通信协议或者是IP来源进行数据包捕获
与此同时,可以简化输出结果,并且取得最有用的信息

host foo、host 127.0.0.1 针对单台主机来进行数据包捕获
net 192.168 针对某个网络来进行数据包的捕获
src host 127.0.0.1 dest net 192.168 同时加上来源src或目标dst限制
tcp port 21 还可以针对通信协议检测,例如:tcp、udp、arp、ether等等

还可以利用and 与 or来进行数据包数据的整合显示
通过man tcpdump可以查看更加详细的解释说明
文字接口数据包捕获器:tcpdump
文字接口数据包捕获器:tcpdump

示例一:以IP与port number 获取eth0这个网卡上的数据包,持续3s
(1)此时desktop虚拟机的网卡eth0上面的ip是动态获取的,监听结果如下
文字接口数据包捕获器:tcpdump
(2)静态配置desktop虚拟机的网卡eth0,监听结果如下
文字接口数据包捕获器:tcpdump
(3)使用server虚拟机ping通desktop虚拟机的时候,监听结果如下
文字接口数据包捕获器:tcpdump
文字接口数据包捕获器:tcpdump
总结:按下ctrl+c结束监听,三个字段的意思分别如下
获取到的数据包数量;由过滤所得的总数据包数量;被内核所丢弃的数据包
tcpdump几乎都是分析数据包的报头数据,用户如果没有简易的网络数据包为基础,很难看懂
因此想要学好tcpdump,首先要理解tcp数据包的报头数据
示例一所产生的输出当中,每个字段的具体意思如下

07:52:28.445278 该数据包被捕获的时间,以“时:分:秒”为单位
IP 通过的通信协议是IP
172.25.254.111 > 传送端的IP是172.25.254.111,>(大于号)指的是数据包的传输方向
172.25.254.211 接收端的IP是172.25.254.211

未完待续…
示例二:
示例三: