一.简单介绍

tcpdump命令是一款sniffer工具,它可以打印所有经过网络接口的数据包的头信息,也可以使用-w选项将数据包保存到文件中,方便以后分析。

二.使用语法

语法:

tcpdump (选项参数)

抓包选项:

-c <数据包数目>:    指定要抓取的包数量
-i <网卡接口>: 指定tcpdump需要监听的接口,默认会抓取第一个网络接口;
-n: 对地址以数字方式显示,否则显示为主机名,也就是说-n选项不做主机名解析;
-nn: 除了-n的作用外,还把端口显示为数值,否则显示端口服务名;
-P: 指定要抓取的包是流入还是流出的包,可以给定的值为"in"、"out"和"inout",默认为"inout";
-s <数据包长度>: 设置tcpdump的数据包抓取长度为len,如果不设置默认为65535字节。对于要抓取的数据包较大时,长度设置不够可能会产生包截断。

输出选项:

-e:    输出的每行中都将包括数据链路层头部信息,例如源MAC和目标MAC。
-q: 快速打印输出。即打印很少的协议相关信息,从而输出行都比较简短。
-X: 输出包的头部数据,会以16进制和ASCII两种方式同时输出。
-XX: 输出包的头部数据,会以16进制和ASCII两种方式同时输出,更详细。
-v: 当分析和打印的时候,产生详细的输出。
-vv: 产生比-v更详细的输出。
-vvv: 产生比-vv更详细的输出

其它功能选项:

-D:    列出可用于抓包的接口,将会列出接口的数值编号和接口名,它们都可以用于"-i"后。
-F: 从文件中读取抓包的表达式,若使用该选项,则命令行中给定的其它表达式都将失效。
-w: 将抓包数据输出到文件中而不是标准输出,这里可以同时配合"-G time"选项使得输出文件每time秒就自动切换到另一个文件。可通过"-r"选项载入这些文件以进行分析和打印。
-r: 从给定的数据包文件中读取数据。使用"-"表示从标准输入中读取。

三.具体使用示例

3.1 默认启动

tcpdump

默认情况下,直接启动tcpdump将监视第一个网络接口(非lo口)上所有流通的数据包,这样抓取的结果会非常多,滚动非常快。

3.2 监视指定网口的数据包

tcpdump -i em2

3.3 监视指定主机的数据包

例如这里监视所有进入或离开node1的数据包:

tcpdump -i em2 host node1

3.4 打印node1和node2或者node1和node3之间通信的数据包

tcmdump -i em2 host node1 and node2
tcmdump -i em2 host node1 and node3

3.5 打印node1和其它所有(不包含node4)主机之间通信的IP数据包

tcpdump -i em2 host node1 and not node4

3.6 截获主机node1发送的所有数据

tcpdump -i em2 src host node1

3.7 监视所有发送到主机node1的数据包

tcpdump -i em2 dst host node1

3.8 监视指定主机和端口的数据包

tcpdump -i em2 port 22 and host node1

3.9 监视指定网络的数据包

例如这里监视本机与192.168网段通信的数据包,"-c 10"表示只抓取10个包

tcpdump -i em2 -c 10 net 192.168

3.10 抓取ping包

tcpdump -c 5 -nn -i ens33

3.11 抓取到本机22端口的包

tcpdump -c 10 -nn -i em2 tcp dst port 22

3.12 解析包的数据

tcpdump -c 2 -q -XX -vvv -nn -i em2 tcp dst port 22

参考链接:https://www.jianshu.com/p/d9162722f189

tcpdump工具使用的更多相关文章

  1. Ubuntu使用tcpdump工具

    Ubuntu默认是安装好了tcpdump工具的,如果没有安装的话使用sudo apt-get install tcpdump即可安装.   (如果遇到tcpdump: no suitable devi ...

  2. tcpdump工具使用说明

    tcpdump采用命令行方式对接口的数据包进行筛选抓取,其丰富特性表现在灵活的表达式上. 注意,tcpdump只能抓取流经本机的数据包,不带任何选项的tcpdump,默认会抓取第一个网络接口,且只有将 ...

  3. 举例讲解Linux中tcpdump工具的应用

    先来看一个比较基本的用法: tcpdump -i eth0 其中,eth0为参数值,表示需要抓包的网口,这是个必需参数哦. tcpdump的具体参数及意义: -i:指定tcpdump监听的网络接口 - ...

  4. tcpdump工具抓到的cap文件

    一.链路层   ---> 以太网数据包 一个数据包被称为一帧, 制定这个规则的协议就是以太网协议.一个完整的以太网数据包如下图所示: 整个数据帧由首部.数据和尾部三部分组成,首部固定为14个字节 ...

  5. 运维工程师必会工具(Nmap和TCPdump)

    1.NMap工具 主要功能:探测主机是否在线.扫描主机开放端口和嗅探网络服务,用于网络探测和安全扫描. NMap支持很多扫描技术,例如:UDP.TCPconnect().TCPSYN(半开扫描).ft ...

  6. 抓包工具tcpdump用法说明--2

    第一招: 通俗的说,tcpdump是一个抓包工具,用于抓取互联网上传输的数据包.形象的说,tcpdump就好比是国家海关,驻扎在出入境的咽喉要道,凡是要入境和出境的集装箱,海关人员总要打开箱子,看看里 ...

  7. ADB工具和手机抓包方法介绍

    Android抓包方法 工具包内容如下:(下载地址:http://download.csdn.net/download/yezhaohui2011/8368061) adb ——谷歌提供的安卓远程调试 ...

  8. #linux包之tcpdump之tcpdump命令

    概述 man tcpdump 已阅 yum install tcpdump Downloading Packages:(1/2): libpcap-1.4.0-1.20130826git2dbcaa1 ...

  9. 【转载】linux环境下tcpdump源代码分析

    linux环境下tcpdump源代码分析 原文时间 2013-10-11 13:13:02  CSDN博客 原文链接  http://blog.csdn.net/han_dawei/article/d ...

  10. linux环境下tcpdump源代码分析

    Linux 环境下tcpdump 源代码分析 韩大卫@吉林师范大学 tcpdump.c 是tcpdump 工具的main.c, 本文旨对tcpdump的框架有简单了解,只展示linux平台使用的一部分 ...

随机推荐

  1. Java List和Array之间的转换

    import java.util.Arrays; import java.util.List; class Test { //Object数组向List的转换 public static List&l ...

  2. Git分支命名规范总结

    Git分支命名规范总结 在Git分支命名规范中,通常通过前缀明确区分需求(功能开发)和Bug修复,以下是具体规则及示例: 一.命名规范区分原则 需求分支(Feature) 前缀:feature/ 或 ...

  3. 面试题-Storm框架

    前言 Storm框架在实际项目中已经平稳运行快一年了,也很好的支撑了海量读写器的数据处理需求,不过和RabbitMQ一样,为了项目进度,实际工作中只能尽快的调研,关注一些关键点,其他的细节就只能放一放 ...

  4. ASP.NET 自定义DataTable数据

    using System.Data; //DataTable try {     DataTable dt = new DataTable();     dt.Columns.Add("Bu ...

  5. Asp.net mvc基础(九)使用DropDownList下拉列表

    第一种下拉列表写法: 后端 前端 第二种下拉列表写法: 使用Html辅助方法@Html.DropDownList("名称","List<SelectListItem ...

  6. 什么条件会触发 Java 的 Young GC?

    什么条件会触发 Java 的 Young GC? Young GC,即 新生代垃圾回收,是 Java 垃圾回收机制中的一种重要回收方式.它主要用于回收 新生代 中的对象,尤其是 Eden 区 和 Su ...

  7. FreeSWITCH中SIP网关(Gateway)操作

    freeswitch是一款简单好用的VOIP开源软交换平台. 以下是一篇关于FreeSWITCH中SIP网关(Gateway)操作的技术指南,基于提供的官方文档内容整理: 一.网关生命周期管理 1. ...

  8. Vue ElementUI 树表格

    树表格做懒加载-点击小箭头走接口 children为[]则使用hasChildren的true/false来判断是否有子节点,另,如果要做点击小箭头走接口必须加lazy及load <el-tab ...

  9. 20K star!让网页设计秒变手绘风,这个开源库太有创意了!

    "Rough.js 是一个轻量级的图形库(仅8KB),能够为网页元素赋予自然的手绘质感.通过独特的算法模拟人类绘画的不规则性,开发者只需几行代码即可为图表.流程图.UI组件等数字内容注入生动 ...

  10. N+1查询:数据库性能的隐形杀手与终极拯救指南

    title: N+1查询:数据库性能的隐形杀手与终极拯救指南 date: 2025/05/06 00:16:30 updated: 2025/05/06 00:16:30 author: cmdrag ...