首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >tcpdump必须掌握的抓包技巧

tcpdump必须掌握的抓包技巧

作者头像
用户5921339
发布2025-07-03 15:46:11
发布2025-07-03 15:46:11
3940
举报

tcpdump 是 Linux/Unix 系统的网络抓包分析神器。它能像监控摄像头一样,实时捕获流经网卡的数据包,并将这些二进制数据翻译成可读信息。无论是排查网络故障、分析协议交互,还是安全检测,它都是工程师工具箱里的“瑞士军刀”。--IT人家

一、语法

代码语言:javascript
复制
tcpdump [ -AbdDefhHIJKlLnNOpqStuUvxX# ] [ -B buffer_size ]
      [ -c count ]
      [ -C file_size ] [ -G rotate_seconds ] [ -F file ]
      [ -i interface ] [ -j tstamp_type ] [ -m module ] [ -M secret ]
      [ --number ] [ -Q|-P in|out|inout ]
      [ -r file ] [ -V file ] [ -s snaplen ] [ -T type ] [ -w file ]
      [ -W filecount ]
      [ -E spi@ipaddr algo:secret,...  ]
      [ -y datalinktype ] [ -z postrotate-command ] [ -Z user ]
      [ --time-stamp-precision=tstamp_precision ]
      [ --immediate-mode ] [ --version ]
      [ expression ]

二、常见参数

-i:指定网卡(如 -i eth0),-i any 监听所有接口

-c:限制抓包数量(如 -c 100 捕获100个包后停止)

-s:设置抓包长度(-s 0 捕获完整数据包)

-w:保存到文件(如 -w capture.pcap)

-d:把编译过的数据包编码转换成可阅读的格式

-e:用来显示源、目标ip的mac地址

-r: 读取文件分析

-n:禁用域名解析,直接显示IP

-l:开启行缓冲模式

-A/-X:ASCII或十六进制格式显示内容

三、过滤表达式

  1. 主机、网络与端口过滤‌:
  • host:主机,如host 192.168.1.100
  • net:网络,如net 192.168.1.0/24
  • port:端口,如port 80port http

2.协议过滤

  • tcp、udp、arp、rarp、icmp、ssh、telnet、ntp、ftp等等

3.方向过滤

  • src、dst、src and dst、dst or src、in、out、inout

4.逻辑组合

  • and/or/not(&& || !):如 src host 192.168.1.100 and dst port 443

四、场景举例

  • 抓包立即写入磁盘
代码语言:javascript
复制
tcpdump -i eth0 -U -w live.pcap
  • 捕获特定主机的HTTP/HTTPS流量:
代码语言:javascript
复制
tcpdump -i eth0 -n 'src host 192.168.1.1 and (dst port 80 or 443) and tcp'
  • 抓取来自源地址为192.168.1.100的主机发送的icmp报文
代码语言:javascript
复制
tcpdump -i eth0 -nn 'icmp and src host 192.168.1.100'
  • 监控网卡 eth0,捕获IP 192.168.1.100 发出的、基于TCP协议的、HTTP流量(端口80),直接显示IP地址和端口号,并打印数据包中的明文内容
代码语言:javascript
复制
tcpdump -i eth0 -nnA 'port 80 and tcp and src host 192.168.1.100'
-Q (--direction):流量方向控制
  • 只抓取进入网卡的流量 (Inbound)
代码语言:javascript
复制
tcpdump -i eth0 -Q in -nn 'tcp port 22'
  • 抓取发送到主机192.168.1.100的icmp报文
代码语言:javascript
复制
tcpdump -i eth0 -Q out -nn 'host 192.168.1.100' and icmp

等同于

代码语言:javascript
复制
tcpdump -i eth0 -nn 'dst host 192.168.1.100' and icmp

-tttt:打印完整可读时间戳

  • 捕获ssh连接流量,并使用标准时间格式输出
代码语言:javascript
复制
tcpdump -tttt -i eth0 'port 22'

-e 用来显示源、目标ip的mac地址

代码语言:javascript
复制
tcpdump -i eth0 -e 'arp'
  • 协议与端口组合,抓取端口80或443且协议为TCP的报文
代码语言:javascript
复制
tcpdump -i eth0 -n 'tcp and (port 80 or port 443)' -vvv

-vvv:获取更详细的输出信息

  • 抓取TCP握手异常 (SYN无响应)的报文
代码语言:javascript
复制
tcpdump -i eth0 -n 'tcp[tcpflags] & (tcp-syn) != 0 and tcp[tcpflags] & (tcp-ack) = 0'
  • 实时提取IP地址为192.168.1.100的HTTP报文
代码语言:javascript
复制
tcpdump -i eth0 -l -A -s0 'port 80' | grep -i '192.168.1.100'
  • 捕获进出IP为192.168.1.100的HTTPS流量,每文件100MB,保留最后10个文件,带纳秒时间戳
代码语言:javascript
复制
tcpdump -i eth0 -Q inout -nn 'host 192.168.1.100 and port 443' \
  -C 100 -W 10 -w https_trace.pcap \
  --time-stamp-precision nano \
  -z gzip  # 自动压缩完成文件
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-07-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT人家 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、语法
  • 二、常见参数
  • 三、过滤表达式
  • 四、场景举例
    • -Q (--direction):流量方向控制
    • -tttt:打印完整可读时间戳
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档