首页 > 系统相关 >tcpdump抓包(linux)和丢包分析

tcpdump抓包(linux)和丢包分析

时间:2024-01-18 15:47:05浏览次数:33  
标签:mysql01 root 抓取 tcp 网卡 linux tcpdump 抓包

1、下载安装

官网:https://www.tcpdump.org/index.html#latest-releases
编译和安装

[root@mysql01 ~]# tar -zxvf tcpdump-4.99.4.tar.gz
[root@mysql01 ~]# tar -zxvf libpcap-1.10.4.tar.gz 
[root@mysql01 ~]# cd libpcap-1.10.4/
[root@mysql01 ~/libpcap-1.10.4]# ./configure 
[root@mysql01 ~/libpcap-1.10.4]# make && make install
[root@mysql01 ~/libpcap-1.10.4]# cd ../tcpdump-4.99.4/
[root@mysql01 ~/tcpdump-4.99.4]# ./configure 
[root@mysql01 ~/tcpdump-4.99.4]# make && make install

2、常用命令

tcpdump命令的一些参数说明

tcpdump -D        #列出可用于tcpdump抓取数据包的网卡列表

image

  • ens33     //表示该服务器的第一块网卡,一般我们tcpdump抓包都使用这块网卡来抓取。可能有eth1,eth2等等
  • lo    //指的是该主机的回环地址(127.0.0.1),一般用来测试网络专用,一般的数据都不通过这块网卡,所以我们用tcpdump抓包的时候也不使用这块网卡。
  • any   //任何网卡接口
  • nflog    //Linux下的网络过滤网卡,一般我们不使用它
  • nfqueue   //Linux网络过滤队列接口,一般不使用它
  • bluetooth-monitor、bluetooth //蓝牙相关数据回环

参数说明

 tcpdump -i eth0 -nn -s0 -v port 80

-i : 选择要捕获的接口,通常是以太网卡或无线网卡,也可以是 vlan 或其他特殊接口。如果该系统上只有一个网络接口,则无需指定。
-nn : 单个 n 表示不解析域名,直接显示 IP;两个 n 表示不解析域名和端口。这样不仅方便查看 IP 和端口号,而且在抓取大量数据时非常高效,因为域名解析会降低抓取速度。
-s0 : tcpdump 默认只会截取前 96 字节的内容,要想截取所有的报文内容,可以使用 -s number, number 就是你要截取的报文字节数,如果是 0 的话,表示截取报文全部内容。
-v : 使用 -v,-vv 和 -vvv 来显示更多的详细信息,通常会显示更多与特定协议相关的信息。
port 80 : 这是一个常见的端口过滤器,表示仅抓取 80 端口上的流量,通常是 HTTP。
额外再介绍几个常用参数:

-p : 不让网络接口进入混杂模式。默认情况下使用 tcpdump 抓包时,会让网络接口进入混杂模式。一般计算机网卡都工作在非混杂模式下,此时网卡只接受来自网络端口的目的地址指向自己的数据。当网卡工作在混杂模式下时,网卡将来自接口的所有数据都捕获并交给相应的驱动程序。如果设备接入的交换机开启了混杂模式,使用 -p 选项可以有效地过滤噪声。
-e : 显示数据链路层信息。默认情况下 tcpdump 不会显示数据链路层信息,使用 -e 选项可以显示源和目的 MAC 地址

抓取http GET/POST requests

(1)抓取HTTP GET 请求

tcpdump -i enp0s8 -s 0 -A 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420'

解释:

tcp[((tcp[12:1] & 0xf0) >> 2):4]定义了我们所要截取的字符串的位置(http header的后面)的4 bytes。

0x47455420是G E T的ASCII码。

Character ASCII Value
G 47
E 45
T 54
Space 20
(2)抓取POST请求

tcpdump -i enp0s8 -s 0 -A 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504F5354

(3)捕捉指定端口接收到的指定来源的http get/post 请求 重要

# 在服务器上监听18080接口,抓取114.249.234.39的getPost请求和返回
tcpdump -i eth0 -s 0 -A 'tcp dst port 18080 and tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420 or tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504F5354 or tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x48545450 or tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x3C21444F and host 114.249.234.39'

image

参考:
https://blog.csdn.net/weixin_42866036/article/details/128004750

丢包分析

参考https://www.cnblogs.com/liulianzhen99/articles/17894825.html
cpdump检查丢包环节在哪里

服务端执行tcpdump 命令,抓取 80 端口的包
image

客户端执行curl命令
image

查看 tcpdump 的输出
image

前三个包是正常的 TCP 三次握手,没问题。(SYN,SYN ACK,ACK)

四个包却是在 3 秒才收到,并且还是客户端发送过来的 FIN 包。

也就说明,客户端的连接关闭了。

标签:mysql01,root,抓取,tcp,网卡,linux,tcpdump,抓包
From: https://www.cnblogs.com/cgy1995/p/17972606

相关文章

  • Android 配置https抓包
    在Android中抓包常用fidder或者Charles,http可以直接抓去到请求信息,https抓取不到下面介绍两种抓包方案,可以轻松的获取请求的信息。一、使用用户证书1、application中android:networkSecurityConfig="@xml/network_security_config"android:usesCleartextTraffic="true"2......
  • 克魔助手抓包教程:网络数据包分析利器
    摘要本文详细介绍了克魔助手(Komoxo)的下载安装、抓包示例、过滤器使用以及TCP三次握手分析等内容。通过丰富的代码案例演示和详细的操作步骤,帮助读者快速掌握克魔助手的使用方法。引言克魔助手是一款流行的网络封包分析软件,广泛应用于开发测试过程中的网络数据包定位与分析。本......
  • linux下iptables学习
    iptables的结构iptables由上而下,由tables、chains、rules组成四表iptables有filter、nat、mangle、raw四种内置表Filter表filter是iptables的默认表,有一下三种内建链:INPUT链-处理来自外部的数据OUTPUT链-处理向外发送的数据FORWARD链-将数据转发到本机的其他网......
  • linux没有root权限修改环境变量怎么办
    Linux系统可以自己建立和管理环境变量文件,而且每个用户都可以在自己的主目录下创建一个bash环境变量文件,这个文件会在用户登录时自动执行。创建这个文件的命令是:```touch~/.bashrc```然后可以使用任意文本编辑器打开这个文件,添加需要的环境变量,例如:```exportMY_VAR="Hello......
  • 抓包Tcpdump 学习与理解
    常用参数:-w文件名,可以把报文保存到文件;-c数量,可以抓取固定数量的报文,这在流量较高时,可以避免一不小心抓取过多报文;-s长度,可以只抓取每个报文的一定长度,后面我会介绍相关的使用场景;-n,不做地址转换(比如IP地址转换为主机名,port80转换为http);-v/-vv/-vvv,可以打印更加详细......
  • systemtap统计 探测linux驱动中某个函数的执行时间
    直接上脚本:#!/usr/bin/stapglobalstart,endprobemodule("your_driver").function("your_function"){start[tid()]=gettimeofday_ns()}probemodule("your_driver").function("your_function").return{end[tid()]=get......
  • 记住以下10条,Linux磁盘与文件系统管理无忧矣
    1、查看当前Linux系统所支持的文件系统:ls-l/lib/modules/$(uname-r)/kernel/fs;目前已加载到内存中支持的文件系统:cat/proc/filesystems。2、让内核重新读取新的分区表,在屏幕上不打印任何内容,无需重启操作系统即可使用新的分区表:partprobe。3、fdisk无法处理大于2TB的以上的......
  • Linux下安装Perl 5
    在安装openssl时需要安装Perl5,否则报一下错误。Operatingsystem:x86_64-whatever-linux2YouneedPerl5.需要有gcc环境安装Perl5的执行步骤为:####需要安装perl-5https://www.cpan.org/src/README.htmlwgethttps://www.cpan.org/src/5.0/perl-5.28.0.tar.gztar-xzfp......
  • 2 种从 Linux 终端下载文件的方法
    如果你被困在Linux终端,比如说在服务器上,如何从终端下载文件?在Linux中是没有download命令的,但是有几个Linux命令可用于下载文件。在这篇终端技巧中,你将学习两种在Linux中使用命令行下载文件的方法。我在这里使用的是Ubuntu,但除了安装,其余的命令同样适用于所有其他L......
  • Python爬取B站视频 抓包过程分享
    B站对于很多人来说并不陌生,对于经常玩电脑的人来说,每天逛一逛B站受益匪浅。里面不仅有各种各样的知识库,就连很多游戏攻略啥的都有,真的是想要啥有啥。这么好用的平台得好好利用下。今天我将写一个爬虫程序专门抓取B站的视频,并且贴上详细的抓包过程。首先,我们需要安装requests库来发......