0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

网络行抓包分析工具tcpdump安装介绍

multisim 来源:一口Linux 作者:土豆居士 2021-08-18 10:05 次阅读

概述

用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。

tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息

tcpdump基于底层libpcap库开发,运行需要root权限。

一、tcpdump安装

环境虚拟机:vmware 15.5.2os: ubuntu 12.04

安装tcpdump

sudoapt-getinstalltcpdump

9f6ae03c-ff5a-11eb-9bcf-12bb97331649.png

3. 版本查看

tcpdump--h

9f86b26c-ff5a-11eb-9bcf-12bb97331649.png

tcpdump version 4.0。

libpcap version 1.1.1 表示libpcap的版本。

二、tcpdump参数

常用参数选项说明:

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

三、命令选项使用举例

1. 截获主机收到和发出的所有数据包。

命令:

tcpdump

说明:

tcpdump截取包默认显示数据包的头部。

普通情况下,直接启动tcpdump将监视第一个网络接口上所有流过的数据包。

基础格式:时间 数据包类型 源IP 端口/协议 > 目标IP 端口/协议 协议详细信息

9f9ba9b0-ff5a-11eb-9bcf-12bb97331649.png

按下Ctrl+C会终止tcpdump命令。且会在结尾处生成统计信息。

a011be16-ff5a-11eb-9bcf-12bb97331649.png

终止tcpdump

2. 指定抓包数量 -c

指定抓取2个数据包。

命令:

tcpdump-c2

说明:

最后会自动生成统计信息。

a051c2d6-ff5a-11eb-9bcf-12bb97331649.png

【注意,已经切换到管理员了,虚拟机中要产生数据包,可以另外开一个窗口ping baidu.com后面不再提示】

a066be66-ff5a-11eb-9bcf-12bb97331649.png

ping baidu.com

3. 将抓包信息写入文件 -w

使用-w选项指定记录文件。

命令:

tcpdump-c10-wtcpdump_test.log

说明:

保存的文件不是文本格式,不能直接查看。tcpdump保存的文件的格式是几乎所有主流的抓包工具软件都可以读取。所以可以使用更易读的图形界面工具来查看记录文件。

a0a18cda-ff5a-11eb-9bcf-12bb97331649.png

4. 读取记录文件 -r

使用-r选项读取文件。

命令:

tcpdump-rtcpdump_test.log

![读取记录文件

a0d37ede-ff5a-11eb-9bcf-12bb97331649.png

5. 打印出所有可工作的接口 -D

命令:

tcpdump-D

a120c7fc-ff5a-11eb-9bcf-12bb97331649.png

其中网卡为eth0。

6. 指定监控的网卡 -i

命令:

tcpdump-ieth0

如果不指定网卡,默认tcpdump只会监视第一个网络接口,一般是eth0。

7. 显示更详细的数据包信息 -v -vv

选项-v,-vv可以显示更详细的抓包信息。

a150e55e-ff5a-11eb-9bcf-12bb97331649.png

tcpdump -v

a181b3dc-ff5a-11eb-9bcf-12bb97331649.png

tcpdump -vv

8. 不使用域名反解 -n

使用-n后,tcpdump会直接显示IP地址,不会显示域名(与netstat命令相似)。

9. 增加抓包时间戳 -tttt选项

tcpdump的所有输出打印行中都会默认包含时间戳信息;时间戳信息的显示格式如下

hhss.frac(nt:小时:分钟:秒.)

此时间戳的精度与内核时间精度一致,反映的是内核第一次看到对应数据包的时间;

而数据包从物理线路传递到内核的时间, 以及内核花费在此包上的中断处理时间都没有算进来;

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

命令:

tcpdump-tttt

a18e9f0c-ff5a-11eb-9bcf-12bb97331649.png

增加抓包时间戳

四、条件过滤

1. 过滤:指定需要抓取的协议

tcpdump可以只抓某种协议的包,支持指定以下协议:「ip,ip6,arp,tcp,udp,wlan」等。

命令:

tcpdumpudp tcpdumpicmp tcpdumptcp tcpdumparp

2. 过滤:指定协议的端口号

使用port参数,用于指定端口号。

命令:tcpdump tcp port 80

使用portrange参数,用于指定端口范围。

命令:tcpdump tcp portrange 1-1024

3. 过滤:指定源与目标

src 表示源。

dst 表示目标。

命令:

tcpdump src port 8080

tcpdump dst port 80

4. 过滤:指定特定主机的消息包

使用host指定需要监听的主机。

命令:

tcpdumphost192.168.1.113

注意:若使用了host参数使用了计算机名或域名。例tcpdump host shi-pc ,则无法再使用-n选项。

5. 过滤:指定数据包大小

使用greater(大于)与less(小于)可以指定数据包大小的范围。

「例:只抓取大于1000字节的数据包。」

命令:

tcpdumpgreater1000

「例:只抓取小于10字节的数据包。」

命令:

tcpdumpless10

五、 逻辑表达式

使用基本逻辑组合拼装出更精细的过滤条件。

1. 逻辑与

逻辑与关系,使用and。

命令:

tcpdumptcpandhost192.168.1.112 tcpdumptcpandsrc192.168.1.112andport8080

2. 逻辑或

逻辑或关系,使用or。

命令:

tcpdumphost192.168.1.112or192.168.1.113

3. 逻辑非

逻辑非关系,使用not,也可以使用 ! 。

若使用 ! 必须与其后面的字符隔开一个空格。

例:当通过ssh协议远程使用tcpdump时,为了避免ssh的数据包的输出,所以一般需要禁止ssh数据包的输出。

命令:

tcpdumpnottcpport22 tcpdump!tcpport22

4. 括号

括号需要使用在引号内,或转意使用。否则会报错。

例:抓取非22端口,且主机为192.168.1.112 和 192.168.1.113的TCP数据包。

命令:

tcpdumpnottcpport22andhost192.168.1.112or192.168.1.113 tcpdump"nottcpport22andhost(192.168.1.112or192.168.1.113)" tcpdumpnottcpport22andhost"(192.168.1.112or192.168.1.113)"

六、其他实例

1. 打印所有进入或离开sundown的数据包.

tcpdumphostsundown

2. 截获主机210.27.48.1 和主机210.27.48.2 或210.27.48.3的通信

tcpdumphost210.27.48.1and(210.27.48.2or210.27.48.3)

3. 如果想要获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包,使用命令:

tcpdumpiphost210.27.48.1and!210.27.48.2

4. 监视所有送到主机hostname的数据包

tcpdump-ieth0dsthosthostname

5. 获取主机210.27.48.1接收或发出的telnet包

23为telnet的端口

tcpdumptcpport23andhost210.27.48.1

6. 监视本机的udp 123 端口

123 为ntp的服务端口

tcpdumpudpport123

7. 使用tcpdump抓取HTTP包

tcpdump-XvvennSs0-ieth0tcp[20:2]=0x4745ortcp[20:2]=0x4854

0x4745 为"GET"前两个字母"GE",

0x4854 为"HTTP"前两个字母"HT"。

tcpdump 对截获的数据并没有进行彻底解码,数据包内的大部分内容是使用十六进制的形式直接打印输出的。

显然这不利于分析网络故障,通常的解决办法是先使用带**-w参数的tcpdump 截获数据并保存到文件中**,然后再使用其他程序(如Wireshark)进行解码分析。当然也应该定义过滤规则,以避免捕获的数据包填满整个硬盘。

六、查看数据包完整内容

tcpdump默认不显示数据包的详细内容。

方法一:

使用-A参数能以ASCII码显示数据包。

例:只抓取1个数据包,并显示其内容。

命令:

tcpdump-c1-A

a1af7ac4-ff5a-11eb-9bcf-12bb97331649.png

方法二:

使用-X参数能16进制数与ASCII码共同显示数据包。

例:只抓取1个数据包,并显示其内容。

命令:

tcpdump-c1-X

a1b99c52-ff5a-11eb-9bcf-12bb97331649.png

七、tcpdump 与wireshark

Wireshark(以前是ethereal)是Windows下非常简单易用的抓包工具,现在也有Linux版本。

通过Tcpdump抓取的数据包分析比较麻烦,要想很方便的分析数据包, 我们可以用Tcpdump + Wireshark 的完美组合实现:在 Linux 里抓包,然后在Windows 里分析包。

保存数据包为wireshark能识别的文件:

tcpdumptcp-ieth1-t-s0-c100anddstport!22andsrcnet192.168.1.0/24-w./target.cap

参数 含义
tcp ip icmp arp rarp 和 tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型
-i eth1 只抓经过接口eth1的包
-t 不显示时间戳
-s 0 抓取数据包时默认抓取长度为68字节。加上-S 0 后可以抓到完整的数据包
-c 100 只抓取100个数据包
dst port ! 22 不抓取目标端口是22的数据包
src net 192.168.1.0/24 数据包的源网络地址为192.168.1.0/24
-w ./target.cap 保存成cap文件,方便用ethereal(即wireshark)分析

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 网络
    +关注

    关注

    14

    文章

    7561

    浏览量

    88760

原文标题:网络/命令行抓包工具tcpdump详解

文章出处:【微信号:A1411464185,微信公众号:multisim】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Linux运维必备技能:手把手教你用tcpdump精准

    简介 网络数据截获分析工具。支持针对网络层、协议、主机、网络或端口的过滤。并提供and、or、
    的头像 发表于 12-24 11:20 158次阅读

    CentOS中使用tcpdump

    CentOS中使用tcpdump
    的头像 发表于 10-28 14:48 244次阅读

    六种网络安装工具的用途

    网线和网络连接器等,和光纤类产品一样,同样有许多工具配件。它们能够帮助用户快速完成网络安装。本期我们将重点挑选几款网络
    的头像 发表于 10-25 15:43 220次阅读

    艾体宝干货 OIDA之四:掌握数据分析-分析的艺术

    本文是OIDA方法系列的最后一部分,重点介绍了数据分析的“分析”阶段。这一最后阶段将剖析阶段的精炼数据转化为可操作的见解,使网络管理员和安
    的头像 发表于 09-24 11:47 195次阅读
    艾体宝干货 OIDA之四:掌握数据<b class='flag-5'>包</b><b class='flag-5'>分析</b>-<b class='flag-5'>分析</b>的艺术

    一种利用wireshark对远程服务器/路由器网络方法

    一种利用wireshark对远程服务器/路由器网络方法
    的头像 发表于 09-21 08:03 2833次阅读
    一种利用wireshark对远程服务器/路由器<b class='flag-5'>网络</b><b class='flag-5'>抓</b><b class='flag-5'>包</b>方法

    经典蓝牙解析说明

    在无线通信协议的开发过程中,器是工程师们不可或缺的工具。掌握器的使用,就如同拥有了能够洞察无线电波的“火眼金睛”。这不仅使我们能够验
    的头像 发表于 07-24 09:04 1963次阅读
    经典蓝牙<b class='flag-5'>抓</b><b class='flag-5'>包</b>解析说明

    网络模块的安装方法

    说明书和安装手册。 准备必要的安装工具,如剥线器、打线工具、螺丝刀等。 关闭电源: 在安装网络模块之前,关闭计算机和其他相关设备的电源,以确
    的头像 发表于 07-12 09:58 698次阅读

    matlab神经网络工具箱结果分析

    神经网络是一种强大的机器学习技术,广泛应用于各种领域,如图像识别、语音识别、自然语言处理等。MATLAB提供了一个功能强大的神经网络工具箱,可以帮助用户快速构建和训练神经网络模型。本文将介绍
    的头像 发表于 07-03 10:32 593次阅读

    浅谈Pango_Design_Suite工具安装

    联系了小眼睛FPGA官方客服,获取了基于PGX-Mini 4K开发板的SDK,这里有包含了两个版本的Pango_Design_Suite安装文件,笔者
    发表于 05-30 00:43

    TSN工具解密:数据捕获,为什么选Profishark?

    网络管理中,网络流量分析和故障排查是重要环节,如何高效精准地进行网络流量分析和故障排查?来看看利用ProfiShark数据捕获,让我们一起探索其中的优势和特点。一、捕获
    的头像 发表于 04-29 08:04 579次阅读
    TSN<b class='flag-5'>抓</b>包<b class='flag-5'>工具</b>解密:数据<b class='flag-5'>包</b>捕获,为什么选Profishark?

    艾体宝干货 | TSN工具解密:为什么选择使用 ProfiShark 进行数据捕获?

    时间敏感网络(TSN)技术正在成为工业控制和实时通信领域的关键技术,而ProfiShark作为一款高性能的数据捕获工具,提供了在TSN网络环境中进行
    的头像 发表于 04-25 17:41 461次阅读
    艾体宝干货 | TSN<b class='flag-5'>抓</b>包<b class='flag-5'>工具</b>解密:为什么选择使用 ProfiShark 进行数据<b class='flag-5'>包</b>捕获?

    tcpdump命令介绍

    1.命令简介tcpdump 是一款类 Unix/Linux 环境下的工具,允许用户截获和显示发送或收到的网络数据
    发表于 04-08 06:02

    网络监控工具有哪些 网络监控用几芯网线

    情况,帮助管理员了解网络的使用状况和流量分布,以便进行合理的网络设计和带宽管理。常见的网络流量监控工具有Wireshark、NetworkMiner和ntopng等。 Wireshar
    的头像 发表于 01-24 10:00 1077次阅读

    利用ProfiShark 构建便携式网络取证工具包

    网络安全领域日益重视便携式取证工具的灵活应用。本文介绍了如何构建一个以ProfiShark1G为核心的便携式网络取证工具包,以提高
    的头像 发表于 01-13 08:04 1591次阅读
    利用ProfiShark 构建便携式<b class='flag-5'>网络</b>取证<b class='flag-5'>工具包</b>

    【虹科分享】利用ProfiShark 构建便携式网络取证工具包

    本文详细讨论了构建便携式网络取证工具包的必要性,并重点介绍了ProfiShark 1G — 一种高效、口袋大小的网络TAP设备。ProfiShark 1G以其出色的数据捕获能力、便携性
    的头像 发表于 12-29 17:06 377次阅读