0

0

Linux tcpdump 抓包与分析技巧

冷漠man

冷漠man

发布时间:2026-02-16 12:19:02

|

962人浏览过

|

来源于php中文网

原创

抓包必须加 -s 0 保证完整捕获应用层数据,-nn 禁用解析防卡顿,过滤需明确 src/dst 方向,-c 与 -w 组合实现自动轮转防磁盘打满。

linux tcpdump 抓包与分析技巧

抓包前必须加 -s 0,否则 HTTP/HTTPS 明文可能被截断

默认 tcpdump 只抓前 68 字节,对 TCP 头够用,但对应用层数据(比如 HTTP 请求头、JSON 响应体)远远不够——你会看到一堆不完整的 GET /api/… 或乱码,甚至根本看不到 Host、User-Agent 等关键字段。

  • -s 0 表示“抓完整包”,这是分析 Web 流量的底线配置,不是可选项
  • 如果漏掉它,Wireshark 里点开 TCP 流时会显示 [Packet size limited during capture],说明数据已被丢弃
  • 在高吞吐场景下,-s 0 会略微增加磁盘 I/O 和内存占用,但相比丢关键信息,这点代价几乎可以忽略

保存 pcap 文件时,别直接用 tcpdump -w file.cap 而不加 -n-nn

默认 tcpdump 会对每个 IP 和端口做反向 DNS 解析和 /etc/services 查找,导致抓包过程卡顿、延迟升高,甚至在无 DNS 环境下阻塞数秒才出第一行;更糟的是,解析失败时可能让输出混乱或中断。

Linux加PHP加MySQL案例教程
Linux加PHP加MySQL案例教程

通过大量实例系统全面地介绍了Linux+PHP+MySQL环境下的网络后台开发技术,详尽分析了近30个典型案例。 本书以培养高级网站建设与管理人才为目标,内容循序渐进,由浅入深,通过大量的实例系统全面地介绍了Linux+PHP+MySQL环境下的网络后台开发技术。 本书详尽分析了近30个典型案例。包括计数器、网站流量统计、留言扳、论坛系统、聊天室、投票与调查、用户管理、新闻发布系统、广告轮播

下载
  • -n:禁用主机名解析(IP 直接显示),保留端口服务名(如 http
  • -nn:同时禁用主机名和端口名解析(显示为 192.168.1.100.8080),最干净、最稳定,推荐日常使用
  • 如果你后续要用 Wireshark 分析,它自己会做解析,tcpdump 这边没必要重复干

过滤表达式里写 host A and port 80 不等于只抓 A 的 80 端口流量

这个常见写法实际匹配的是“源或目的为 A,且源或目的端口为 80”的所有包——比如 A 发起的 HTTPS 握手(目标端口 443)不会被捕获,但 A 收到的来自某 CDN 的 HTTP 响应(源端口 80)却会被抓进来,逻辑容易混淆。

  • 要精准抓 A 主机发起的 HTTP 请求,用:src host A and dst port 80
  • 要抓 A 主机收到的 HTTP 响应,用:dst host A and src port 80
  • 想同时覆盖请求+响应,且确保是同一连接,建议用:host A and (port 80 or port 443),再靠 Wireshark 的 “Follow TCP Stream” 后续筛选
  • 注意括号必须用反斜杠转义:and \( port 80 or port 443 \),否则 shell 会报错

后台长期抓包别只靠 nohup,得配 -C-W 防磁盘打满

线上问题复现慢,常需挂几个小时甚至过夜。若只用 nohup tcpdump -w log.cap &,一旦网络突发流量大,单个文件可能飙到几十 GB,轻则填满根分区,重则触发 OOM 或日志轮转失败。

  • -C 100:按 100MB 自动切分(单位是 MB,不是 MiB),生成 log.caplog.cap1log.cap2
  • -W 10:最多保留 10 个分片,旧文件自动覆盖,避免无限增长
  • 组合起来就是:nohup tcpdump -i eth0 -nn -s 0 -C 100 -W 10 -w /var/log/tcpdump/http.cap &
  • 注意:-C-W 必须一起用才有意义,单独 -C 仍可能积累大量文件
Wireshark 里打开 pcap 后,真正难的是判断哪个包是“第一个 SYN”、哪个是“最后 FIN”,而不是怎么抓到它——tcpdump 抓得再全,也替代不了对 TCP 状态机的理解。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

441

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

544

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

321

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

81

2025.09.10

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

417

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

589

2023.08.10

http500解决方法
http500解决方法

http500解决方法有检查服务器日志、检查代码错误、检查服务器配置、检查文件和目录权限、检查资源不足、更新软件版本、重启服务器或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

465

2023.11.09

http请求415错误怎么解决
http请求415错误怎么解决

解决方法:1、检查请求头中的Content-Type;2、检查请求体中的数据格式;3、使用适当的编码格式;4、使用适当的请求方法;5、检查服务器端的支持情况。更多http请求415错误怎么解决的相关内容,可以阅读下面的文章。

436

2023.11.14

pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

145

2026.02.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 9.1万人学习

Git 教程
Git 教程

共21课时 | 3.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号