文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Linux中如何使用wireshark分析tcpdump抓取的数据包

2023-06-06 04:23

关注

这篇文章将为大家详细讲解有关Linux中如何使用wireshark分析tcpdump抓取的数据包,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

很多时候我们的系统部署在Linux系统上面,在一些情况下定位问题就需要查看各个系统之间发送数据报文是否正常,下面就简单讲解一下如何使用wireshark分析tcpdump抓取的数据包。网络数据包截获分析工具。支持针对网络层、协议、主机、网络或端口的过滤。并提供and、or、not等逻辑语句帮助去除无用的信息。

首先,通过yum查看tcpdump和wireshark所需要的软件包

[root@wjq2 ~]# yum search tcpdump

Loaded plugins: product-id,refresh-packagekit, security, subscription-manager

This system is not registeredto Red Hat Subscription Management. You can use subscription-manager toregister.

================================================N/S Matched: tcpdump =================================================

tcpdump.x86_64 : A network traffic monitoring tool

  Name and summary matches only, use"search all" for everything.

[root@wjq2 ~]# yum searchwireshark

Loaded plugins: product-id,refresh-packagekit, security, subscription-manager

This system is not registeredto Red Hat Subscription Management. You can use subscription-manager toregister.

===============================================N/S Matched: wireshark ================================================

wireshark-gnome.x86_64 : Gnome desktop integration for wiresharkand wireshark-usermode

wireshark.i686 : Network traffic analyzer

wireshark.x86_64 : Network traffic analyzer

  Name and summary matches only, use"search all" for everything.

查看tcpdump和wireshark的软件包是否安装,可以发现,tcpdump已经安装,wireshark没有安装

[root@wjq2 ~]# rpm -qa|grepwireshark

[root@wjq2 ~]# rpm -qa | greptcpdump

tcpdump-4.0.0-3.20090921gitdf3cb4.2.el6.x86_64

使用yum安装wireshark

[root@wjq2 tmp]# yum installwireshark* -y

[root@wjq2 tmp]# which tcpdump

/usr/sbin/tcpdump

[root@wjq2 tmp]# which wireshark

/usr/sbin/wireshark

下面对tcpdump命令的使用做一个详细的说明

tcpdump的命令格式

tcpdump的参数众多,通过man tcpdump或tcpdump -h可以查看tcpdump的详细说明,这边只列一些自己常用的参数:

[root@wjq2 tmp]# tcpdump -h

tcpdump version4.1-PRE-CVS_2012_02_01

libpcap version 1.0.0

Usage: tcpdump[-aAdDefIKlLnNOpqRStuUvxX] [ -B size ] [ -c count ]

                [ -C file_size ] [ -Ealgo:secret ] [ -F file ] [ -G seconds ]

                [ -i interface ] [ -M secret ][ -r file ]

                [ -s snaplen ] [ -T type ] [ -wfile ] [ -W filecount ]

                [ -y datalinktype ] [ -zcommand ] [ -Z user ]

                [ expression ]


tcpdump [-i 网卡] -nnAX '表达式'

各参数说明如下:

-i:interface 监听的网卡。

-nn:表示以ip和port的方式显示来源主机和目的主机,而不是用主机名和服务。

-A:以ascii的方式显示数据包,抓取web数据时很有用。

-X:数据包将会以16进制和ascii的方式显示。

表达式:表达式有很多种,常见的有:host 主机;port 端口;srchost 发包主机;dst host 收包主机。多个条件可以用and、or组合,取反可以使用。

下面是一些使用的例子

(1)不指定任何参数,监听第一块网卡上经过的数据包。主机上可能有不止一块网卡,所以经常需要指定网卡。


tcpdump

(2)监听特定网卡


tcpdump -i eth0

(3)监听特定主机:监听本机跟主机10.1.1.123之间往来的通信包。

备注:出、入的包都会被监听。

tcpdump host 10.1.1.123

(4)特定来源、目标地址的通信

特定来源


tcpdump src host  hostname

特定目标地址


tcpdump dst host  hostname

如果不指定src跟dst,那么来源 或者目标 是hostname的通信都会被监听


tcpdump host  hostname

(5)特定端口


tcpdump port 3000

(6)监听TCP/UDP

服务器上不同服务分别用了TCP、UDP作为传输层,假如只想监听TCP的数据包

tcpdump tcp

(7)来源主机+端口+TCP

A、监听来自主机123.207.116.169在端口22上的TCP数据包


tcpdump tcp port  22 and src host 123.207.116.169

B、监听特定主机之间的通信


tcpdump ip host  210.27.48.1 and 210.27.48.2

C、210.27.48.1除了和210.27.48.2之外的主机之间的通信


tcpdump ip host  210.27.48.1 and ! 210.27.48.2

(8)稍微详细点的例子


tcpdump tcp -i  eth2 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.1.0/24 -w  ./target.cap

说明:

tcp: ip icmp arp rarp 和 tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型

-i eth2 : 只抓经过接口eth2的包

-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)分析

(9)限制抓包的数量

如下,抓到1000个包后,自动退出


tcpdump -c 1000

(10)保存到本地

备注:tcpdump默认会将输出写到缓冲区,只有缓冲区内容达到一定的大小,或者tcpdump退出时,才会将输出写到本地磁盘


tcpdump -n -vvv  -c 1000 -w /tmp/tcpdump_save.cap

也可以加上-U强制立即写到本地磁盘(一般不建议,性能相对较差)

(11)保存tcpdump抓包结果

[root@wjq2 tmp]# tcpdump -i eth0 -weth0_dump.pcap

tcpdump: WARNING: eth0: noIPv4 address assigned

tcpdump: listening on eth0,link-type EN10MB (Ethernet), capture size 65535 bytes

^C39 packets captured

39 packets received by filter

0 packets dropped by kernel

[root@wjq2 tmp]# ll -heth0_dump.pcap

-rw-r--r-- 1 root root 3.4KJan 18 11:19 eth0_dump.pcap

使用wireshark分析抓取的数据包:

[root@wjq2 tmp]# wireshark eth0_dump.pcap

Linux中如何使用wireshark分析tcpdump抓取的数据包

上图中标出三快区域:

红色框内,是用来显示简单的数据包信息,用tcpdump抓包如时候,默认情况是显示成这样的;

绿色框内,是用来显示选中的数据包的详细信息,是按照TCP/IP四层结构显示的,第一行是数据链路层的信息,第二行是网络层信息(IP协议),第三行是传输层信息(TCP协议),第四层是应用层信息(HTTP协议),可以展开第一行用来观察具体的内容;

蓝色框中,是用来显示此数据包的真实面目。(下图列更清楚一些)

Linux中如何使用wireshark分析tcpdump抓取的数据包

关于Linux中如何使用wireshark分析tcpdump抓取的数据包就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-人工智能
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯