首页 > t-tcpdump

t-tcpdump

文章目录

          • 写入和读取数据包
          • 抓取数据包
          • 抓取指定网卡流量
          • 指定数据的输出格式
          • 数据包抓取的方向
          • 输出信息的详细程度的可控选项
          • 抓取指定协议的数据包
          • 表达式介绍
            • 逻辑连接符的使用
            • type的确定

写入和读取数据包

在工作或者生活中的网络故障排除时最有力的方式就是抓包分析网络状况,从而找到网络故障的原因。所以将数据包保存到文件中,可以方便得进行分析取证。

数据包的写入命令

tcpdump -w test1.txt

数据包的读取命令

tcpdump -r test1.txt

数据包的多个文件读取

tcpdump -V pack.txt 其中pack.txt中包含多个数据包文件test1.txt,test2.text,test3.txt

抓取数据包

停止抓取数据包:

  1. ctrl+c
  2. 终止tcpdump进程
  3. 抓取指定数量的数据包tcpdump -c 5

数据包的状态

  1. captured 当前tcpdump抓取的数据包个数
  2. received by filter 系统接收的数据包,tcpdump不一定过滤所有通过系统的数据包,系统数据包多于tcpdump抓取的数据包
  3. dropped by filter tcpdump丢弃的数据包
抓取指定网卡流量

一台网络服务器可能有多个网卡连接不同的网络(可能即连接交换机,又连接路由器),对于分析不同的网络状态,需要针对指定的网卡进行分析

  1. 查看网卡

    tcpdum -D
    root@ubuntu:/home/zhanghuigui/Desktop/tcpdum# tcpdump -D
    1.ens33 [Up, Running]
    2.any (Pseudo-device that captures on all interfaces) [Up, Running]
    3.lo [Up, Running, Loopback]
    4.bluetooth0 (Bluetooth adapter number 0)
    5.nflog (Linux netfilter log (NFLOG) interface)
    6.nfqueue (Linux netfilter queue (NFQUEUE) interface)
    7.usbmon1 (USB bus number 1)
    8.usbmon2 (USB bus number 2)
    
    其中标记为up的为可以抓取的网卡

    或者使用ifconfig -a获取网卡信息
  2. 指定网卡的数据流量的抓取

    tcpdum -i ens33即可
指定数据的输出格式
  1. 默认情况下输出域名,而非ip地址和端口

    tcpdum 以及tcpdum host

    比如尝试访问百度的公共域名服务器,则只会看到抓取的数据包中包好域名信息,并未有ip地址和端口号在这里插入图片描述

  2. 抓取的数据包中格式包含对应主机的ip和端口号

    tcpdum -n 或者tcpdump host 180.76.76.76 -n

    可以看到如下图中将原来的"域名+服务"转换为 “ip + 端口”,如public-dns-a.baidu.com.http转换为180.76.76.76.80

    在这里插入图片描述

数据包抓取的方向
  • 抓取从目标ip流入当前设备的数据包 使用-Q参数,或者--direction参数也可以

    tcpdum host 180.76.76.76 -n -Q in

    在这里插入图片描述
  • 抓取从当前设备流入目标ip的数据包

    tcpdump host 180.76.76.76 -n -Q out
  • 抓取从当前设备的指定网卡 流入目标ip的数据包

    tcpdump host 180.76.76.76 -n -Q out -i ens33
输出信息的详细程度的可控选项
  • 输出链路层的mac地址通信信息

    tcpdump host 180.76.76.76 -n -e

    在这里插入图片描述
  • 快速打印见面信息

    tcpdump host 180.76.76.76 -n -q

    在这里插入图片描述
  • 更加详细得打印数据内容

    以16进制形式打印,并用ascsII码输出打印的内容

    tcpdump host 180.76.76.76 -n -X

    更加详细的打印使用命令

    tcpdump host 180.76.76.76 -n -XX
  • 抓取过程中抓取相信信息并输出

    tcpdump host 180.76.76.76 -n -v或者tcpdump host 180.76.76.76 -n -vv或者tcpdump host 180.76.76.76 -n -vvv-v的个数越多,则打印的信息越相信

    在这里插入图片描述
抓取指定协议的数据包

tcpdump icmp -n -v 仅抓取服务器接收到的 icmp协议的数据包

表达式介绍

表达式可以用来筛选想要的数据包内容,使用man pcap-filter包含过滤器的过滤规则和语法

tcpdump的表达式使用规则如下:

tcpdump [option] [not] proto dir type

其中

  • option是可选项,代表子命令-Q/-v/-n/-e/-c
  • not可选项,表示取反,即表示抓取不符合not之后写的过滤规则的数据包
  • proto是必选项,表示支持的协议tcp/udp/arp/ip/icmp等
  • dir是流入流出控制,src/dst/src and dst/src or dst
  • type 是筛选特定的ip和端口 host/net/port/portrange 指定的ip,端口号,端口范围筛选
逻辑连接符的使用

tcpdump -n -v dst 180.76.76.76 and tcp 抓取发送终点为180.76.76.76服务器且协议为tcp的数据包

在这里插入图片描述

type的确定

常用的type为:host/port/portrange

tcpdump -q -n host 180.76.76.76 抓取type是host,ip地址为180.76.76.76的数据包

tcpdump -n -v host 180.76.76.76 and port 80 抓取ip地址为180.76.76.76端口为80的数据包

tcpdump -n -v net 180.76 and port 80 抓取范围为180.76.0.0 - 180.76.255.255,端口为80的数据包

tcpdump -n -v dst port 80 筛选目标端口为80端口的数据包

tcpdump -n -v dst port 80 and dst net 180.76筛选目标端口为80,网段为180.76.0.0-180.76.255.255范围的数据包

更多相关:

  • 本文是西门子开放式TCP通信的第2篇,上一篇我们讲了使用西门子1200PLC作为TCP服务器的程序编写,可以点击下方链接阅读:【公众号dotNet工控上位机:thinger_swj】基于Socket访问西门子PLC系列教程(一)在完成上述步骤后,接下来就是编写上位机软件与PLC之间进行通信。上位机UI界面设计如下图所示:从上图可以看出...

  • 我有一个大型数据集,列出了在全国不同地区销售的竞争对手产品。我希望通过使用这些新数据帧名称中的列值的迭代过程,根据区域将该数据帧分成几个其他区域,以便我可以分别处理每个数据帧-例如根据价格对每个地区的信息进行排序,以了解每个地区的市场情况。我给出了以下数据的简化版本:Competitor Region ProductA Product...

  • 作为一名IT从业者,我来回答一下这个问题。首先,对于具有Java编程基础的人来说,学习Python的初期并不会遇到太大的障碍,但是要结合自己的发展规划来制定学习规划,尤其要重视学习方向的选择。Java与Python都是比较典型的全场景编程语言,相比于Java语言来说,当前Python语言在大数据、人工智能领域的应用更为广泛一些,而且大...

  • 这段时间通过学习相关的知识,最大的变化就是看待事物更加喜欢去了解事物后面的本质,碰到问题后解决问题思路也发生了改变。举个具体的例子,我在学习数据分析,将来会考虑从事这方面的工作,需要掌握的相关专业知识这个问题暂且按下不表,那哪些具体的问题是我需要了解的呢,以下简单罗列:1、了解数据分析师这个岗位在各个地区的需求情况?2、数据分析师的薪...

  • 这一节将开始学习python的一个核心数据分析支持库---pandas,它是python数据分析实践与实战的必备高级工具。对于使用 Python 进行数据分析来说,pandas 几乎是无人不知,无人不晓的。今天,我们就来认识认识数据分析界鼎鼎大名的 pandas。目录一. pandas主要数据结构 SeriesDataFrame二...