tcpdump抓包工具的使用

发表于:2023-3-20 09:23

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:斯瓦辛武    来源:稀土掘金

  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小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号