coldsmog开发笔记
JS 事件笔记
Ckeditor 上传WPS图片失败问题
Springboot
SpringBoot 统一异常处理
Springboot 引入外部jar包
Springboot 打成war包
Springboot 多环境配置
SpringBoot @Scope注解学习
Springboot 快速生成项目API文档
SpringCache 缓存
Spring jetcache 二级缓存
Springboot 按条件装配类
FastJson的JsonPath语法
正则表达式语法
Spring 路径匹配
Feign 基础数据操作
监控Feign调用metrics
Springboot feign的性能优化
Jackson 设置序列化属性
SpringBoot 集成 Spring Data Mongodb 操作 MongoDB
MongoDB 的一些注意事项
MongoDB 指令对比
Jackson 解析XML
Springboot Redis注册
SpringBoot RedisTemplate批量插入
Springboot 指标监控Micrometer
springboot validation 注解校验
springboot 引入配置
Springboot 静态文件处理
Springboot 导出csv文件
Springboot 事件驱动(发布/订阅模式)
Springboot 启动过程和扩展点
Springboot 优化停机上下线
Spring自动装配 - 干饭角度学习
Springboot ShardingJDBC
Springboot的重试
springboot 动态修改端口
Oracle
Oracle 中实现自增ID
Oracle 定时任务
Oracle 解锁临时表
Oracle 检查连接数
Oracle 表空间
Oracle 解释执行SQL
markdown作图(适用typora)
服务器压测
业务对象层和数据层
并发限流处理
中间件
Yarn的使用
Dubbo学习笔记-RPC扩展和本地Mock
Dubbo学习笔记-泛化实现进行mock
Redis缓存穿透,缓存击穿,缓存雪崩
Galera 集群说明
Pip 镜像
pip 使用
MySQL命令行
数据库缓存双写方案
Git相关操作
Redis 操作时间复杂度一览
nacos 杂记
mybatis 散记
shardingjdbc
一次线上事故排查发现的Caffeine缓存死锁问题
设计模式
重新讲讲单例模式和几种实现
更优雅地实现策略模式
Http-headers
Prometheus 杂散笔记
JAVA 散记
CompletableFuture
Gson、FastJson、Jackson、json-lib对比总结
jackson 时间的序列化踩坑
JVM
自定义注解
mysql类型和java类型 转换一览表
枚举维护一个Map<value, Enum>的映射
Java中String +、concat、StringBuilder、StringBuffer 性能对比
TraceId 使用
MySQL 多数据源处理
Mybatis-plus 流式查询
JAVA发送win 桌面通知
idea 启动项目失败非代码问题杂记
Lambda 简述
Arthas 使用笔记
一种链式更新数据的数据模式
Skywalking 新增中间件插件
Redission 使用
数据导出为图片
IDEA 的热重启
Netty 工具类
maven 插件
TCP 抓包
本文档使用 MrDoc 发布
-
+
首页
TCP 抓包
## 快速开始 ### 一个混合抓取请求外部的请求样例 ``` 抓取请求 TCP协议 172.28.1.1地址 830端口的包,并保存到pcap 文件 tcpdump -i any tcp and host 172.28.1.1 and port 830 -w netconf-830-tcp.pcap ```  ## 分析软件 wireshark 用其打开pcap就可以进行分析了  ## 常用语法 ### 0. 确保有安装tcpdump ```bash tcpdump -D ``` 若无,则先安装 #### Debian/Ubuntu 系列 ```bash sudo apt update sudo apt install tcpdump ``` #### Red Hat/CentOS 系列 ```bash sudo yum install tcpdump ``` 或者在 CentOS 8 及更新版本中: ```bash sudo dnf install tcpdump ``` #### Arch Linux ```bash sudo pacman -S tcpdump ``` ### 1. 基本语法 ```bash tcpdump [选项] [表达式] ``` ### 2. 常用选项详解 - **-i <interface>**: 指定要监听的网络接口。例如,`-i eth0` 表示监听 `eth0` 接口。使用 `-D` 可以列出所有可用的接口。 - **-w <file>**: 将抓取的数据包写入指定的文件中(通常是 `.pcap` 格式),例如:`-w output.pcap`。 - **-r <file>**: 从指定的文件中读取数据包进行分析,例如:`-r output.pcap`。 - **-c <count>**: 指定要捕获的数据包数量,达到指定数量后停止抓包,例如:`-c 100` 表示捕获 100 个数据包。 - **-n**: 不解析主机名和服务名,直接显示 IP 地址和端口号,减少 DNS 查询时间。 - **-nn**: 不解析主机名和服务名,同时不解析端口号,显示完整的 IP 和端口号。 - **-v, -vv, -vvv**: 增加输出的详细程度,`-v` 表示详细,`-vv` 表示更详细,`-vvv` 表示最详细。 - **-s <snaplen>**: 设置抓包的快照长度,指定每个数据包的最大字节数,默认是 68 字节,通常设置为 1514 字节(以捕获完整的以太网帧)。 - **-X**: 显示数据包的十六进制和 ASCII 内容,便于查看数据包的详细内容。 - **-A**: 以 ASCII 格式显示数据包的内容,通常用于查看 HTTP 请求和响应。 - **-e**: 显示链路层头部信息,通常用于分析链路层协议。 - **-t**: 不显示时间戳,适用于只关注数据包内容的情况。 - **-q**: 安静模式,减少输出信息,适合快速查看。 ### 3. 常用过滤表达式 - **host <IP>**: 捕获与指定 IP 地址相关的所有数据包,例如:`host 192.168.1.1`。 - **src <IP>**: 捕获源地址为指定 IP 的数据包,例如:`src 192.168.1.1`。 - **dst <IP>**: 捕获目标地址为指定 IP 的数据包,例如:`dst 192.168.1.1`。 - **port <port>**: 捕获与指定端口相关的所有数据包,例如:`port 80`。 - **tcp**: 捕获所有 TCP 数据包,例如:`tcp`。 - **udp**: 捕获所有 UDP 数据包,例如:`udp`。 - **icmp**: 捕获所有 ICMP 数据包,例如:`icmp`。 - **and, or, not**: 组合多个过滤条件,例如:`host 192.168.1.1 and port 80`。 ### 4. 示例命令 1. **抓取所有 TCP 数据包**: ```bash tcpdump -i eth0 tcp ``` 2. **抓取特定端口的流量(如 80 端口)**: ```bash tcpdump -i eth0 port 80 ``` 3. **抓取与特定 IP 地址的流量**: ```bash tcpdump -i eth0 host 192.168.1.1 ``` 4. **抓取并保存到文件**: ```bash tcpdump -i eth0 -w output.pcap ``` 5. **从文件读取并显示数据包**: ```bash tcpdump -r output.pcap ``` 6. **抓取特定数量的数据包**: ```bash tcpdump -i eth0 -c 100 ``` 7. **以详细模式显示数据包内容**: ```bash tcpdump -i eth0 -vv ``` 8. **抓取并显示数据包的十六进制和 ASCII 内容**: ```bash tcpdump -i eth0 -X ``` 9. 抓取特定源 IP 的数据包 ```bash tcpdump -i eth0 src 192.168.1.10 ``` 10. 抓取特定目标 IP 的数据包 ```bash tcpdump -i eth0 dst 192.168.1.10 ```
寒烟濡雨
2025年1月21日 10:47
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
关于 MrDoc
觅思文档MrDoc
是
州的先生
开发并开源的在线文档系统,其适合作为个人和小型团队的云笔记、文档和知识库管理工具。
如果觅思文档给你或你的团队带来了帮助,欢迎对作者进行一些打赏捐助,这将有力支持作者持续投入精力更新和维护觅思文档,感谢你的捐助!
>>>捐助鸣谢列表
微信
支付宝
QQ
PayPal
Markdown文件
分享
链接
类型
密码
更新密码