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

tcpdump 的用法

tcpdump 是一款强大的命令行网络抓包工具,用于捕获和分析网络流量。以下是其核心用法指南:


一、基础命令格式

sudo tcpdump [选项] [过滤表达式]

权限要求:需 root 权限(使用 sudo


二、常用选项

选项说明
-i <接口>指定监听的网络接口(如 eth0, any 表示所有接口)
-n禁用主机名解析(直接显示 IP 地址)
-nn禁用主机名和端口号解析(显示原始数值)
-w <文件>将捕获的流量写入文件(.pcap 格式,可用 Wireshark 分析)
-r <文件>读取已保存的抓包文件
-c <数量>捕获指定数量的数据包后自动停止
-s <长度>设置每个包的捕获长度(如 -s 0 捕获完整数据包)
-v详细输出(-vv-vvv 显示更详细信息)
-q简化输出(仅显示基本信息)
-A以 ASCII 格式显示数据内容(适用于 HTTP/文本协议)
-X同时以十六进制和 ASCII 格式显示数据

三、过滤表达式

1. 按协议过滤
tcpdump tcp        # 仅捕获 TCP 流量
tcpdump udp        # 仅捕获 UDP 流量
tcpdump icmp       # 仅捕获 ICMP 流量
tcpdump arp        # 仅捕获 ARP 流量
2. 按 IP 地址过滤
tcpdump host 192.168.1.100       # 捕获与指定主机的所有通信
tcpdump src 10.0.0.1             # 捕获源 IP 为 10.0.0.1 的流量
tcpdump dst 172.16.0.5           # 捕获目的 IP 为 172.16.0.5 的流量
3. 按端口过滤
tcpdump port 80                  # 捕获端口 80 的流量(HTTP)
tcpdump src port 22              # 捕获源端口为 22 的流量(SSH)
tcpdump dst port 443             # 捕获目的端口为 443 的流量(HTTPS)
4. 组合条件
tcpdump 'tcp and port 80 and host 192.168.1.1'  # 捕获指定主机的 TCP 80 端口流量
tcpdump 'udp and (port 53 or port 67)'          # 捕获 DNS 或 DHCP 流量
tcpdump 'icmp and src 10.0.0.5'                 # 捕获来自 10.0.0.5 的 ICMP 包

四、实用示例

1. 捕获所有流量并保存到文件
sudo tcpdump -i any -s 0 -w full_traffic.pcap
2. 实时分析 HTTP 请求
sudo tcpdump -i eth0 -nnA 'tcp port 80 and (tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420)'

说明:匹配 HTTP GET 请求(十六进制 47455420 对应 "GET ")

3. 捕获 DNS 查询
sudo tcpdump -i eth0 -nn 'udp port 53'
4. 分析 SSH 连接
sudo tcpdump -i eth0 'tcp port 22 and (tcp[tcpflags] & (tcp-syn|tcp-ack) != 0)'
5. 读取抓包文件
tcpdump -r full_traffic.pcap -nn 'icmp'

五、输出解读

  • 时间戳:如 12:34:56.789012 表示捕获时间
  • 协议类型:如 IPTCPUDP
  • 源和目的地址:格式 源IP.端口 > 目的IP.端口
  • 标志位:如 [S](SYN)、[.](ACK)、[P](PSH)、[F](FIN)
  • 数据包长度:如 length 60 表示包大小(字节)

六、高级技巧

  1. 排除特定流量

    tcpdump 'not port 22'     # 不捕获 SSH 流量
    
  2. 按包大小过滤

    tcpdump 'greater 1000'    # 捕获大于 1000 字节的包
    
  3. 显示 MAC 地址

    tcpdump -e                # 显示源/目的 MAC 地址
    

七、注意事项

  • 避免在生产环境长时间抓包(可能生成大文件)
  • 使用 -w 保存文件后,可用 Wireshark 图形化分析
  • 敏感信息(如密码)可能以明文传输,抓包需谨慎

通过 man tcpdump 可查看完整手册。

相关文章:

  • CDGP重点知识梳理(82个)
  • Auto DOP:让并行执行实现智能调优 | OceanBase 实践
  • 达梦、PostgreSQL数据库讲json解析成临时表(json_table函数的使用)
  • 通用外设驱动模型(四步法)
  • 微信小程序地图缩放scale隐性bug
  • [AI Tools] Dify 平台插件开发全解:如何构建 Tools 插件并解析输出逻辑
  • OpenCV中适用华为昇腾(Ascend)后端的逐元素操作(Per-element Operations)
  • 【质量管理】TRIZ因果链分析:解码质量问题的“多米诺效应“
  • 经典计算核心问题在于多项式时间内无法求解
  • 重庆工商职业学院“户卫者”团队为建筑外墙检测技术推广创新赋能
  • PostgreSQL创建只读账号
  • 自适应混合索引创建与管理:一种智能数据库优化机制的研究
  • PH热榜 | 2025-05-09
  • 『Python学习笔记』ubuntu解决matplotlit中文乱码的问题!
  • 鸿蒙电脑:五年铸剑开新篇,国产操作系统新引擎
  • 华为防火墙双机热备(负载分担)
  • 华为欧拉(EulerOS)系统全栈软件部署指南:从 Redis 到 MySQL 实战详解
  • 计算机视觉】OpenCV项目实战:eye_mouse_movement:基于opencv实战眼睛控制鼠标
  • Oracle — 数据管理
  • Faiss 索引深度解析:从基础到实战
  • 中俄就应对美加征所谓“对等关税”等问题进行深入交流
  • 七大交响乐团“神仙斗法”,时代交响在上海奏出时代新声
  • 正荣地产:董事会主席、行政总裁辞任,拟投入更多精力推动境内债重组等工作
  • 金融监管总局:做好2025年小微企业金融服务工作
  • 碧桂园服务:拟向杨惠妍全资持有的公司提供10亿元贷款,借款将转借给碧桂园用作保交楼
  • 李云泽:支持设立新的金融资产投资公司,今天即将批复一家