新闻  |   论坛  |   博客  |   在线研讨会
简单的tcpdump抓包使用总结:抓取指定ip、指定网卡、指定端口的包
电子禅石 | 2022-03-01 11:18:23    阅读:35100   发布文章

1.今天由于需要抓包研究网络问题,所以研究了一下抓取指定ip、指定网卡、指定端口的包并且输入到文件中


2 tcpdump与Wireshark介绍


在网络问题的调试中,tcpdump应该说是一个必不可少的工具,和大部分linux下优秀工具一样,它的特点就是简单而强大。它是基于Unix系统的命令行式的数据包****工具,可以抓取流动在网卡上的数据包。


默认情况下,tcpdump不会抓取本机内部通讯的报文。根据网络协议栈的规定,对于报文,即使是目的地是本机,也需要经过本机的网络协议层,所以本机通讯肯定是通过API进入了内核,并且完成了路由选择。【比如本机的TCP通信,也必须要socket通信的基本要素:src ip port dst ip port】


如果要使用tcpdump抓取其他主机MAC地址的数据包,必须开启网卡混杂模式,所谓混杂模式,用最简单的语言就是让网卡抓取任何经过它的数据包,不管这个数据包是不是发给它或者是它发出的。一般而言,Unix不会让普通用户设置混杂模式,因为这样可以看到别人的信息,比如telnet的用户名和密码,这样会引起一些安全上的问题,所以只有root用户可以开启混杂模式,开启混杂模式的命令是:ifconfig en0 promisc, en0是你要打开混杂模式的网卡。


Linux抓包原理:


Linux抓包是通过注册一种虚拟的底层网络协议来完成对网络报文(准确的说是网络设备)消息的处理权。当网卡接收到一个网络报文之后,它会遍历系统中所有已经注册的网络协议,例如以太网协议、x25协议处理模块来尝试进行报文的解析处理,这一点和一些文件系统的挂载相似,就是让系统中所有的已经注册的文件系统来进行尝试挂载,如果哪一个认为自己可以处理,那么就完成挂载。


当抓包模块把自己伪装成一个网络协议的时候,系统在收到报文的时候就会给这个伪协议一次机会,让它来对网卡收到的报文进行一次处理,此时该模块就会趁机对报文进行窥探,也就是把这个报文完完整整的复制一份,假装是自己接收到的报文,汇报给抓包模块。


Wireshark是一个网络协议检测工具,支持Windows平台、Unix平台、Mac平台,一般只在图形界面平台下使用Wireshark,如果是Linux的话,直接使用tcpdump了,因为一般而言Linux都自带的tcpdump,或者用tcpdump抓包以后用Wireshark打开分析。


在Mac平台下,Wireshark通过WinPcap进行抓包,封装的很好,使用起来很方便,可以很容易的制定抓包过滤器或者显示过滤器,具体简单使用下面会介绍。Wireshark是一个免费的工具,只要google一下就能很容易找到下载的地方。


所以,tcpdump是用来抓取数据非常方便,Wireshark则是用于分析抓取到的数据比较方便。


3 tcpdump使用


3.1 语法


类型的关键字


host(缺省类型): 指明一台主机,如:host 210.27.48.2


net: 指明一个网络地址,如:net 202.0.0.0


port: 指明端口号,如:port 23


确定方向的关键字


src: src 210.27.48.2, IP包源地址是210.27.48.2


dst: dst net 202.0.0.0, 目标网络地址是202.0.0.0


dst or src(缺省值)


dst and src


协议的关键字:缺省值是监听所有协议的信息包


fddi


ip


arp


rarp


tcp


udp


其他关键字


gateway


broadcast


less


greater


常用表达式:多条件时可以用括号,但是要用转义


非 : ! or “not” (去掉双引号)


且 : && or “and”


或 : || or “or”


 


 


例如我本次抓取指定ip、指定网卡、指定端口的包。语句如下:


tcpdump -i eth3 tcp port 5236 and host 172.16.24.13 -w dm.cap

tcpdump命令:


-i 指定网卡,本次指定eth3


port指定端口


host指定ip


-w dm.cap抓取到dm.cap文件中。

————————————————


原文链接:https://blog.csdn.net/DHCliaozheng/article/details/105969016


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
属于自己的技术积累分享,成为嵌入式系统研发高手。
推荐文章
最近访客