百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>服务器> Linux中的tcpdump下令示例详解
分享文章到:

Linux中的tcpdump下令示例详解

发布时间:05/13 来源:未知 浏览: 关键词:

前言

用简略的话来定义tcpdump,就是:dump the traffic on a network,依据运用者的定义对网络上的数据包进行截获的包剖析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来供给剖析。它支撑针对网络层、协定、主机、网络或端口的过滤,并供给and、or、not等逻辑语句来帮忙你去除无用的信息。

说到这个tcpdump下令,就不得不提本人加入的中国移动内蒙古分企业第三代CRM系统的开发与实施。要是没有记错的话,那应当是2016年,本人独自负责整个10086客服系统自助渠道的整体革新工作;在系统压测阶段,调用接口平台时,总是涌现超时现象。后来这个题目越来越重大,同时短厅渠道、CBOSS渠道也反应有这个题目,这时这个题目就引起了大BOSS的注意,然后就是各方专家会诊。在这种大型项目中,专家会诊,都有一个特点,就是专家指示,小弟干活,而我那个时候,就是那个小弟。

好吧,专家发话了,抓包先。这就开端了我的抓包工作,开端了我对tcpdump的全面了解。

首先需要说的是,这个tcpdump是一个非常功能强大的下令,功能强大,那也就意味着这个下令的运用是非常复杂的,也就是说,我接下来整理的内容也会是非常多的。要是你想去把握整个tcpdump下令的话,就需要你略微有点耐心去把整篇文章读完。OK,Let's go!

下令简介

tcpdump是一款强大的网络抓包工具,运转在Linux平台上。熟知tcpdump的运用能够帮忙我们剖析、调试网络数据。但是要想非常不错地把握tcpdump, 就必须对网络报文(TCP/IP协定)有一定的理解。不过关于简略的运用来说,只有有网络根基概念就行了。

作为互联网上经典的的系统治理员必备工具,tcpdump以其强大的功能,灵活的截取战略,成为每个高级的系统治理员剖析网络,排查题目等所必备的工具之一。在现实工作中,需要以root权限去施行该下令。

tcpdump是一个很复杂的下令,想理解它的方方面面非常不易,也不值得举荐,能够运用它解决日常工作中的题目才是要害,所以,下列的总结我将更偏重于从现实工作出发,整理一些现实工作中经常用到的用法,关于一些冷门用法,我这里根本不会波及,要是往后在工作中用到了,我这里也会更新进来。

下令详解
下面就先对tcpdump一些常用的选项进行总结。

  • -s number:tcpdump默许只会截取前96字节的内容,要想截取所有的报文内容,就需要运用这个选项,其中number是需要截取的报文字节数,要是是0的话,表示截取报文全部内容;
  • -nn:表示不解析域名,直接显示IP,在netstat下令中,也有这个选项;
  • -X:同时运用hex和ascii显示报文内容;
  • -S:显示绝对的序列号(sequence number),而不是相对编号;
  • -i:指定监听的网卡,要是为-i any则表示监听所有的网卡;
  • -v,-vv,-vvv:显示更多的细致信息;
  • -c number:表示截取number个报文,然后完毕;
  • -w:将监听到的数据包写入文件中保留,而并不剖析和打印出来;
  • -A:只运用ascii打印报文的全部数据,不要和-X选项一起运用。截取HTTP请求的时候可以用sudo tcpdump -nSA port 80

虽然tcpdump下令的选项特殊多,但是常用的选项也就上面那几个,我这里将更多的把注意力放在运用实例上,通过运用实例来学习tcpdump这个下令。

过滤器

先进行运用实例详解时,有须要先把握tcpdump一些根本的运用理论知识,先来说说过滤器。

在服务器上的网络报文是异样的多,许多时候我们只关注和具体题目有关的数据报文,而这些有用的报文只占到很小的一局部,为了不让我们在报文的海洋里迷失本人,我们就非常有须要学习一下tcpdump供给的灵活而且功能强大的过滤器。

过滤器也可以简略地分为三类:type,dir和proto。

type:主要用来区分过滤报文源类型,主要由host主机报文,net网段报文和port指定端口的报文组成;

dir:只过滤报文的源地址和目的地址,主要包括src源地址和dst目的地址;

proto:只过滤报文的协定类型,支撑tcp,udp和icmp等;运用的时候可以省略proto要害字:

  • tcpdump -i eth1 arp
  • tcpdump -i eth1 ip
  • tcpdump -i eth1 tcp
  • tcpdump -i eth1 udp
  • tcpdump -i eth1 icmp

在我们运用tcpdump下令时是离不开这些过滤器的。

前提组合

在茫茫网络中,想要找到那个你想要的网络包,还是有一定难度的。为了捉住那个我们想要的网络包,在我们抓包下令中,包含越多的限定前提,抓的无关包就会越少,所以在进行抓包时,我们可以运用“与”(and、&&)、“或”(or、||)和“非”(not、!)来将多个前提组合起来。这对我们需要基于某些前提来剖析网络包是非常有用的。

运用实例

下令:tcpdump -i eth1

注明:监视指定网络接口的数据包

下令:tcpdump host 210.27.48.3

注明:截获210.27.48.3主机收到的和发出的所有数据包

下令:tcpdump host 210.27.48.4 and (210.27.48.5 or 210.27.48.6)

注明:截获210.27.48.3主机和210.27.48.5或者210.27.48.6主机进行通讯的所有数据包

下令:tcpdump net 192.168.1.0/24

注明:截获192.168.1.0/24整个网络的数据包

下令:tcpdump -i eth0 src host 210.27.48.3

注明:监视eth0网卡上源地址是210.27.48.3的所有网络包

下令:tcpdump -i eth0 dst host 210.27.48.3

注明:监视eth0网卡上目的地址是210.27.48.3的所有网络包

下令:tcpdump tcp port 23 and host 210.27.48.3

注明:获取主机210.27.48.3上端口为23的利用发出和接收的所有TCP协定包

下令:tcpdump udp port 123

注明:获取本机123端口发出和接收的所有UDP协定包

下令:tcpdump src host 10.126.1.222 and dst net 10.126.1.0/24

注明:截获源主地址为10.126.1.222,目的地址是10.126.1.0/24整个网络

下令:tcpdump -i eth0 -s0 -G 60 -Z root -w %Y_%m%d_%H%M_%S.pcap

注明:抓取报文后按照指定工夫隔断保留;-G选项背面接工夫,单位为秒;上述下令就是每隔60秒生存一个文件

下令:tcpdump -i eth0 -s0 -C 1 -Z root -w eth0Packet.pcap

注明:抓取报文后按照指定报文大小保留;-C选项后接文件大小,单位为MB;上述下令就是每抓包文件达到1MB时就运用一个新的文件保留新抓的报文

上面说到tcpdump抓包后生成对应的文件,那这个文件怎样进行剖析呢?是的,有这么样一个叫做“Wireshark”的软件,可以非常完善的和tcpdump进行联合,供给可视化的剖析界面;有乐趣的话可以去学习一下,后续要是有工夫,我也整理一个“Wireshark”入门系列。

总结

拖的工夫比较长,终于整理结束!当然了,tcpdump这么复杂的一个下令,我这里并没有进行非常全面的整理,但是我这里整理的内容绝对不会影响你在工作中运用tcpdump这个下令。还是那个“二八定律”,复杂的下令,常用的功能也就占用20%,其余80%都是比较偏远生冷的功能,或者说工作中很少会用到的功能。

好了,以上就是这篇文章的全部内容了,但愿本文的内容对大家的学习或者工作拥有一定的参考学习价值,要是有疑难大家可以留言交换,感谢大家对脚本之家的支撑。

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有158人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板