tcp协议抓包只能用(安卓tcp协议抓包分析教程)

      最后更新:2022-11-05 02:45:13 手机定位技术交流文章

      【性能】怎么使用 tcpdump 抓包分析

      tcpdump是一个用于截取网络分组,并输出分组内容的工具。 凭借强大的功能和灵活的截取策略,使其成为类UNIX系统下用于网络分析和问题排查的首选工具。tcpdump 支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。时间戳 协议 源地址. 源端口 > 目的地址. 目的端口 网络包详细信息为了帮你更快上手 tcpdump 的使用,我在这里也帮你整理了一些最常见的用法,并且绘制成了表格,你可以参考使用。首先,来看一下常用的几个选项。在上面的 ping 案例中,我们用过  -nn  选项,表示不用对 IP 地址和端口号进行名称解析。我们再来看常用的过滤表达式。刚刚用过的是 udp port 53 or host 35.190.27.188 ,表示抓取 DNS 协议的请求和响应包,以及源地址或目的地址为 35.190.27.188 的包。什么是 PCAP 文件扩展名?https://www.filedesc.com/zh/file/pcaphttps://www.solvusoft.com/zh-cn/file-extensions/file-extension-pcaptcpdump(8) - Linux man pagehttps://linux.die.net/man/8/tcpdumpA tcpdump Tutorial with Examples — 50 Ways to Isolate Traffichttps://danielmiessler.com/study/tcpdump
      【性能】怎么使用 tcpdump 抓包分析

      ubuntu14.04 用tcpdump进行网络抓包,地点学校的校园网,可是只能监听到本机的包,其他电脑的包监听不到

      因为你的网卡只能看自己的traffic阿,你怎麽可能用自己网卡去看其他人的traffic呢?你真的想太多了。人家的data traffic都没通过你的网卡,当然抓不到阿。除非你用hub让人家的电脑从你的hub上走,或是你可以access你们学校的router或switch,不然就是这个结果。
      使用tcpdump是完全可以监听同一个局域网上的其他工作站的网络数据包的。以太网的数据链路层是多点接入的,任何一个以太网上的主机发出的数据帧所有的主机都能收到。默认情况下,如果帧首部的目的地址不是本机的mac地址或者不是广播地址,网卡收到就将之丢弃。但是如果网卡处于混杂模式的话,即使不是发往自己的帧也收下。tcpdump默认将网卡设置为混杂模式,但是这是受底层操作系统限制的,有的网卡也不能设置为混杂模式,这个不能怪tcpdump。。。。。
      ubuntu14.04 用tcpdump进行网络抓包,地点学校的校园网,可是只能监听到本机的包,其他电脑的包监听不到

      tcpdump 命令使用简介

      tcpdump 是一款强大的网络抓包工具,运行在 linux 平台上。熟悉 tcpdump 的使用能够帮助你分析、调试网络数据。要想使用很好地掌握 tcpdump, 必须对网络报文( TCP/IP协议)有一定的了解。不过对于简单的使用来说,只要有网络基础概念就行了。tcpdump 是一个很复杂的命令,想了解它的方方面面非常不易,也不值得推荐,能够使用它解决日常工作中的问题才是关键。tcpdump 的选项也很多,要想知道所有选项的话,请参考man tcpdump ,下面只记录 tcpdump 最常用的选项。完整的英文文档: https://www.tcpdump.org/tcpdump_man.html需要注意的是,tcpdump 默认只会截取前 96 字节的内容,要想截取所有的报文内容,可以使用-s number ,number就是你要截取的报文字节数,如果是 0 的话,表示截取报文全部内容。Frame = Ethernet Header + IP Header + TCP Header + TCP Segment DataEthernet Header 以下的IP数据报最大传输单位为 MTU (Maximum Transmission Unit,Effect of short board),对于大多数使用以太网的局域网来说, MTU=1500 。TCP数据包每次能够传输的最大数据分段为MSS,为了达到最佳的传输效能,在建立TCP连接时双方将协商MSS值——双方提供的MSS值中的最小值为这次连接的最大MSS值。MSS往往基于MTU计算出来,通常MSS=MTU-sizeof(IP Header)-sizeof(TCP Header)=1500-20-20=1460。这样,数据经过本地TCP层分段后,交给本地IP层,在本地IP层就不需要分片了。但是在下一跳路由(Next Hop)的邻居路由器上可能发生IP分片!因为路由器的网卡的MTU可能小于需要转发的IP数据报的大小。这时候,在路由器上可能发生两种情况:(1)如果源发送端设置了这个IP数据包可以分片(May Fragment,DF=0),路由器将IP数据报分片后转发。(2)如果源发送端设置了这个IP数据报不可以分片(Don’t Fragment,DF=1),路由器将IP数据报丢弃,并发送ICMP分片错误消息给源发送端。默认启动,普通情况下,直接启动tcpdump将监视第一个网络接口上所有流过的数据包监听所有端口,直接显示 ip 地址。显示更详细的数据报文,包括 tos, ttl, checksum 等。显示数据报的全部数据信息,用 hex 和 ascii 两列对比输出。下面是抓取 ping 命令的请求和返回的两个报文,可以看到全部的数据。机器上的网络报文数量异常的多,很多时候我们只关系和具体问题有关的数据报(比如访问某个网站的数据,或者 icmp 超时的报文等等),而这些数据只占到很小的一部分。把所有的数据截取下来,从里面找到想要的信息无疑是一件很费时费力的工作。而 tcpdump 提供了灵活的语法可以精确地截取关心的数据报,简化分析的工作量。这些选择数据包的语句就是过滤器(filter)!过滤器也可以简单地分为三类: type ,dir和proto 。Type让你区分报文的类型,主要由host (主机),net (网络) 和port (端口) 组成。 src和dst也可以用来过滤报文的源地址和目的地址。此外还有指定端口和数据报文范围的过滤器:过于过滤器的更多详细信息,请访问 tcpdump 官方 map page 的PCAP-FILTER 部分使用 tcpdump 截取数据报文的时候,默认会打印到屏幕的默认输出,你会看到按照顺序和格式,很多的数据一行行快速闪过,根本来不及看清楚所有的内容。不过,tcpdump 提供了把截取的数据保存到文件的功能,以便后面使用其他图形工具(比如 wireshark,Snort)来分析。-w选项用来把数据报文输出到文件,比如下面的命令就是把所有 80 端口的数据导入到文件-r可以读取文件里的数据报文,显示到屏幕上。NOTE:保存到文件的数据不是屏幕上看到的文件信息,而是包含了额外信息的固定格式 pcap,需要特殊的软件(如: Wireshark )来查看,使用 vim 或者 cat 命令会出现乱码。过滤的真正强大之处在于你可以随意组合它们,而连接它们的逻辑就是常用的与/AND/&& 、或/OR/||和非/not/! 。从上面的例子就可以看出,你可以随意地组合之前的过滤器来截取自己期望的数据报,最重要的就是知道自己要精确匹配的数据室怎样的!对于比较复杂的过滤器表达式,为了逻辑的清晰,可以使用括号。不过默认情况下,tcpdump 把()当做特殊的字符,所以必须使用单引号'来消除歧义:抓取所有经过eth1,目的地址是192.168.1.254或192.168.1.200端口是80的TCP数抓取所有经过eth1,目标MAC地址是00:01:02:03:04:05的ICMP数据抓取所有经过eth1,目的网络是192.168,但目的主机不是192.168.1.200的TCP数据截取数据只是第一步,第二步就是理解这些数据,下面就解释一下 tcpdump 命令输出各部分的意义。最基本也是最重要的信息就是数据报的源地址/端口和目的地址/端口,上面的例子第一条数据报中,源地址 ip 是192.168.1.106 ,源端口是56166 ,目的地址是124.192.132.54 ,目的端口是80 。>符号代表数据的方向。此外,上面的三条数据还是 tcp 协议的三次握手过程,第一条就是SYN报文,这个可以通过Flags [S]看出。下面是常见的 TCP 报文的 Flags:而第二条数据的[S.]表示SYN-ACK ,就是SYN报文的应答报文。如果是为了查看数据内容,建议用 tcpdump -s 0 -w filename 把数据包都保存下来,然后用wireshark的Follow TCP Stream/Follow UDP Stream来查看整个会话的内容。 -s 0 是抓取完整数据包,否则默认只抓68字节。用tcpflow也可以方便的获取TCP会话内容,支持tcpdump的各种表达式。-c 参数对于运维人员来说也比较常用,因为流量比较大的服务器,靠人工CTRL+C还是抓的太多,甚至导致服务器宕机,于是可以用 -c 参数指定抓多少个包。上面的命令计算抓10000个SYN包花费多少时间,可以判断访问量大概是多少。Wireshark(以前是ethereal)是Windows下非常简单易用的抓包工具。但在Linux下很难找到一个好用的图形化抓包工具。还好有Tcpdump。我们可以用Tcpdump + Wireshark 的完美组合实现:在 Linux 里抓包,然后在Windows 里分析包。0x4745为"GET"前两个字母"GE"0x4854为"HTTP"前两个字母"HT"tcpdump 对截获的数据并没有进行彻底解码,数据包内的大部分内容是使用十六进制的形式直接打印输出的。显然这不利于分析网络故障,通常的解决办法是先使用带-w参数的tcpdump 截获数据并保存到文件中,然后再使用其他程序(如 Wireshark )进行解码分析。当然也应该定义过滤规则,以避免捕获的数据包填满整个硬盘。基本上tcpdump总的的输出格式为:系统时间 来源主机.端口 > 目标主机.端口 数据包参数
      tcpdump 命令使用简介

      tcp/ip协议只能用于internet,不能用于局域网

      怎么可能,你在家用路由器 WIFI 上网这个就用了 tcp/ip协议。
      tcp/ip协议只能用于internet,不能用于局域网

      ubuntu14.04 用tcpdump进行网络抓包,地点学校的校园网,可是只能监听到本机的包,其他电脑的包监听不到

      你好! 因为你的网卡只能看自己的traffic阿,你怎麽可能用自己网卡去看其他人的traffic呢?你真的想太多了。人家的datatraffic都没通过你的网卡,当然抓不到阿。除非你用hub让人家的电脑从你的hub上走,或是你可以access你们学校的router或switch,不然就是这个结果。 如有疑问,请追问。
      ubuntu14.04 用tcpdump进行网络抓包,地点学校的校园网,可是只能监听到本机的包,其他电脑的包监听不到

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/42644.html

          热门文章

          文章分类