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/
目录
相关文章
|
12月前
|
数据处理 索引
基于Qt和OpenGL的雷达显示实例
基于Qt和OpenGL的雷达显示实例
447 0
|
算法 物联网 5G
UWB定位的7种算法
UWB定位系统基于超宽带技术,通过纳秒级脉冲实现高精度厘米级甚至毫米级定位。其7种主要算法包括:1) TOA(到达时间),利用信号传播时间计算距离;2) TDOA(到达时间差),通过多个基站的时间差确定位置;3) RSSI(接收信号强度),估算距离但精度较低;4) AOA(角度到达),测量信号入射角度;5) 混合算法,结合多种算法提高精度;6) 最小二乘法,处理多基站数据减少误差;7) 卡尔曼滤波,动态跟踪目标位置;8) 粒子滤波,适应复杂非线性环境。这些算法各具特点,适用于不同场景,如工业制造、智能仓储和室内定位等。
1512 11
(5)Qt中的日期和时间
本文介绍了Qt中处理日期和时间的类QDate、QTime和QDateTime,包括它们的格式化选项、构造函数、公共成员函数以及如何进行日期和时间的增减、比较,同时提到了QElapsedTimer作为QTime的替代品用于计时。
1377 0
|
Kubernetes 网络协议 API
记一次kubernetes集群异常:kubelet连接apiserver超时
来源:小米云技术ID:mi-cloud-tech作者:高荣背 景 kubernetes是master-slave结构,master node是集群的大脑,当master node发生故障时整个集群都"out of control"。
|
23天前
|
Linux 程序员 数据格式
【2026最新】Notepad++下载、安装和使用一篇搞定(附中文版安装包)
Notepad++ 是一款免费开源、轻量高效的 Windows 文本编辑器,支持 C/Python/HTML 等 80+ 语言语法高亮、代码折叠、正则替换、编码转换及插件扩展,专为程序员与文本处理用户打造,完美替代系统记事本。(239字)
|
8天前
|
人工智能 缓存 安全
Claude Code 封号真实原因曝光,这次彻底不装了,直接针对国内开发者的账号下手?
Claude Code 封号潮背后:逆向扒出客户端隐写区域标记,Anthropic 政策收紧叠加 DeepSeek 7 月涨价,国产替代更紧迫。
|
13天前
|
人工智能 JSON 自然语言处理
让教学更智慧:用阿里云百炼工作流,自动生成中小学教材内容#小有可为#有温度的AI
通过可视化工作流编排,将大模型推理能力转化为标准化的教学内容生成引擎。教师只需输入教材标题和适用学段,即可自动获得结构完整、符合课程标准的章节内容,大幅降低备课门槛,助力教育资源均衡化。
497 127