网络抓包工具详解

​ 在项目开发中经常会出现网络链接报错,通常的做法就是查看客户端或者服务端的日志。但是这种查日志的方式有时候更多是定位代码(服务)级别的错误,如果涉及底层一些的错误就无法定位。有时候可能日志都没有打印出来,这时候就需要进行网络抓包。

​ 网络抓包通常有两个步骤,第一是获取数据包,第二是展示(分析)数据包。如果是在window平台可以直接使用wireshark或者fiddler,这两个工具都可以抓包和分析。linux下面默认是没有界面的,所以抓包使用(tcpdump),分析数据使用wireshark。

一、tcpdump使用

dump the traffic on a network,对网络上的数据包进行截获的包分析工具,支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句。

tcpdump -i lo src host 192.168.0.240 and dst port 80 -w ./tmp/output.cap 

注:

  1. -i lo:只抓经过网卡lo的包,默认是第一块网卡
  2. -s 0:snaplen不限制由程序决定,默认是68字节
  3. src host:源主机为指定ip
  4. dst port:目标端口是指定port,指定目标端口就会过滤掉响应的tcp连接(如挥手过程)
  5. -w:保存到指定文件

二、wireshark使用

1.导入数据包

在这里插入图片描述

从图中可以看到1-10是一个完整的请求流程。1-3是tcp三次握手,5是http请求,13-17是tcp四次挥手。

在这里插入图片描述

通过右键追踪流可以完整展示一次请求(把多个请求合并),具体如下图:红色代表http请求,蓝色代表响应。
在这里插入图片描述

2.常规操作

2.1 筛选条件

在wireshark可以设置筛选的条件,比如tcp.port,ip.addr等(因为tcp才有端口,ip才有host地址)。因为我们在tcpdump的时候就做过了一些筛选,所以在wireshark中筛选的动作就可以省略。

2.2 搜索关键字
  1. 全文搜索 frame contains “xx”
    在这里插入图片描述

  2. 全文搜索正则匹配 frame matches “(!?)xx”,其中(!?)表示不区分大小写

在这里插入图片描述

  1. 根据协议查找 dns.qry.name contains “xxx”,查找DNS协议下面包含xx的字段
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值