当前位置: 首页 > news >正文

Tcpdump 网络抓包工具使用

Tcpdump 语法

Tcpdump 用于 linux 对网络进行抓包,可将抓包结果导出用 wireshark 查看

image-20250629122128858

过滤语法

基于 IP 地址进行过滤 host

# 获取特定 IP 收到和发出的所有包
tcpdump host ip地址# 获取源 IP 是特定地址的包
tcpdump src host ip# 获取目的 IP 是特定地址的包
tcpdump dst host ip

基于网段进行过滤 net

# 获取特定网段收到和发出的所有包
tcpdump net 127.0.0.1/24# 获取源地址是特定网段的包
tcpdump src net 127.0.0.1/24# 获取目的地址是特定网段的包
tcpdump dst net 127.0.0.1/24

基于端口进行过滤,port,支持【src】【dst】

# 获取特定端口收到和发出的所有包
tcpdump port 3344# 获取某两个端口收到和发出的所有包
tcpdump port 3344 or 9999# 获取某个范围端口收到和发出的所有包
tcpdump portrange 8080-9999# 对于一些常见协议的端口,也可以使用协议名代表端口
tcpdump port http

基于协议进行过滤 protocal

# 获取特定协议收到和发出的所有包 (icmp、arp、ip、tcp、udp)
tcpdump icmp
tcpdump arp# 对于应用层协议,例如 http 和 https,就不能这样写了
# tcpdump http
tcpdump: syntax error
# tcpdump port http

参数语法

指定监听网络设备 -i

# 指定监听网络设备,ifconfig 可以查看所有网卡
tcpdump -i lo# 监听所有
tcpdump -i any

将抓包结果写入文件 -w,从文件中读取 -r

# 将抓包结果写入文件,最好保存为 cap 或 pacp 格式,可以导出用 wireshark 分析
tcpdump -w test.pacp# 从文件中读取抓包结果
tcpdump -r test.pacp

不解析 IP 地址和端口号 -n,-nn,-N

# 打印结果不解析 IP 地址,速度会快一些
tcpdump -n# 打印结果不解析 IP 地址和端口,例如不加这个参数,会把 22 端口解析为 ssh
tcpdump -nn

指定打印的时间格式 -t

# 不输出时间
tcpdump -t# 输出时间戳,距离 1970 年那个时间点时间戳
tcpdump -tt# 以第一条结果为0,每条输出距离第一条的时间
tcpdump -ttt# 输出年月日时分秒微秒这样的时间格式
tcpdump -tttt

输出更详细的抓包信息 -v

# 增加输出包的ttl、id标识、数据包长度等
tcpdump -v# 更加详细的输出
tcpdump -vv# 更加详细的输出
tcpdump -V

指定抓包条数 -c

# 指定抓包条数
tcpdump -c 20

指定抓包大小 -C,与 -W 配合使用,文件 -C 大小后就写一个新文件,最多写 -W 个,-C 单位百万字节

# 抓包,每个文件最多1百万字节,最多抓3个文件,保存为 abc0、abc1、abc2
tcpdump -C 1 -W 3 -w abc

指定包的方向 -Q

# 指定输入的包
tcpdump -Q intcpdump -Q outtcpdump -Q inout

简洁打印信息 -q

tcpdump -q

查看本机网络接口信息 -D, -L

# 查看网络接口列表
tcpdump -D# 列出网络接口的已知数据链路
tcpdump -L

指定每个包捕获的长度 -s

# 当执行 tcpdump,最开始就会打印默认的监听网络设备和捕获长度, 例如这个的默认就是 262144 byte 
# tcpdump -c 5
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes# 指定每个包捕获的长度,如果超出后续的内容会被截断,截断包的最后会输出 [|protocal],即当前协议
# tcpdump -c 3 -s 50 -nn
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 50 bytes
12:00:23.360995 IP 172.16.63.116.22 > 60.209.181.228.54331: [|tcp]
12:00:23.361102 IP 172.16.63.116.22 > 60.209.181.228.54331: [|tcp]
12:00:23.361147 IP 172.16.63.116.22 > 60.209.181.228.54331: [|tcp]

以 ASICC 码格式打印包内容信息,方便 grep 进行分析 -A

# 另一个终端在此时 ping www.baidu.com 或者 curl www.baidu.com
# tcpdump -A | grep baidu
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
12:03:49.677347 IP iZm5e8izu4t87flkkvb649Z.39739 > 100.100.2.136.domain: 25687+ A? www.baidu.com. (31)
E..;^.@.@..B..?tdd...;.5.'R.dW...........www.baidu.com.....
E..y^.@.@...dd....?t.5.;.e..dW...........www.baidu.com..................www.a.shifen.com..+..........n.E..+..........n.F9

以 16 进制格式打印包内容信息 -x

# 以16进制格式打印包内容信息 -x
tcpdump -c 5 -x# 以 ASCII 和 16进制格式打印包内容信息 -X,注意 -X 无法与 -A 同时使用
tcpdump -c 5 -X

打印数据链路层内容信息 -e

# 打印数据链路层内容信息
tcpdump -e

以某文件中的规则进行抓包 -F,例如某些包抓一次要好多参数,就可以配置为文件使用

# -F [文件名],注意如果使用了 -F,命令行后如果再跟过滤规则就无效了
tcpdump -c 5 -F filter_rule# 这个时候的 icmp 就无效了
tcpdump -c 5 -F filter_rule icmp

同时输出到终端和文件 -l

# -l | tee [文件名]
tcpdump -c 5 -l | tee aaa

基于包大小进行过滤 less / greater,单位 byte

# 抓取少于 50 byte 的包
tcpdump -c 5 less 50tcpdump -c greater 100

除此之外 tcpdump 也支持一些逻辑符号,例如抓取端口不是 80 上的数据

tcpdump -c 5 not port 80

内容来自 B站视频 tcpdump抓包工具教程 ~

http://www.lryc.cn/news/576955.html

相关文章:

  • ali PaddleNLP docker
  • Vivado关联Vscode
  • BUCK电感电流检测电路current sense-20250603
  • 逆向工程恢复信息的方法
  • JVM中的垃圾收集(GC)
  • 【个人纪录】vscode配置clangd
  • 节点小宝:告别公网IP,重塑你的远程连接体验
  • Vue列表渲染与数据监测原理
  • word换行居中以后 前面的下划线不显示
  • Python中的序列化和反序列化
  • 2个任务同时提交到YARN后2个都卡住(CDH)
  • CNN, RNN, LSTM
  • 四大WordPress模板资源网站
  • 【QT】信号和槽(1) 使用 || 定义
  • 数据结构复习4
  • stm32之测量周期
  • GPT,GPT-2,GPT-3 论文精读笔记
  • 各种常用的串口助手工具分享
  • vue-30(理解 Nuxt.js 目录结构)
  • Java 大视界 -- 基于 Java 的大数据分布式存储在科研大数据归档与长期保存中的应用(328)
  • TCP/UDP协议深度解析(三):TCP流量控制的魔法—滑动窗口、拥塞控制与ACK的智慧
  • 【AGI】Qwen VLo:多模态AI的范式重构与AGI演进关键里程碑
  • 数据可视化 - 单子图
  • LeetCode 第80题 删除有序数组中的重复项Ⅱ
  • 【如何实现分布式压测中间件】
  • Conda 环境配置之 -- Mamba安装(causal-conv1d、mamba_ssm 最简单配置方法)-- 不需要重新配置CDUA
  • MCPA2APPT 智能化演示文稿系统:A2A、MCP、ADK 三大架构全流程自动化
  • stm32之普通定时器
  • 左神算法之Zigzag方式打印矩阵
  • 飞云翻倍布林(翻倍密码系统四线布林版)双安全系统+均价趋势指标+日线周线MACD,组合操盘技术图文分享