HOME 首页
SERVICE 服务产品
XINMEITI 新媒体代运营
CASE 服务案例
NEWS 热点资讯
ABOUT 关于我们
CONTACT 联系我们
创意岭
让品牌有温度、有情感
专注品牌策划15年

    tcp抓包命令(tcp 抓包)

    发布时间:2023-03-19 05:36:49     稿源: 创意岭    阅读: 62        问大家

    大家好!今天让创意岭的小编来大家介绍下关于tcp抓包命令的问题,以下是小编对此问题的归纳整理,让我们一起来看看吧。

    开始之前先推荐一个非常厉害的Ai人工智能工具,一键生成原创文章、方案、文案、工作计划、工作报告、论文、代码、作文、做题和对话答疑等等

    只需要输入关键词,就能返回你想要的内容,越精准,写出的就越详细,有微信小程序端、在线网页版、PC客户端

    官网:https://ai.de1919.com

    本文目录:

    tcp抓包命令(tcp 抓包)

    一、网络抓包原理

    本文以App作为例子,实际应用不限于App范围。

    大部分场合都可以通过程序调试来定位问题,但有些场景使用抓包来定位接口问题更准确、更方便,如以下场景:

    要实现对App的网络数据抓包,需要监控App与服务器交互之间的网络节点,监控其中任意一个网络节点(网卡),获取所有经过网卡中的数据,对这些数据按照网络协议进行解析,这就是抓包的基本原理。

    但是中间网络节点,不受我们控制,所以基本无法实现抓包的,只能在客户端和服务端进行抓包。

    通常我们监控本地网卡数据,如下图:

    本地网络 指的是WIFI的路由,如果直接抓路由器的包还是比较麻烦的,因此我们会在 手机 和 本地路由 之间加一层 代理服务 ,这样只要抓代理服务的网络数据即可:

    虽然在 手机 侧也可实现抓包,但和 本地路由 一样,抓包比较麻烦,如果不是没有办法,尽量还是不在手机侧抓包。但是有一种情况必须在手机端抓包,那就是在4G网络情况下:

    4G网络状态下如何抓包,以及它的劣势,我们后面章节再细讲。

    抓包实际上是分析网络协议的一种过程,尽管繁琐的细节劳动都让抓包工具做了,但我们还是需要了解下基础的网络协议,好帮助我们更好的分析问题。

    首先需要了解下经典的OSI七层网络模型,以及每层的作用,其次对TCP、HTTP协议简单了解。

    HTTPS是基于HTTP协议的一种改进,在 TCP之上 的会话层增加安全处理。对于应用层来说,HTTPS和HTTP没有什么不同,也就是说,HTTPS是保证网络传输的安全性,对业务数据无侵入。

    简化理解大概是这个样子:

    SSL和TLS是保证安全传输的协议,包括证书认证、加解密和数字签名。

    项目中HTTPS的链路:

    因此,客户端与后台,编写网络接口时,不需要关心SSL或TLS,按照HTTP协议处理即可。

    既然HTTPS在网络传输是经过加密的,那么抓包抓到的数据就是密文,不经过解密是无法看到报文的。针对这个问题,如上图WIFI环境下设置代理的方式可以解决,具体思路是:

    所以整个网络链路依然是HTTPS在传输,但代理服务自己可以获取到明文数据。

    比较常用的抓包工具大概有4个,主要用作互补,配合使用基本所有平台、所有抓包需求都能满足:

    需要说明的是,tcpdump可将数据保存成文件,直接用wireShark打开分析,针对后台或手机抓包使用起来十分方便。

    几个工具间的使用关系:

    为什么要真机抓包?必定是没有办法设置代理服务了,如4G网络情况下直接和移动基站链接,没法设置代理服务。凡是非4G网络状态下,都不建议真机抓包。

    iOS 5后,apple引入了RVI remote virtual interface的特性,它只需要将iOS设备使用USB数据线连接到mac上,然后使用rvictl工具以iOS设备的UDID为参数在Mac中建立一个虚拟网络接口rvi,就可以在mac设备上使用tcpdump,wireshark等工具对创建的接口进行抓包分析。

    具体步骤:

    android是linux系统,和后台一样可以使用tcpdump命令来抓包,但是需要root权限,因为一般手机系统不带有抓包命令 tcpdump ,需要自行安装。

    安装tcpdump:

    使用tcpdump:

    这是就已经进入抓包状态,手机所有的网络请求都会被捕获,并保存到capture文件中。

    导出capture文件:

    原文: 网络抓包

    二、应用抓包之Fiddler抓包

    tcpdump抓包: 应用抓包之tcpdump命令抓包

    1.抓包工具Fiddler(Windows版)

    2.真机一个

    3.预抓包的App一个(我们以app抓包为例)

    Fiddler是位于客户端和服务器端的HTTP代理,也是目前最常用的http抓包工具之一 。 它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是web调试的利器。

    1.打开Fiddler

    2.设置端口(Tools->Fiddler Options)使用默认就行

    使用1024之后的,0-1023周知端口,一般都是系统和一些与设置的端口,端口1024到49151为注册端口,分配给用户进程或应用程序

    既然是代理,客户端的所有请求都要先经过Fiddler

    3.让手机和PC处于同一网络下(连同一WiFi或同一网段即可)

    查看PC的IP地址

    4.到开手机WiFi设置

    进入WiFi详细信息(不同手机选项可能不同)

    手动设置代理(用的手机在高级设置里)

    主机名就是PC的IP

    端口就是在Fiddler设置的端口

    5.刷新一下app要抓数据的页面

    不小心抓了个用WebView的app,尴尬两秒钟

    发现这个app会获取手机归属地,位置信息等

    成功抓到数据

    浏览器请求一下

    6.新建个文本文件,保存抓到的接口。例如:

    7.一个个界面去抓,分析出接口

    抓完记得把手动设置代理关了,不然有可能上网很慢。

    三、组播v3 怎么tcpdump抓包

    你好,我使用的是ubuntu 14.04(虚拟机),可以打开终端输入tcpdump命令抓包。我经常使用的命令是tcpdump -i eth0 -w web.pcap。i参数表示网卡,w参数表示将抓包结果保存到pcap文件中,这样接下来可以使用wireshark查看。如果还想明白别的参数的意义的话,可以输入tcpdump -h,就显示帮助信息了。还有,要使用tcpdump,最好切换到root用户(sudo命令)。

    再复制一部分别的的用法,也可以自己再搜索一下:

    -A 以ASCII码方式显示每一个数据包(不会显示数据包中链路层头部信息). 在抓取包含网页数据的数据包时, 可方便查看数据(nt: 即Handy for capturing web pages).

    -c count

    tcpdump将在接受到count个数据包后退出.

    -C file-size (nt: 此选项用于配合-w file 选项使用)

    该选项使得tcpdump 在把原始数据包直接保存到文件中之前, 检查此文件大小是否超过file-size. 如果超过了, 将关闭此文件,另创一个文件继续用于原始数据包的记录. 新创建的文件名与-w 选项指定的文件名一致, 但文件名后多了一个数字.该数字会从1开始随着新创建文件的增多而增加. file-size的单位是百万字节(nt: 这里指1,000,000个字节,并非1,048,576个字节, 后者是以1024字节为1k, 1024k字节为1M计算所得, 即1M=1024 * 1024 = 1,048,576)

    -d 以容易阅读的形式,在标准输出上打印出编排过的包匹配码, 随后tcpdump停止.(nt | rt: human readable, 容易阅读的,通常是指以ascii码来打印一些信息. compiled, 编排过的. packet-matching code, 包匹配码,含义未知, 需补充)

    -dd 以C语言的形式打印出包匹配码.

    -ddd 以十进制数的形式打印出包匹配码(会在包匹配码之前有一个附加的'count'前缀).

    -D 打印系统中所有tcpdump可以在其上进行抓包的网络接口. 每一个接口会打印出数字编号, 相应的接口名字, 以及可能的一个网络接口描述. 其中网络接口名字和数字编号可以用在tcpdump 的-i flag 选项(nt: 把名字或数字代替flag), 来指定要在其上抓包的网络接口.

    此选项在不支持接口列表命令的系统上很有用(nt: 比如, Windows 系统, 或缺乏 ifconfig -a 的UNIX系统); 接口的数字编号在windows 2000 或其后的系统中很有用, 因为这些系统上的接口名字比较复杂, 而不易使用.

    如果tcpdump编译时所依赖的libpcap库太老,-D 选项不会被支持, 因为其中缺乏 pcap_findalldevs()函数.

    -e 每行的打印输出中将包括数据包的数据链路层头部信息

    四、tcpdump 抓包命令 参数求解释

    方法/步骤

    默认系统里边没有安装有tcpdump的,无法直接使用

    这里我们可以使用yum来直接安装它

    yum install -y tcpdump

    如果忘记了这个软件的用法,我们可以使用 tcpdump --help 来查看一下使用方法

    一般我们的服务器里边只有一个网卡,使用tcpdump可以直接抓取数据包,但是这样查看太麻烦了,所以都会添加参数来进行获取的。

    例如我截取本机(192.168.31.147)和主机114.114.114.114之间的数据

    tcpdump -n -i eth0 host 192.168.31.147 and 114.114.114.114

    还有截取全部进入服务器的数据可以使用以下的格式

    tcpdump -n -i eth0 dst 192.168.31.147

    或者服务器有多个IP 可以使用参数

    tcpdump -n -i eth0 dst 192.168.31.147 or 192.168.31.157

    我们抓取全部进入服务器的TCP数据包使用以下的格式,大家可以参考下

    tcpdump -n -i eth0 dst 192.168.31.147 or 192.168.31.157 and tcp

    从本机出去的数据包

    tcpdump -n -i eth0 src 192.168.31.147 or 192.168.31.157

    tcpdump -n -i eth0 src 192.168.31.147 or 192.168.31.157 and port ! 22 and tcp

    或者可以条件可以是or 和 and 配合使用即可筛选出更好的结果。

    以上就是关于tcp抓包命令相关问题的回答。希望能帮到你,如有更多相关问题,您也可以联系我们的客服进行咨询,客服也会为您讲解更多精彩的知识和内容。


    推荐阅读:

    ChatGPT国内需要梯子吗(国内看twitch用啥梯子)

    gptchat软件(gp软件中文版下载)

    itchat无法登录(无法用itchat登录网页微信)

    奋斗的高级词汇(形容奋斗的高级词汇)

    小红书营销推广策划(小红书营销推广策划教案)