linux的tcpdump命令

一、前言

在工作中经常使用tcpdump命令定位tcpudpftphttp等协议的请求的问题,在请求异常问题中日志繁多或者日志缺少,问题定位比较麻烦,通过tcpdump抓包请求比较准确,并且,并不是所有服务间的请求都有链路跟踪,所以通过tcpdump抓包请求是比较好的方式。

二、tcpdump命令简介

简介:
tcpdump‌是一个在Linux系统中非常强大的网络数据包捕获工具,它允许用户捕获并分析网络上的数据包,这对于网络监控、故障排查、安全审计等任务非常有用。tcpdump的基本语法和功能非常丰富,支持多种选项和过滤器,使得用户可以根据具体需求灵活地捕获、显示和过滤网络数据包。

数据包:数据包是在网络上传输的基本单位,包含了网络通信的信息,如源地址目标地址协议类型数据内容等。

语法:

tcpdump [-adeflnNOpqStvx][-c<数据包数目>][-dd][-ddd][-F<表达文件>][-i<网络界面>][-r<数据包文件>][-s<数据包大小>][-tt][-T<数据包类型>][-vv][-w<数据包文件>][输出数据栏位]

参数说明:

-a 尝试将网络和广播地址转换成名称。
-c<数据包数目> 收到指定的数据包数目后,就停止进行倾倒操作。
-d 把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出。
-dd 把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出。
-ddd 把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出。
-e 在每列倾倒资料上显示连接层级的文件头。
-f 用数字显示网际网络地址。
-F<表达文件> 指定内含表达方式的文件。
-i<网络界面> 使用指定的网络截面送出数据包。
-l 使用标准输出列的缓冲区。
-n 不把主机的网络地址转换成名字。
-D 列出可用的网络接口
-N 不列出域名。
-O 不将数据包编码最佳化。
-p 不让网络界面进入混杂模式。
-q 快速输出,仅列出少数的传输协议信息。
-r<数据包文件> 从指定的文件读取数据包数据。
-s<数据包大小> 设置每个数据包的大小。
-S 用绝对而非相对数值列出TCP关联数。
-t 在每列倾倒资料上不显示时间戳记。
-tt 在每列倾倒资料上显示未经格式化的时间戳记。
-T<数据包类型> 强制将表达方式所指定的数据包转译成设置的数据包类型。
-v 详细显示指令执行过程。
-vv 更详细显示指令执行过程。
-x 用十六进制字码列出数据包资料。
-w<数据包文件> 把数据包数据写入指定的文件。

三、tcpdump常用命令

1、监听所有网卡所有包

tcpdump

2、监听指定网卡的包

tcpdump -i ens18

3、监听指定IP的包

tcpdump host 192.168.1.11

4、监听指定来源IP

tcpdump src host 192.168.1.11

5、监听目标地址IP

tcpdump dst host 192.168.1.11

6、指定网络接口(使用-D选项列出tcpdump可以使用的网络接口)

tcpdump -D

7、监听指定端口

tcpdump port 80

tcpdump port 80 or port 443 #多端抓包

8、监听TCP

tcpdump tcp

9、监听UDP

tcpdump udp

10、监听192.168.1.11的tcp协议的80端口的数据包

tcpdump tcp port 80 and src host 192.168.1.11

11、监听IP之间的包

tcpdump ip host 192.168.1.11 and 192.168.1.60

12、监听除了与192.168.1.4之外的数据包

tcpdump ip host 192.168.1.60 and ! 192.168.1.4

13、捕获指定数量的数据包

tcpdump -c 10

这个命令会捕获10个数据包,然后停止。

14、将抓取的数据写入文件

tcpdump -i eth0 -s0 -w test.pcap

-s0设置了数据包截取大小为无限制。

15、抓取特定主机的数据

使用过滤器 host 可以抓取特定目的地和源 IP 地址的流量。   $ tcpdump -i eth0 host 10.10.1.1   #也可以使用 src 或 dst 只抓取源或目的地:   $ tcpdump -i eth0 dst 10.10.1.20

16、抓取 HTTP GET 流量

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

17、抓取 HTTP POST 请求流量

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

18、提取 HTTP 请求的主机名和路径

tcpdump -s 0 -v -n -l | egrep -i "POST /|GET /|Host:"

注:tcpdump是linux命令的一部分,linux命令可参考链接

----------------------------------👇👇👇注:更多信息请关注公众号获取👇👇👇-------------------------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dylan~~~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值