常用选项通过上述的实战案例,相信大家已经掌握的 tcpdump 基本用法,在这里来详细总结一下常用的选项参数。
(一)基础选项
-i:指定接口
-D:列出可用于抓包的接口
-s:指定数据包抓取的长度
-c:指定要抓取的数据包的数量
-w:将抓包数据保存在文件中
-r:从文件中读取数据
-C:指定文件大小,与 -w 配合使用
-F:从文件中读取抓包的表达式
-n:不解析主机和端口号,这个参数很重要,一般都需要加上
-P:指定要抓取的包是流入还是流出的包,可以指定的值 in、out、inout
(二)输出选项
-e:输出信息中包含数据链路层头部信息
-t:显示时间戳,tttt 显示更详细的时间
-X:显示十六进制格式
-v:显示详细的报文信息,尝试 -vvv,v 越多显示越详细
过滤表达式
tcpdump 强大的功能和灵活的策略,主要体现在过滤器(BPF)强大的表达式组合能力。
(一)操作对象
表达式中可以操作的对象有如下几种:
type,表示对象的类型,比如:host、net、port、portrange,如果不指定 type 的话,默认是 host
dir:表示传输的方向,可取的方式为:src、dst。
proto:表示协议,可选的协议有:ether、ip、ip6、arp、icmp、tcp、udp。
(二)条件组合
表达对象之间还可以通过关键字 and、or、not 进行连接,组成功能更强大的表达式。
or:表示或操作
and:表示与操作
not:表示非操作
建议看到这里后,再回头去看实战篇章的示例,相信必定会有更深的理解。如果是这样,那就达到了我预期的效果了!
到这里就不再加新知识点了,分享一些工作中总结的经验:
1. 我们要知道 tcpdump 不是万能药,并不能解决所有的网络问题。
2. 在高流量场景下,抓包可能会影响系统性能,如果是在生产环境,请谨慎使用!
3. 在高流量场景下,tcpdump 并不适合做流量统计,如果需要,可以使用交换机镜像的方式去分析统计。
4. 在 Linux 上使用 tcpdump 抓包,结合 wireshark 工具进行数据分析,能事半功倍。
5. 抓包时,尽可能不要使用 any 接口来抓包。
6. 抓包时,尽可能指定详细的数据包过滤表达式,减少无用数据包的拷贝。
7. 抓包时,尽量指定 -n 选项,减少解析主机和端口带来的性能开销。
全部0条评论
快来发表一下你的评论吧 !