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/
目录
相关文章
|
应用服务中间件 nginx
wireshark抓包入门使用教程
wireshark抓包入门使用教程
1012 0
wireshark抓包入门使用教程
|
3月前
|
网络协议 数据挖掘 Linux
【最详细】Wireshark使用教程(二)
【最详细】Wireshark使用教程(二)
87 1
|
3月前
|
网络协议 网络安全 数据安全/隐私保护
【最详细】Wireshark使用教程(一)
【最详细】Wireshark使用教程(一)
238 0
|
11月前
|
网络协议
Wireshark 抓包工具介绍
Wireshark 抓包工具介绍
107 0
|
域名解析 网络协议
Lab 网络常用命令及wireshark抓包分析
1. 熟悉网络命令 ftp 用于连接服务器的ftp服务器 2. 计算机网络协议的分层机制和实例 3. 抓包软件Wireshark的使用
|
网络协议 Unix 网络安全
[工具使用]Wireshark(上)
[工具使用]Wireshark
241 0
[工具使用]Wireshark(上)
|
网络协议 测试技术 存储
IPerf——网络测试工具介绍与源码解析(3)
【线程的生成】   生成线程时需要传入一个thread_Settings类型的变量,thread_Settings包含所有线程运行时需要的信息,命令行选项参数解析后所有得到的属性都存储到该类型的变量中,作为线程生成的传入值能够决定当前线程扮演的角色。
784 0
|
网络协议 测试技术 C++
IPerf——网络测试工具介绍与源码解析(1)
IPerf是一个开源的测试网络宽带并能统计并报告延迟抖动、数据包丢失率信息的控制台命令程序,通过参数选项可以方便地看出,通过设置不同的选项值对网络带宽的影响,对于学习网络编程还是有一定的借鉴意义,至少可以玩上一段时间。
1420 0
|
网络协议 测试技术 Windows
IPerf——网络测试工具介绍与源码解析(2)
对于IPerf源码解析,我是基于2.0.5版本在Windows下执行的情况进行分析的,提倡开始先通过对源码的简单修改使其能够在本地编译器运行起来,这样可以打印输出一些中间信息,对于理解源码的逻辑,程序实现的过程能够起到事半功倍的效果。
973 0