tcpdump使用指南

简介: 原作者:阿里云解决方案架构师,韩虎。本文针对tcpdump工具,回答如下问题: tcpdump是怎样抓包的? tcpdump如何使用? 我们自己是否可以做扩展?



原理

0c894041ba94b270f2aa5176bca44357f2f18850

网卡工作模式

单播模式(Unicast)

多播模式(Multicast)

广播模式(Broadcast)

混杂模式(Promiscuous)

Tips:在混杂模式下的网卡能够接收一切通过的数据,而不管该数据目的地址是否是它。

查看网卡工作模式
9ceb1efc0cf2b0411138893dfdbbf1205ed74429

抓包

tcpdump常用参数说明
-i any : 监听所有网卡
-i eth0 : 监听eth0网卡
-D : 显示所有网卡
-n : 禁止解析主机名
-nn : 禁止解析主机名和端口号
-X : 将包的内容按十六进制和ASCII格式显示
-XX : 跟-X选项类型,并额外显示以太协议头
-v,-vv,-vvv : 递增显示包的信息
-c : 最多抓n个包
-s : 定义抓包的大小,-s0抓取全部
-S : 打印绝对的tcp序号
4634537963f86a40589263450446325f71965995
sudo tcpdump –iany –nnvvXS –s1514 –c10
22e42697f5a5912a176faf05eac2477e0b4ce397
sudo tcpdump -iany src host 192.168.150.1 and dst port 80 -nnvvXS -s1514 -c10
sudo tcpdump -iany dst host 192.168.150.1 and src port 80 -nnvvXS -s1514 -c10
sudo tcpdump -iany host 192.168.150.1 and port 80 -nnvvXS -s1514 -c10
c6713e4df8e560584908a3e2ac445f5cfbf0148f
sudo tcpdump -iany port 80 -nnvvXS -s1514 -w test.cap
e0661e5f5f70e82e0caed33114f4fae0b58ecf6b

动手写抓包工具

使用libpcap开源库

1f76fb383d1d4e6ddee746662a1adea91a484696

简单的抓包程序

int main ()  {


int i = 0, count = 0;

pcap_t *descr = NULL;

char errbuf[PCAP_ERRBUF_SIZE], *device = NULL;

memset(errbuf, 0, PCAP_ERRBUF_SIZE);


/* Get the name of the first device suitable for capture */

device = pcap_lookupdev(errbuf);


printf(“Opening device %s\n”, device);


/* Open device in promiscuous mode */

descr = pcap_open_live(device, MAXBYTES2CAPTURE, 1, 512, errbuf);


/* Loop forever & call processPacket() for every received packet */

pcap_loop(descr, -1, processPacket, (u_char *)&count);


return 0;

}

参考资料

http://www.tcpdump.org/
https://www.wireshark.org/
目录
相关文章
|
11月前
|
数据处理 索引
基于Qt和OpenGL的雷达显示实例
基于Qt和OpenGL的雷达显示实例
421 0
|
算法 物联网 5G
UWB定位的7种算法
UWB定位系统基于超宽带技术,通过纳秒级脉冲实现高精度厘米级甚至毫米级定位。其7种主要算法包括:1) TOA(到达时间),利用信号传播时间计算距离;2) TDOA(到达时间差),通过多个基站的时间差确定位置;3) RSSI(接收信号强度),估算距离但精度较低;4) AOA(角度到达),测量信号入射角度;5) 混合算法,结合多种算法提高精度;6) 最小二乘法,处理多基站数据减少误差;7) 卡尔曼滤波,动态跟踪目标位置;8) 粒子滤波,适应复杂非线性环境。这些算法各具特点,适用于不同场景,如工业制造、智能仓储和室内定位等。
1423 11
(5)Qt中的日期和时间
本文介绍了Qt中处理日期和时间的类QDate、QTime和QDateTime,包括它们的格式化选项、构造函数、公共成员函数以及如何进行日期和时间的增减、比较,同时提到了QElapsedTimer作为QTime的替代品用于计时。
1314 0
|
Linux
内核态的文件操作函数:filp_open、filp_close、vfs_read、vfs_write、set_fs、get_fs
内核态的文件操作函数:filp_open、filp_close、vfs_read、vfs_write、set_fs、get_fs
1933 0
|
Kubernetes 网络协议 API
记一次kubernetes集群异常:kubelet连接apiserver超时
来源:小米云技术ID:mi-cloud-tech作者:高荣背 景 kubernetes是master-slave结构,master node是集群的大脑,当master node发生故障时整个集群都"out of control"。
|
16天前
|
人工智能 自然语言处理 文字识别
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
Qwen3.7-Max是阿里云百炼面向智能体时代推出的新一代旗舰模型,对标GPT-5.5、Claude Opus 4.7等闭源旗舰。该模型支持百万级token上下文窗口,具备顶级推理能力、多模态搜索与视觉理解增强、流式输出低延迟响应等核心优势,覆盖编程、办公、长周期自主执行等复杂场景。同时支持OpenAI接口兼容,便于系统快速迁移。用户可通过Token Plan团队或节省计划等订阅方式灵活调用,适合企业级高要求场景使用。
6019 30
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
|
1天前
|
数据采集 人工智能 前端开发
让 Coding Agent 从黑盒到透明:阿里云 Agent 观测审计数据采集实践
AI Agent 规模化落地带来执行黑盒、行为难追溯、成本难度量三大难题。阿里云基于 OTel 标准,面向 Coding Agent、个人通用助理和框架型 Agent,推出 LoongSuite Pilot、插件及探针等无侵入采集方案,让 Agent 实现可看见、可分析、可审计、可治理。
572 135
|
11天前
|
存储 定位技术 数据库
CodeGraph 如何让 Claude Code减少 7 成工具调用?
CodeGraph 为 Coding Agent 提供本地代码知识图谱,把函数、类、调用链和框架路由提前整理成“项目地图”,减少盲目搜索和文件读取。它不是新 Agent,而是上下文基础设施,让 Agent 更快找到正确代码路径,平均减少 7 成工具调用。
1189 3