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的雷达显示实例
435 0
|
算法 物联网 5G
UWB定位的7种算法
UWB定位系统基于超宽带技术,通过纳秒级脉冲实现高精度厘米级甚至毫米级定位。其7种主要算法包括:1) TOA(到达时间),利用信号传播时间计算距离;2) TDOA(到达时间差),通过多个基站的时间差确定位置;3) RSSI(接收信号强度),估算距离但精度较低;4) AOA(角度到达),测量信号入射角度;5) 混合算法,结合多种算法提高精度;6) 最小二乘法,处理多基站数据减少误差;7) 卡尔曼滤波,动态跟踪目标位置;8) 粒子滤波,适应复杂非线性环境。这些算法各具特点,适用于不同场景,如工业制造、智能仓储和室内定位等。
1488 11
(5)Qt中的日期和时间
本文介绍了Qt中处理日期和时间的类QDate、QTime和QDateTime,包括它们的格式化选项、构造函数、公共成员函数以及如何进行日期和时间的增减、比较,同时提到了QElapsedTimer作为QTime的替代品用于计时。
1353 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
1969 0
|
Kubernetes 网络协议 API
记一次kubernetes集群异常:kubelet连接apiserver超时
来源:小米云技术ID:mi-cloud-tech作者:高荣背 景 kubernetes是master-slave结构,master node是集群的大脑,当master node发生故障时整个集群都"out of control"。
|
3天前
|
人工智能 定位技术 SEO
我学 GEO 第 15 天:终于知道AI GEO该如何做?
我是暴走的莉莉酱,边旅行边研究AI GEO的数字游民。专注普通人如何提升“AI可见度”——让AI在回答用户问题时准确识别、理解并推荐你。不讲玄学,只做可测、可调、可持续的GEO实践。
372 124
|
6天前
|
机器学习/深度学习 人工智能 调度
🐴 HappyHorse 1.1 现已上线阿里云百炼!快来查收模型使用指南,现在调用享 6 折~
HappyHorse 1.1 是新一代视频生成大模型,全面升级动态表现力、角色一致性、指令遵循、视觉质感与音画协同能力。支持I2V/T2V/R2V三类生成,适配短剧、电商广告、品牌营销等场景,提供高质、流畅、可控的AI视频生产力。
640 4
🐴 HappyHorse 1.1 现已上线阿里云百炼!快来查收模型使用指南,现在调用享 6 折~

热门文章

最新文章