51Testing软件测试论坛
标题:
浅谈抓包工具tcpdump
[打印本页]
作者:
lsekfe
时间:
2023-3-20 13:11
标题:
浅谈抓包工具tcpdump
1. 概论
如果你抓过 TCP 的包,你一定听说过图形化界面软件 wireshark,
tcpdump
则是一个命令行的网络流量分析工具,功能非常强大。尤其是做后台开发的同学要在服务器上定位一些黑盒的应用,tcpdump 是唯一的选择。这篇文章会重点介绍基本使用、过滤条件、保存文件几个方面。
大部分
Linux
发行包都预装了 tcpdump,如果没有预装,可以用对应
操作系统
的包管理命令安装,比如在 Centos 下,可以用 yum install -y tcpdump 来进行安装。
·linux平台的
抓包工具
·
ctrl + c 终止抓包
2. 常见用法
1. tcpdump host 1.117.109.40
基于IP地址进行过滤
2. tcpdump dst 1.117.109.40
获取目的地址是1.117.109.40的报文
3.tcpdump net 1.117.109.40/24
基于网段进行过滤
4. tcpdump tcp port 80
基于端口进行过滤
tcpdump port 80 or 20
tcpdump portrange 8000-8010
5. 基于协议进行过滤
tcpdump icmp
tcpdump tcp
tcpdump udp
应用层的协议不能直接写
tcpdump port http
tcpdump port 53
6. tcpdump -i 指定监听的网络接口
tcpdump -i eth0 : 默认监听在第一个网卡上
tcpdump -i any : 监听所有的网络接口,用来查看是否有网络流量
tcpdump -w test.pcap : 保存到test文件
tcpdump -r test.pcap : 读取这个文件
tcpdump -n :不把ip转化成域名,直接显示ip,避免执行DNS lookups的过程,速度会快很多
tcpdump -nn : 不把ip和端口号转化成名字,速度快很多
禁用主机与端口解析:-n 与 -nn 选项
tcpdump -i eth0 -c 20 -w test.pcap : -c 指定抓包的次数,抓满20次就停止了
tcpdump -C 1 -W 3 -w abc : 一个文件写满1MB,就换下一个文件,最多写三个文件,满了以后覆盖写入
tcpdump -Q in/out/inout : 选择是入方向还是出方向的数据包
tcpdump -q : 简洁输出打印
tcpdump -D: 显示所有可用网络接口的列表
tcpdump -L: 列出网络接口的已知数据链路
tcpdump -s 20 : 指定每个包捕获的长度
tcpdump -A -r test.pcap 以ASCII码的形式读取文件,方便使用grep等工具输出内容
tcpdump -A | grep baidu
tcpdump -X -r test.pcap : 表示同事使用十六进制和ASCII字符串打印报文的全部数据,但不能一起使用
每个网卡都有自己的MAC地址
tcpdump -F filter_rule -c 10 : 指定按照这个文件的格式过滤,后边的抓包10次不起作用
这种方式适合长期维护
tcpdump -l | tea file
tcpdump -l > file & tail -f file
-l 对标准输出进行缓冲
tcpdump src 100.100.30.26 and port 80
抓一个来自100.100.30.26主机,端口80的包
tcpdump tcp port 53 and udp port 53
抓取UDP 53端口 或者TCP 53端口的包
tcpdump not tcp port 22
抓取不是端口22的报文
tcpdump "src 10.0.2.4 and (dst port 3389 or 22)"
tcpdump ip dst 192.168.56.1 and src 192.168.56.210 and port 80 and host not
www.baidu.com
监听主机192.168.56.1和 192.168.56.210之间ip协议的80端口且排除
www.baidu.com
通信的所有数据包
tcpdump less 32 : 基于包的大小进行过滤,抓取包大小小于32bytes的数据包
tcpdump greater 32
tcpdump -i any -nn port 80 -A
tcpdump -i any -nn port 80 -A -s 500
tcpdump -i any -nn port 80 -c 5
tcpdump -i any port 80 -w test.pcap
tcpdump -i any host 10.211.55.10 and dst port 3306
tcpdump -i any src 10.211.55.10 and not dst port 22
tcpdump -i any "src 10.211.55.10 and (dst port 3306 or 6379)"
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2