Linux tcpdump工具的使用

目录

目录

前言

tcpdump命令的常见参数

"-h":查看帮助信息

"--version":查看版本号

"-D":列出系统中所有可以用于tcpdump抓取数据包的网卡列表

"-i":指定哪个网卡接口

"host":筛选出指定的主机IP的相关数据包

"port":指定哪个端口,例如:

"-w":把包数据直接写入指定的文件中而不进行分析和打印输出

tcpdump抓包文件的解析

总结


前言

tcpdump是强大的网络数据采集分析工具之一,称为抓包工具。它可以将网络中传送的数据包完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供逻辑语句来帮助我们过滤掉无用的信息。其中tcpdump字面拆分,tcp:传输控制协议(transmission control protocol),位于传输层,dump:导出的意思。


tcpdump命令的常见参数

"-h":查看帮助信息

例如:

bash 复制代码
# tcpdump -h
   tcpdump version 4.9.3
   libpcap version 1.9.1 (with TPACKET_V3)
   Usage: tcpdump [-aAbdDefhHIJKlLnNOpqStuUvxX#] [ -B size ] [ -c count ]
        [ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ]
        [ -i interface ] [ -j tstamptype ] [ -M secret ] [ --number ]
        [ -Q in|out|inout ]
        [ -r file ] [ -s snaplen ] [ --time-stamp-precision precision ]
        [ --immediate-mode ] [ -T type ] [ --version ] [ -V file ]
        [ -w file ] [ -W filecount ] [ -y datalinktype ] [ -z postrotate-command ]
        [ -Z user ] [ expression ]

"--version":查看版本号

例如:

bash 复制代码
# tcpdump --version
   tcpdump version 4.9.3
   libpcap version 1.9.1 (with TPACKET_V3)

"-D":列出系统中所有可以用于tcpdump抓取数据包的网卡列表

例如:

bash 复制代码
 # tcpdump -D
   1.wlan0 [Up, Running]
   2.any (Pseudo-device that captures on all interfaces) [Up, Running]
   3.lo [Loopback]

"-i":指定哪个网卡接口

例如:

bash 复制代码
# tcpdump -i wlan0
   tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
   listening on wlan0, link-type EN10MB (Ethernet), capture size 262144 bytes
   00:22:21.386610 IP 192.168.169.59.38394 > 192.168.32.3.domain: 5+ SRV? _sips._tcp.sipgz04.hbq.r.10086.cn. (51)
   ...
   00:22:21.560149 IP 192.168.169.59.7879 > 180.76.76.76.domain: 42514+ AAAA? gap.work.weixin.qq.com. (40)
   00:22:21.562346 IP 192.168.169.59.20975 > 180.76.76.76.domain: 17325+ A? gap.work.weixin.qq.com. (40)

"host":筛选出指定的主机IP的相关数据包

例如:

bash 复制代码
# tcpdump host 192.168.169.1
   tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
   listening on wlan0, link-type EN10MB (Ethernet), capture size 262144 bytes
   18:20:50.598341 IP 192.168.169.59.39338 > 192.168.169.1.www: Flags [S], seq 2224882238, win 65535, options [mss 1460,sackOK,TS val 1395385504 ecr 0,nop,wscale 9], length 0
   18:20:50.598450 IP 192.168.169.1.www > 192.168.169.59.39338: Flags [S.], seq 4160180220, ack 2224882239, win 65160, options [mss 1460,sackOK,TS val 2182696542 ecr 1395385504,nop,wscale 3], length 0
   18:20:50.603623 IP 192.168.169.59.39338 > 192.168.169.1.www: Flags [.], ack 1, win 128, options [nop,nop,TS val 1395385527 ecr 2182696542], length 0
   18:20:50.603965 IP 192.168.169.59.39338 > 192.168.169.1.www: Flags [P.], seq 1:212, ack 1, win 128, options [nop,nop,TS val 1395385528 ecr 2182696542], length 211: HTTP: GET /app/getparamvalue?param=rec HTTP/1.1
   18:20:50.604034 IP 192.168.169.1.www > 192.168.169.59.39338: Flags [.], ack 212, win 8119, options [nop,nop,TS val 2182696547 ecr 1395385528], length 0
   ...

"port":指定哪个端口,例如:

bash 复制代码
# tcpdump port 554
   tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on wlan0, link-type EN10MB (Ethernet), capture size 262144 bytes
    18:36:22.460633 IP 192.168.169.1.554 > 192.168.169.59.41456: Flags [P.], seq 1908680467:1908680662, ack 3404164144, win 8010, options [nop,nop,TS val 2183627926 ecr 1396316862], length 195: RTSP
    18:36:22.484299 IP 192.168.169.59.41456 > 192.168.169.1.554: Flags [.], ack 195, win 1532, options [nop,nop,TS val 1396316913 ecr 2183627926], length 0
    18:36:22.491079 IP 192.168.169.1.554 > 192.168.169.59.41456: Flags [P.], seq 195:470, ack 1, win 8010, options [nop,nop,TS val 2183627957 ecr 1396316913], length 275: RTSP
    18:36:22.495765 IP 192.168.169.59.41456 > 192.168.169.1.554: Flags [.], ack 470, win 1532, options [nop,nop,TS val 1396316943 ecr 2183627957], length 0
    18:36:22.531393 IP 192.168.169.1.554 > 192.168.169.59.41456: Flags [P.], seq 470:759, ack 1, win 8010, options [nop,nop,TS val 2183627997 ecr 1396316943], length 289: RTSP
    18:36:22.538752 IP 192.168.169.59.41456 > 192.168.169.1.554: Flags [.], ack 759, win 1532, options [nop,nop,TS val 1396316985 ecr 2183627997], length 0
    18:36:22.571757 IP 192.168.169.1.554 > 192.168.169.59.41456: Flags [P.], seq 759:1014, ack 1, win 8010, options [nop,nop,TS val 2183628038 ecr 1396316985], length 255: RTSP
    18:36:22.578728 IP 192.168.169.59.41456 > 192.168.169.1.554: Flags [.], ack 1014, win 1532, options [nop,nop,TS val 1396317025 ecr 2183628038], length 0
    18:36:22.606963 IP 192.168.169.1.554 > 192.168.169.59.41456: Flags [P.], seq 1014:1309, ack 1, win 8010, options [nop,nop,TS val 2183628073 ecr 1396317025], length 295: RTSP
   ...

"-w":把包数据直接写入指定的文件中而不进行分析和打印输出

注意这里的文件后缀名为pcap或cap。

例如:

bash 复制代码
# tcpdump -w /mnt/card/test.pcap
   tcpdump: listening on wlan0, link-type EN10MB (Ethernet), capture size 262144 bytes

tcpdump抓包文件的解析

pcap或cap文件是常见的数据报存储格式文件,数据按照特定格式存储,普通编辑器无法正常打开该类型的文件或无法直观查看数据的重要信息。它们需要特定的解析工具软件才能直观地读取并查看,如wireshark等。


总结

tcpdump是一款命令行网络数据包捕获和分析工具,主要用于实时监控和诊断网络流量。‌

‌核心作用:‌ tcpdump的核心功能是捕获流经指定网络接口的数据包,并基于网络层协议、主机地址、端口号或数据包方向等条件进行过滤分析。它通过Berkeley Packet Filter(BPF)语法高效筛选数据,输出格式包含时间戳、源/目标IP及端口等信息,便于快速识别异常流量或协议交互。‌

‌适用场景:‌ tcpdump广泛应用于以下领域:

  • ‌网络故障排查‌:通过捕获数据包定位连接超时、路由问题或服务不可达等故障,例如分析TCP三次握手过程。
  • ‌性能监控与流量分析‌:统计特定主机或端口的流量模式,评估带宽利用率,识别网络瓶颈。
  • ‌安全监控与威胁检测‌:捕获可疑流量(如异常端口访问或扫描行为),辅助入侵检测。
  • ‌协议分析与开发调试‌:验证自定义协议行为或调试网络应用通信细节。
相关推荐
深紫色的三北六号3 小时前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移
SudosuBash7 小时前
[CS:APP 3e] 关于对 第 12 章 读/写者的一点思考和题解 (作业 12.19,12.20,12.21)
linux·并发·操作系统(os)
哈基咪怎么可能是AI17 小时前
为什么我就想要「线性历史 + Signed Commits」GitHub 却把我当猴耍 🤬🎙️
linux·github
十日十行1 天前
Linux和window共享文件夹
linux
Sinclair2 天前
简单几步,安卓手机秒变服务器,安装 CMS 程序
android·服务器
木心月转码ing2 天前
WSL+Cpp开发环境配置
linux
Rockbean3 天前
用40行代码搭建自己的无服务器OCR
服务器·python·deepseek
茶杯梦轩3 天前
CompletableFuture 在 项目实战 中 创建异步任务 的核心优势及使用场景
服务器·后端·面试
崔小汤呀3 天前
最全的docker安装笔记,包含CentOS和Ubuntu
linux·后端
何中应3 天前
vi编辑器使用
linux·后端·操作系统