tcpdump抓包工具

一:TCPDump介绍

​ TcpDump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。tcpdump就是一种免费的网络分析工具,尤其其提供了源代码,公开了接口,因此具备很强的可扩展性,对于网络维护和入侵者都是非常有用的工具。tcpdump存在于基本的FreeBSD系统中,由于它需要将网络界面设置为混杂模式,普通用户不能正常执行,但具备root权限的用户可以直接执行它来获取网络上的信息。因此系统中存在网络分析工具主要不是对本机安全的威胁,而是对网络上的其他计算机的安全存在威胁。

二:日常使用

1.参数介绍

tcpdump

  • -i 指定网络接口
  • -c 指定要监控的包的数量
  • -w 将抓包结果以文件的形式存放
  • -a    将网络地址和广播地址转变成名字;
  • -d    将匹配信息包的代码以人们能够理解的汇编格式给出;
  • -dd    将匹配信息包的代码以c语言程序段的格式给出;
  • -ddd   将匹配信息包的代码以十进制的形式给出;
  • -e    在输出行打印出数据链路层的头部信息;
  • -f    将外部的Internet地址以数字的形式打印出来;
  • -l    使标准输出变为缓冲行形式;
  • -n    不把网络地址转换成名字;
  • -t    在输出的每一行不打印时间戳;
  • -v    输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息;
  • -vv    输出详细的报文信息;
  • -F    从指定的文件中读取表达式,忽略其它的表达式;
  • -r    从指定的文件中读取包(这些包一般通过-w选项产生);
  • -T    将监听到的包直接解释为指定的类型的报文,常见的类型有rpc (远程过程调用)和snmp(简单网络管理协议;)

2.表达式介绍

​ 表达式是一个正则表达式,tcpdump利用他过滤报文的条件,如果一个报文满足表达式的条件,则这个报文将会被捕获。如果表达式为空,则会捕获所有所有的信息包

表达式类型:

  1. 类型关键字

    • host 192.168.30.10 指定一台主机(默认)
    • net 192.168.30.0 指定一个网络段
    • port 80 指定端口号
  2. 方向关键字
    • src 192.168.30.10 指定包中的源地址
    • dst 192.168.30.20 指定包中的目的地址
    • dst 192.168.30.20 or src 192.168.30.20 dst和src满足一个就获取
    • dst 192.168.30.20 and src 192.168.30.20 dst和src必须同时满足
  3. 协议关键字
    • fddi FDDI(分布式光纤数据接口网络)上的特定的网络协议
    • ip
    • arp
    • rarp
    • tcp
    • utp
  4. 其他不常用关键字还有gateway,broadcast,less,greater,还有三种逻辑运算,取非运算是 'not ' '! ',与运算是'and','&&';或运算 是'or','││';这些关键字可以组合起来构成强大的组合条件来满足人们的需要。

三.日常使用例子

  1. 抓取当前主机所有数据包,tcpdump默认在当前终端运行

    [root@mweb07 ~]# tcpdump
    tcpdump: WARNING: eth0: no IPv4 address assigned
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
    10:03:25.585291 IP 172.20.10.2.hsrp > all-routers.mcast.net.hsrp: HSRPv0-hello 20: state=active group=10 addr=172.20.10.1
    10:03:26.680044
  2. 抓取100个数据包,并且在指定的文件存放起来,默认tcpdump文件是不允许直接查看的

    [root@mweb07 ~]# tcpdump -c 100 -w tcpdump.out
    tcpdump: WARNING: eth0: no IPv4 address assigned
    tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
    100 packets captured # 抓取100个包后,他就会自动停止
    100 packets received by filter
    0 packets dropped by kernel
  3. 读取-w参数导出的文件

    [root@mweb07 ~]# tcpdump -r 443_tcpdump.out
    reading from file 443_tcpdump.out, link-type EN10MB (Ethernet)
    10:22:49.771433 IP 180.168.69.242.50838 > mweb07.https: Flags [.], seq 1094068907:1094068908, ack 4179967795, win 16537, length 1
    10:22:49.771447 IP mweb07.https > 180.168.69.242.50838: Flags [R], seq 4179967795, win 0, length 0
    10:22:51.525702 IP 180.168.69.242.50836 > mweb07.https: Flags [F.], seq 932060733, ack 2342938202, win 16344, length 0
  4. 抓取6379端口的100个包

    [root@mweb07 ~]# tcpdump -i bond0 -c 100 -w 443_tcpdump.out tcp port 443
    tcpdump: listening on bond0, link-type EN10MB (Ethernet), capture size 65535 bytes
    100 packets captured
    102 packets received by filter
    0 packets dropped by kernel
  5. 抓取源地址为180.168.69.242,端口为443的数据包

    [root@mweb07 ~]# tcpdump -i bond0 -c 3 -w 443_tcpdump.out src 180.168.69.242 and tcp port 443
    tcpdump: listening on bond0, link-type EN10MB (Ethernet), capture size 65535 bytes
    3 packets captured
    3 packets received by filter
    0 packets dropped by kernel
  6. 抓取指定主机的数据包

    # 抓取指定主机的数据包
    [root@mweb07 ~]# tcpdump -i bond0 -c 10 host 172.20.10.17
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on bond0, link-type EN10MB (Ethernet), capture size 65535 bytes
    10:28:40.375233 IP mweb07.34822 > mweb08.vrace: Flags [P.], seq 2258399624:2258400017, ack 3133621198, win 18960, options [nop,nop,TS val 941802562 ecr 941809211], length 393
    10:28:40.375935 IP mweb08.vrace > mweb07.34822: Flags [.], seq 1:4345, ack 393, win 2841, options [nop,nop,TS val 941811328 ecr 941802562], length 4344
    10:28:40.375945 IP mweb07.34822 > mweb08.vrace: Flags [.], ack 4345, win 18960, options [nop,nop,TS val 941802563 ecr 941811328], length 0
    10:28:40.375957 IP mweb08.vrace > mweb07.34822: Flags [.], seq 4345:7241, ack 393, win 2841, options [nop,nop,TS val 941811328 ecr 941802562], length 2896
    10:28:40.375960 IP mweb07.34822 > mweb08.vrace: Flags [.], ack 7241, win 18960, options [nop,nop,TS val 941802563 ecr 941811328], length 0
    10:28:40.376008 IP mweb08.vrace > mweb07.34822: Flags [.], seq 7241:10137, ack 393, win 2841, options [nop,nop,TS val 941811328 ecr 941802562], length 2896
    10:28:40.376012 IP mweb07.34822 > mweb08.vrace: Flags [.], ack 10137, win 18960, options [nop,nop,TS val 941802563 ecr 941811328], length 0
    10:28:40.376015 IP mweb08.vrace > mweb07.34822: Flags [P.], seq 10137:10298, ack 393, win 2841, options [nop,nop,TS val 941811328 ecr 941802562], length 161
    10:28:40.376017 IP mweb07.34822 > mweb08.vrace: Flags [.], ack 10298, win 18960, options [nop,nop,TS val 941802563 ecr 941811328], length 0
    10:28:40.397701 IP mweb07.46871 > mweb08.6379: Flags [P.], seq 2597564002:2597564092, ack 617045751, win 1260, options [nop,nop,TS val 941802584 ecr 941811100], length 90
    10 packets captured
    10 packets received by filter
    0 packets dropped by kernel
    # 可以发现,如果两台主机之间没有通信,是无法抓取的
    [root@mweb07 ~]# tcpdump -i bond0 -c 10 host 172.20.10.10
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on bond0, link-type EN10MB (Ethernet), capture size 65535 bytes四:日常场景

tcpdump抓包工具的更多相关文章

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

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

  2. linux使用tcpdump抓包工具抓取网络数据包,多示例演示

    tcpdump是linux命令行下常用的的一个抓包工具,记录一下平时常用的方式,测试机器系统是ubuntu 12.04. tcpdump的命令格式 tcpdump的参数众多,通过man tcpdump ...

  3. Linux系统诊断必备技能之二:tcpdump抓包工具详解

    一.简述 TcpDump可以将网络中传送的数据包完全截获下来提供分析.它支持针对网络层.协议.主机.网络或端口的过滤,并提供and.or.not等逻辑语句来帮助你去掉无用的信息. Linux作为网络服 ...

  4. tcpdump抓包工具的基本使用

    为了更好的深入理解计算机网络等相关知识,例如TCP\UDP\IP等,我们就必须利用tcpdump.Wireshark等工具对网络进行分析.本篇博文主要记录一下tcpdump这个网络分析利器的一些基本使 ...

  5. Linux下通过tcpdump抓包工具获取信息

    介绍 tcpdump是网络数据包截获分析工具.支持针对网络层.协议.主机.网络或端口的过滤.并提供and.or.not等逻辑语句帮助去除无用的信息. tcpdump - dump traffic on ...

  6. tcpdump抓包工具的使用

    个人原创,转载请注明,否则依法追究法律责任 2018-02-28  16:01:26 tcpdump 倾倒网络传输数据,直接启动tcpdump将监视第一个网络接口上所有流过的数据包. 1 不接任何参数 ...

  7. tcpdump 抓包工具使用

    1. 常用命令 监听p4p1网卡上来自 192.168.162.14 的包 tcpdump -i p4p1 src host 192.168.162.14 tcpdump -i p4p1 dst po ...

  8. tcpdump抓包工具用法说明

    tcpdump采用命令行方式对接口的数据包进行筛选抓取,其丰富特性表现在灵活的表达式上. 不带任何选项的tcpdump,默认会抓取第一个网络接口,且只有将tcpdump进程终止才会停止抓包. 例如: ...

  9. 利用tcpdump抓包工具监控TCP连接的三次握手和断开连接的四次挥手

    TCP传输控制协议是面向连接的可靠的传输层协议,在进行数据传输之前,需要在传输数据的两端(客户端和服务器端)创建一个连接,这个连接由一对插口地址唯一标识,即是在IP报文首部的源IP地址.目的IP地址, ...

随机推荐

  1. jQuery.noConflict()解决imgBox.js依赖jquery版本问题

    jQuery提供两种点击图片放大效果出处 在使用imgbox.js是出现的jquery版本不兼容问题,之后了解到jQuery.noConflict()的用法 jQuery.noConflict()的存 ...

  2. MySQL视图的优缺点以及如何创建视图

    视图,虚拟表,从一个表或多个表中导出来的表,作用和真实表一样,包含一系列带有行和列的数据 视图中,用户可以使用SELECT语句查询数据,也可以使用INSERT,UPDATE,DELETE修改记录,视图 ...

  3. 引入jar包到本地仓库方法

    1. 将jar放到本地某个位置,然后cmd到目标位置:2. 执行mvn install:install-file -DgroupId=com.alipay -DartifactId=alipay-tr ...

  4. 二、docker 镜像容器常用操作(让我们用docker 溜得飞起)

    前言 上篇讲了我们如何安装docker,现在该我们一展拳脚的时候了.接下来让我们一起学习一下docker常见的操作,让我们能够会使用 docker. 基本概念 在讲使用之前,还是先将一下docker ...

  5. 一文读懂Spring MVC执行流程

    说到Spring MVC执行流程,网上有很多这方面的文章介绍,但是都不太详细,作为一个初学者去读会有许多不理解的地方,今天这篇文章记录一下我学习Spring MVC的心得体会 话不多说,先上图:   ...

  6. docker实验--redis集群搭建

    背景介绍: 我经常在做一些小项目的时候,采用了Redis来做缓存,但是都是基于单节点的,一旦redis挂了,整个项目就挂了.于是乎,想到了多节点集群的方式来使用,就开始折腾着怎么去搭建这个集群.在网上 ...

  7. 元素定位之css选择器(1)

    CSS选择器用于选择你想要的元素的样式的模式. "CSS"列表示在CSS版本的属性定义(CSS1,CSS2,或对CSS3). 表格部分摘自菜鸟教程:https://www.runo ...

  8. spark版本定制课程-第1课

    spark版本定制课程-第1课 1.学习本课程可以自己动手改进spark,或者给spark增加功能.增加某些官方没有提供的功能,通过本课程希望早就一些顶级spark专家,根据整个社会的需要对spark ...

  9. LeetCode刷题总结-递归篇

    递归是算法学习中很基本也很常用的一种方法,但是对于初学者来说比较难以理解(PS:难点在于不断调用自身,产生多个返回值,理不清其返回值的具体顺序,以及最终的返回值到底是哪一个?).因此,本文将选择Lee ...

  10. 使用 statcounter 统计 Hexo 博客访问量

    介绍 statcounter是一个提供网站访问统计服务的网站: StatCounter is a simple but powerful real-time web analytics service ...