tcpdump能帮助我们捕捉并保存网络包,保存下来的网络包可用于分析网络负载情况,包可通过tcpdump命令解析,也可以保存成后缀为pcap的文件,使用wireshark等软件进行查看。

以下将给出9个使用tcpdump的例子,以说明tcpdump的具体使用方法。

1.针对特定网口抓包(-i选项)

当我们不加任何选项执行tcpdump时,tcpdump将抓取通过所有网口的包;使用-i选项,我们可以在某个指定的网口抓包:

linux:/tmp/lx # tcpdump -i eth0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size  bytes
:: win
:::() ack  win
::30.384195 arp who-has 128.128.128.35 tell 128.128.128.35

以上例子中,tcpdump抓取所有通过eth0的包。

2.抓取指定数目的包(-c选项)

默认情况下tcpdump将一直抓包,直到按下”ctrl+c”中止,使用-c选项我们可以指定抓包的数量:

linux:/tmp/lx # tcpdump -c 2 -i eth0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size  bytes
:::() ack  win
:: win 

 packets captured
 packets received by filter
 packets dropped by kernel

以上例子中,只针对eth0网口抓2个包。

3.将抓到包写入文件中(-w选项)

使用-w选项,我们可将抓包记录到一个指定文件中,以供后续分析

linux:/tmp/lx # tcpdump -w 20120606.pcap -i eth0
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size  bytes

 packets captured
 packets received by filter
 packets dropped by kernel

应当保存为.pcap后缀的文件,方便我们使用wireshark等工具读取分析。

4.读取tcpdump保存文件(-r选项)

对于保存的抓包文件,我们可以使用-r选项进行读取:

linux:/tmp/lx # tcpdump -r 20120606.pcap
reading .pcap, link-type EN10MB (Ethernet)
:::() ack  win
:::() ack  win
:: win 

5.抓包时不进行域名解析(-n选项)

默认情况下,tcpdump抓包结果中将进行域名解析,显示的是域名地址而非ip地址,使用-n选项,可指定显示ip地址。

6.增加抓包时间戳(-tttt选项)

使用-tttt选项,抓包结果中将包含抓包日期:

linux:/tmp/lx # tcpdump -n -tttt -i eth0
-- :: > : P :() ack  win
-- :: > : P :() ack  win
-- :: > : P :() ack  win 

7.指定抓包的协议类型

我们可以只抓某种协议的包,tcpdump支持指定以下协议:ip,ip6,arp,tcp,udp,wlan等。以下例子只抓取arp协议的包:

linux:/tmp/lx # tcpdump -i eth0 arp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size  bytes
::26.948656 arp who-has 10.10.1.30 tell 10.10.1.26
::27.017406 arp who-has 10.10.1.30 tell 10.10.1.26
::27.078803 arp who-has 10.10.1.30 tell 10.10.1.26

8.指定抓包端口

如果想要对某个特定的端口抓包,可以通过以下命令:

linux:/tmp/lx # tcpdump -i eth0 port 22
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size  bytes
:: win
:::() ack  win
:::() ack  win 

9.抓取特定目标ip和端口的包

网络包的内容中,包含了源ip地址、端口和目标ip、端口,我们可以根据目标ip和端口过滤tcpdump抓包结果,以下命令说明了此用法:

linux:/tmp/lx # tcpdump -i eth0 dst 10.70.121.92 and port 22

Reference: Packet Analyzer: 15 TCPDUMP Command Examples

最新文章

  1. MYSQL基础操作之数据约束与关联查询
  2. dubbox 的各种管理和监管
  3. Delete Node in a Linked List
  4. Java语言基础相关问题
  5. 使用NSData处理数据
  6. ios 学习 广告图片轮播器
  7. 第三章 jQuery中的DOM操作
  8. 利用Ajax把前端的数据封装成JSON格式发送到服务器端并写成XML格式在服务器的硬盘上
  9. hadoop错误Ignoring exception during close for org.apache.hadoop.mapred.MapTask$NewOutputCollector@17bda0f2 java.io.IOException Spill failed
  10. Spring学习之切入点表达式
  11. 集合的实现 -- 数据结构与算法的javascript描述 第九章
  12. malloc & free
  13. node.js的路由
  14. 201521123087 《Java程序设计》第3周学习总结
  15. 使用代码检查Dynamics 365中的备用键状态
  16. 使用EXE4J和Inno Setup 编译器将java程序打包成windows桌面应用安装程序
  17. 使用VAE、CNN encoder+孤立森林检测ssl加密异常流的初探——真是一个忧伤的故事!!!
  18. win7安装sqlserver2008
  19. 1071 Speech Patterns
  20. freemarker XMLGregorianCalendar 转日期

热门文章

  1. Hyperledger Fabric 命令整理
  2. 职业生涯之完成OCM考试后的感想
  3. django的命令, 配置,以及django使用mysql的流程
  4. Elasticsearch实战总结
  5. 详叙BeanWrapper和PropertyDescriptor
  6. 【基本数据结构】并查集-C++
  7. GO学习笔记 - 命令行解析
  8. 个人永久性免费-Excel催化剂功能第48波-拆分工作薄内工作表,堪称Excel界的单反
  9. Hive调优策略
  10. [leetcode] 264. Ugly Number II (medium)