tcpdump工具使用

一.简单介绍

tcpdump命令是一款sniffer工具,它可以打印所有经过网络接口的数据包的头信息,也可以使用-w选项将数据包保存到文件中,方便以后分析。

二.使用语法

语法:

tcpdump (选项参数)

抓包选项:

-c <数据包数目>:    指定要抓取的包数量
-i <网卡接口>:    指定tcpdump需要监听的接口,默认会抓取第一个网络接口;
-n:    对地址以数字方式显示,否则显示为主机名,也就是说-n选项不做主机名解析;
-nn:   除了-n的作用外,还把端口显示为数值,否则显示端口服务名;
-P:    指定要抓取的包是流入还是流出的包,可以给定的值为"in"、"out"和"inout",默认为"inout";
-s <数据包长度>:    设置tcpdump的数据包抓取长度为len,如果不设置默认为65535字节。对于要抓取的数据包较大时,长度设置不够可能会产生包截断。

输出选项:

-e:    输出的每行中都将包括数据链路层头部信息,例如源MAC和目标MAC。
-q:    快速打印输出。即打印很少的协议相关信息,从而输出行都比较简短。
-X:    输出包的头部数据,会以16进制和ASCII两种方式同时输出。
-XX:   输出包的头部数据,会以16进制和ASCII两种方式同时输出,更详细。
-v:    当分析和打印的时候,产生详细的输出。
-vv:   产生比-v更详细的输出。
-vvv:  产生比-vv更详细的输出

其它功能选项:

-D:    列出可用于抓包的接口,将会列出接口的数值编号和接口名,它们都可以用于"-i"后。
-F:    从文件中读取抓包的表达式,若使用该选项,则命令行中给定的其它表达式都将失效。
-w:    将抓包数据输出到文件中而不是标准输出,这里可以同时配合"-G time"选项使得输出文件每time秒就自动切换到另一个文件。可通过"-r"选项载入这些文件以进行分析和打印。
-r:    从给定的数据包文件中读取数据。使用"-"表示从标准输入中读取。

三.具体使用示例

3.1 默认启动

tcpdump

默认情况下,直接启动tcpdump将监视第一个网络接口(非lo口)上所有流通的数据包,这样抓取的结果会非常多,滚动非常快。

3.2 监视指定网口的数据包

tcpdump -i em2

3.3 监视指定主机的数据包

例如这里监视所有进入或离开node1的数据包:

tcpdump -i em2 host node1

3.4 打印node1和node2或者node1和node3之间通信的数据包

tcmdump -i em2 host node1 and node2
tcmdump -i em2 host node1 and node3

3.5 打印node1和其它所有(不包含node4)主机之间通信的IP数据包

tcpdump -i em2 host node1 and not node4

3.6 截获主机node1发送的所有数据

tcpdump -i em2 src host node1

3.7 监视所有发送到主机node1的数据包

tcpdump -i em2 dst host node1

3.8 监视指定主机和端口的数据包

tcpdump -i em2 port 22 and host node1

3.9 监视指定网络的数据包

例如这里监视本机与192.168网段通信的数据包,"-c 10"表示只抓取10个包

tcpdump -i em2 -c 10 net 192.168

3.10 抓取ping包

tcpdump -c 5 -nn -i ens33

3.11 抓取到本机22端口的包

tcpdump -c 10 -nn -i em2 tcp dst port 22

3.12 解析包的数据

tcpdump -c 2 -q -XX -vvv -nn -i em2 tcp dst port 22

参考链接:https://www.jianshu.com/p/d9162722f189

posted @ 2020-10-16 11:54  yuhaohao  阅读(266)  评论(0编辑  收藏  举报