一、tcpdump介绍

​ tcpdump是Linux下功能强大的截帧工具,相当于windows下的wireshark一下,只是操作方式是命令行的,需要熟悉Linux命令行操作。

​ 常用的Linux发行版基本上都已经自带了tcpdump,如果没有可以tcpdump官网下载安装,官网只提供了源代码,下载后需要先编译。具体编译方式这里不做介绍。

二、tcpdump常用参数介绍

下面列出了tcpdump的常用参数:

  • -a 将网络地址和广播地址转换成名字
  • -A 以ASCⅡ 格式显示截取到的数据帧
  • -c num 截取到num条数据后就停止
  • -C file-size 用于配合-w file,如果文件大小超过,file-size 则新创建一个文件
  • -D 列出系统中所有可以用以 tcpdump 截包的网络接口。显示的接口序号或接口名称可以通过 - i 指定
  • -q 快速输出,只显示较少信息
  • -w 将输出结果保存到文件中,可以在windows下使用wireshark分析
  • -r 从指定文件读取数据包,一般用来读取使用 -w 参数保存文件
  • -i 指定抓取哪个网卡的数据包,如需要抓取所有网卡使用 -i any
  • -x 以十六进制显示截取到的数据帧
  • -nnn参数。使用-nnn参数禁用tcpdump展示时把IP、端口等转换为域名、端口对应的知名服务名称。

三、tcpdump表达式

tcpdump表达式用来设置哪些数据包被打印到命令行,如果不设置过滤表达式网络上所有被捕获的包都会被打印,否则, 只有满足条件表达式的数据包被打印。

在表达式中一般有如下几种类型的关键字

  • 关于类型的关键字,host、net、port、ip >proto、protochain 等

  • 确定传输方向的关键字,主要包括src , dst ,dst or src, dst and src 等

  • 协议的关键字,ip、arp、rarp、tcp、udp>、icmp、http 等

表达式的基本格式为协议+[传输方向]+类型+ 具体数值,具体使用请看实例。

ip src host 192.168.0.1
tcp port 1883

四、实例

  1. 抓取所有网卡的数据包

    tcpdump -i any
  2. 抓取端口1883的数据包

    tcpdump -i eth0 port 1883        # 1883 端口的所有数据包
    tcpdump -i eth0 tcp port 1883 # 1883 端口的所有tcp数据包
    tcpdump -i eth0 udp port 1883 # 1883 端口的所有udp数据包
  3. 抓取源 ip 是 172.30.20.10 的数据包

    tcpdump -i eth0 src host 172.30.20.10
  4. 抓取目的地址是172.30.20.10的数据包

    tcpdump -i eth0 dst host 172.30.20.10
  5. 抓取源 ip 是172.30.20.10 且目的端口是 22 的数据包

    tcpdump -i eth0  src host172.30.20.10 and dst port 22
  6. 抓取源 ip 是172.30.20.10 且目的端口是 22 的数据包

    tcpdump -i eth0 -vnn src host 172.30.20.10 or port 22
  7. 抓取源 ip 是172.30.20.10 且目的端口不是 22 的数据包

    tcpdump -i eth0 -vnn src host 172.30.20.10  and not port 22
  8. 抓取网卡eth0的数据包并保存到文件

    tcpdump -i eth0  -w data.cap
    
    
  9. 抓取网卡eth0的 100 条数据并保存到文件

    tcpdump -i eth0 -c 100 -w data.cap
    
    
  10. 抓取ip协议的数据包

    tcpdump -i eth0 ip
    
    

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

  1. UE4中使用RenderDoc截帧

    RenderDoc(src,doc,ue4 doc,ue4文档)是一个独立的开源图形调试器,通过采集和检查GPU上运行的单个帧,来定位图形bug和优化性能 RenderDoc支持任何在Win7.Win ...

  2. Java 视频处理,截帧操作

    1.maven <dependency> <groupId>org.bytedeco</groupId> <artifactId>javacv</ ...

  3. Java开发的一个简单截屏工具

    //源代码 import java.awt.*;import java.awt.datatransfer.DataFlavor;import java.awt.datatransfer.Transfe ...

  4. Qt写一个截屏工具(窗口透明)

    最近发现好多次打开QQ仅仅想用它来截屏 ⊙﹏⊙b汗 不如自己来写一个截屏工具,集成到自己的小工具箱里面 动手之前考虑一下要怎么实现,我考虑过的方案大概有下面两种  : 1. 监控全局鼠标事件 (真是“ ...

  5. 截屏工具 HyperSnap

    听说Tencent开发了1款截屏工具,叫"snip".确实字体效果不错,但是丫只有for mac的,不知道脑子里怎么想的,该不是直接买了第三方的然后冠了个名儿吧. 那么Windows有没有类似的工具呢 ...

  6. pycharm的放大和缩小字体的显示 和ubunt的截圖工具使用 ubuntu上安装qq微信等工具

    https://www.cnblogs.com/sui776265233/p/9322074.html#_label0 ubuntu: 截圖工具的使用 在ubuntu 10.04 的时候,还可以很方便 ...

  7. Java 截屏工具类

    PrintScreenUtils.java package javax.utils; import java.awt.AWTException; import java.awt.Dimension; ...

  8. tcpdump抓包工具

    tcpdump抓包工具 一:TCPDump介绍 ​ TcpDump可以将网络中传送的数据包的"头"完全截获下来提供分析.它支持针对网络层.协议.主机.网络或端口的过滤,并提供and ...

  9. linux下利用tcpdump抓包工具排查nginx获取客户端真实IP实例

    一.nginx后端负载服务器的API在获取客户端IP时始终只能获取nginx的代理服务器IP,排查nginx配置如下 upstream sms-resp { server ; server ; } s ...

随机推荐

  1. Ubuntu安装FreeSWITCH亲测

    本人在安装FreeSWITCH的时候遇到了相当多的坑,网上很多方法都模棱两可,经常装失败,最后终于装成功后做一下总结 最顺利的安装方式 1. 下载压缩文件 下载地址:http://files.free ...

  2. Laravel 使用自己的类库三种方式

    虽然Composer使得我们可以重用很多现有的类库(例如packagist.org中的),但是我们仍然可能用到一些不兼容composer的包或者类库.另外在某一项目中,我们也可能会创建某一类库,而且可 ...

  3. 有无关键字new的区别

    function Person(firstName, lastName) { this.firstName = firstName; this.lastName = lastName; } const ...

  4. ireport初接触

    我用的版本5.6.0 @官网下载地址 下载安装@参考博客龙凌云端,着重留意:在windows下使用,只下载iReport-5.6.0-windows-installer.exe就行了 安装后配置环境变 ...

  5. PAT 甲级 1079 Total Sales of Supply Chain (25 分)(简单,不建树,bfs即可)

    1079 Total Sales of Supply Chain (25 分)   A supply chain is a network of retailers(零售商), distributor ...

  6. 两种Redis持久化原理的详解

    Redis为持久化提供了两种方式: RDB:在指定的时间间隔能对你的数据进行快照存储. AOF:记录每次对服务器写的操作,当服务器重启的时候会重新执行这些命令来恢复原始的数据. 本文将通过下面内容的介 ...

  7. mysql使用yum源安装各个版本的mysql数据库

    每次想用yum安装旧版本的mysql时,发现都找不到mysql的yum安装源,在官网只能找到最新版本mysql的yum源.后来才知道,原来最新的mysql的yum源也是包含了旧版本的mysql的yum ...

  8. [LeetCode] 507. Perfect Number 完美数字

    We define the Perfect Number is a positive integer that is equal to the sum of all its positive divi ...

  9. 浅谈Java中的Condition条件队列,手摸手带你实现一个阻塞队列!

    条件队列是什么?可能很多人和我一样答不出来,不过今天终于搞清楚了! 什么是条件队列 条件队列:当某个线程调用了wait方法,或者通过Condition对象调用了await相关方法,线程就会进入阻塞状态 ...

  10. webpack打包完成,复制,打包,移动,删除已生成的文件插件

    const FileManagerPlugin = require('filemanager-webpack-plugin'); 详情请到 https://www.npmjs.com/ 一看究竟 贴个 ...