首页 >>  正文

wireshark抓包

来源:baiyundou.net   日期:2024-09-23

作者:colourjwh

很早之前,笔者使用浏览器观看各平台直播时,无意中发现一个奇怪的现象:有时候,某些网站的直播页面在占用下行带宽的同时,还会持续占用大量上传带宽,且上传速率和下载速率相近。我们知道,观看直播时需要不断从服务器获取视频流和弹幕,持续占用下载带宽是正常现象,且下载带宽的占用量往往和画质、帧率等成正比;而作为观看直播的普通用户,网页对上传带宽的占用应该是微乎其微。长时间占用如此多的上行带宽显然有悖于常理

但这个现象的出现似乎并非必然,而且上传带宽的占用情况也并不总是一成不变,因而没有太过在意。咨询网站客服,得到的解释是:“亲,这是观看直播时的正常现象呢 ~~~///(^v^)~~~”,遂放任不管之...

随着时间推移,这个现象越来越明显,往往前脚刚打开直播房间页面,没过十几秒,上传带宽马上就占用起来,而在上传带宽巨额占用现象发生的十几秒之前,直播观看完全正常,并没有出现画面中断。也就是说,这个上传占用并不是观看直播所必需的。没有这个夸张的上传行为,我们应该依然可以正常观看直播。由此怀疑,这可能是某种P2P行为。

什么是P2P?我们在使用迅雷等软件下载文件的时候,经常会遇到这个词汇。Peer To(2) Peer,顾名思义,是点对点、个人对个人的意思。P2P下载技术,就正是一种用户到用户的下载方式。P2P下载文件之所以往往比普通下载速度快,除开软件本身的性能和VIP等因素影响之外,最重要的是:把普通用户的电脑(终端)当作了其他用户的服务器

“当作其他用户的服务器”是什么意思?举个例子:

  1. A用户使用支持P2P功能的下载器,从某个加载速度十分缓慢的网站上费了九牛二虎之力下载了一份文件,但下载完成后,该用户并没有关闭下载器,而是将其放在了后台运行。

  2. 不久,B用户打开了同款下载器,准备从相同的网站下载相同的文件。正常思路下,下载器应该会从网站的服务器上下载这个文件。但如果A用户和B用户同时开启了P2P文件传输功能,那么这个下载器就可能会把A用户的电脑当作服务器,从A用户电脑上下载这个文件

  3. 于是,B用户很可能会发现:相比于不开启P2P功能的情况下,文件的下载速度飞速提升,往常需要几分钟的下载,现在只需要不到一分钟甚至十几秒就可以完成下载。B用户对此下载器的表现感到十分满意,给出了五星好评。欣喜之余,B用户把这款软件推荐给了自己的N位小伙伴。

  4. 在B用户的大力推荐下,其他小伙伴纷纷开始使用这款下载器,在打开了P2P下载功能后,开始陆续下载文件。

  5. 紧接着A用户发现,自己的电脑风扇往往无缘无故地狂转,CPU和网络(上传)带宽占用率被频频大量占用,显著影响到了A用户的日常使用体验。经过一番排查,A用户把源头定在了下载器软件本身上,愤怒之余给出了一星差评,并发誓再也不用此款软件。

上述例子就能很大程度上概括出P2P网络传输的特点:用户既可以是受益者,也可以是无偿奉献者。作为下载数据的受益者,用户的下载速度、网络延迟等可以得到很大改善;而作为提供数据、充当服务器的奉献者,用户的计算机CPU、内存、网络等资源也往往会被大量占用。这对于计算机性能本身较差、网络带宽较小的用户来说,无疑会造成显著的负面影响。

而B站直播页面使用的P2P与此思路基本一致:直播网站出于节省自己服务器资源和网络带宽、降低运营成本等考虑,使用这类技术来把直播观众的手机电脑等当成一个个小型服务器,让其他观众连到这些小型服务器上去(而不是直接连到直播网站的服务器上),从而利用观众的硬件和网络资源分担了自己的运营负担。

话已至此,想必各位已经对此类P2P技术有了初步的认知。那么问题自然摆在眼前:既然B站明面否认使用了此类技术,也就代表着用户无法通过常规设置关闭P2P功能。既然如此,如何才能彻底关闭P2P功能呢

  • 首先笔者想到的是按照网络传输的协议类型进行识别+拦截。打开Wireshark软件进行网络抓包,一段时间后果然发现了异常的流量。网上查询相关信息发现,这些使用名为STUN协议的数据,正是P2P功能占用上传带宽传输的数据

那么使用某种方式,按照协议类型进行拦截是否可取?理论上可行,但这往往需要借助其他第三方软件进行拦截。如果使用的设备不止一台,则需要在每台设备上都安装相应的拦截软件,费时费力,并不讨好。而且这样操作的灵活性较差,如果无脑拦截所有STUN流量,可能还会误伤其他软件的功能。至于能实现这种拦截操作的软件...如果有推荐,欢迎在评论区留言。

  • 转换思路。笔者想到,自己平日以PC端网页版使用较多,应该可以通过分析网页的内容,拦截相应的脚本或破坏相应的代码。但B站的JS脚本绝大多数都经过压缩,并没有办法直接对源代码进行操作。深入研究P2P功能的实现代码发现,B站的P2P功能需要用到某些特定的函数,因而可以通过在Tampermonkey中挂载用户自定义脚本,在网页加载完毕后自动删除相应的函数,从而破坏P2P功能。下图摘自其他网站的论坛,代码内容不再赘述。

那么这种方法是否可行?答案自然是肯定的,但缺点也比较显著。用户仍然需要在每台设备上安装Tampermonkey插件,手动添加相应的脚本,工作量较大。而且这种方法只适用于网页端,对于App端和不能安装油猴插件的浏览器则无能为力。

  • 分析到这里,难道就没有更好的思路的吗?答案当然也是否定的。我们调转方向,转而研究STUN协议本身的实现方式。通过网上资料的查询得知,该协议的实现往往需要一台“中介”服务器:两台客户端要想成功建立P2P连接,常常需要各自向服务器建立连接、提供自己的网络和设备信息,然后再由服务器进行“拉线搭桥”,让双方彼此连接配对。如果能阻止客户端联系“中介”服务器,不就可以从根源上阻止P2P功能了嘛!再次打开Wireshark进行抓包,对相关数据进行仔细分析后,成功找到了相应的数据包:

按理说成功找到了目标,自然应该是皆大欢喜。但喜悦之余不免发现,中介服务器的域名不止一个,而且往往含有不同的字母拼写和数字编号,将其一一加入hosts黑名单或者Adblock屏蔽列表显然会成为一项艰巨的工作,而且随时间推移,这些域名可能还会继续增加,从而产生更多的“漏网之鱼”。

机智的观众此时也许会立即抢答:上图中的域名都有相同的部分(.chat.bilibili.com),直接用正则匹配过滤掉不就可以了吗?对,但并不完全对。不管怎么说,先试一试。以网页端为例,打开Adblock-选项-高级,在“我的过滤列表”中添加相应的过滤规则。

如果此时兴冲冲地刷新直播房间的网页,你会欣喜地看到:任务管理器里的网络占用已经回到正常水平。

于是你认为,问题已经得到了圆满的解决。但持续观看直播一段时间后,你会同样成功地发现:弹幕不见了!打开F12开发人员工具,看到大量红色报错。仔细观察筛选,发现用于获取弹幕信息的WSS连接出现了问题,而WSS的连接域名与P2P中介服务器的域名恰好相同。

再仔细观察,发现弹幕的请求URL地址稍有不同,域名后多了一个:2245/sub目录。借此想到,如果可以在Adblock中添加一条更为详细的白名单规则,就可以放行弹幕流量。查询官方文档后,添加了如下一条规则,成为下图所示。

再次打开直播页面测试,发现控制台不再有弹幕报错,弹幕恢复正常,同时P2P流量消失,至此任务达成。按照此思路,若能将相应的屏蔽规则直接写进路由器的拦截列表中,从而达到一次配置、全网通用的简并目的,岂不美哉!

阅读更多服务软件精彩内容,可前往什么值得买查看

","gnid":"964b77d278f0dc023","img_data":[{"flag":2,"img":[{"desc":"","height":"742","title":"","url":"https://p0.ssl.img.360kuai.com/t01fc1c9ab9bfd5f1fc.jpg","width":"833"},{"desc":"","height":"313","title":"","url":"https://p0.ssl.img.360kuai.com/t01e5acdec320640e3d.jpg","width":"1080"},{"desc":"","height":"384","title":"","url":"https://p0.ssl.img.360kuai.com/t01f527201c5d6ac30e.jpg","width":"1080"},{"desc":"","height":"685","title":"","url":"https://p0.ssl.img.360kuai.com/t01eec9f30a7dc2f2fc.jpg","width":"1080"},{"desc":"","height":"227","title":"","url":"https://p0.ssl.img.360kuai.com/t013ccd97d5a940dd12.jpg","width":"962"},{"desc":"","height":"741","title":"","url":"https://p0.ssl.img.360kuai.com/t0175ec239c133a3b62.jpg","width":"833"},{"desc":"","height":"433","title":"","url":"https://p0.ssl.img.360kuai.com/t014b22e0316bb6c94a.jpg","width":"1058"},{"desc":"","height":"493","title":"","url":"https://p0.ssl.img.360kuai.com/t017124e9dae09a3dad.jpg","width":"1057"}]}],"original":0,"pat":"art_src_1,fts0,sts0","powerby":"pika","pub_time":1710029702000,"pure":"","rawurl":"http://zm.news.so.com/498d19ebadb9214105fd5574de17433d","redirect":0,"rptid":"3e45feb4e4c95bb8","rss_ext":[],"s":"t","src":"什么值得买","tag":[{"clk":"ktechnology_1:直播","k":"直播","u":""}],"title":"两行代码,教你轻松屏蔽B站直播网页的P2P上传

简纯涛4890怎么使用wireshark抓包分析web server
林苛肺15792358128 ______ 1、在如下链接下载“Wireshark”并在电脑上安装.Wireshark下载地址 2、如果之前没有安装过“Winpcap”请在下面图上把安装“Winpcap”的勾选上. 3、打开安装好的Wireshark程序 4,上图2就是主界面,打开“Capture”->“Options”...

简纯涛4890wireshark怎样抓包路由器 -
林苛肺15792358128 ______ 必须对方有客户端在线才能抓包,扫描的时候你会看到信号名称上有个data数字在动,动说明有客户端这些,不动说明没有客户端这些抓不到.

简纯涛4890wireshark2.0.4怎么抓包
林苛肺15792358128 ______ wireshark2.0.4怎么抓包 启动wireshark后,选择工具栏中的快捷键(红色标记的按钮)即可Start a new live capture.主界面上也有一个interface list(如下图红色标记1),列出了系统中安装的网卡,选择其中一个可以接收数据的的网卡也可以开始抓包.在启动时候也许会遇到这样的问题:弹出一个对话框说 NPF driver 没有启动,无法抓包.在win7或Vista下找到C: \system\system32下的cmd.exe 以管理员身份运行,然后输入 net start npf,启动NPf服务.重新启动wireshark就可以抓包了.

简纯涛4890wireshark 怎么循环抓包的 -
林苛肺15792358128 ______ 如果之前没有安装过“Winpcap”请在下面图上把安装“Winpcap”的勾选上. 图1 WinPcap安装选项3、打开安装好的Wireshark程序,会看到如下图所示界面: 图2 Wireshark主界面4,上图2就是主界面,打开“Capture”->“Options”,界...

简纯涛4890如何用Wireshark对任意IP的电脑进行抓包? -
林苛肺15792358128 ______ wireshark截包条件是要求包一定要过你截包机器的网口,这个要求 1)包是跟你机器通讯的 或者 2)是hub或者是有镜像口的交换机 另外,由于很多机器有一些虚拟的网卡,你要选择需要能够截到包的网卡.然后,除非是发送给你的,要打开混杂模式, 还有,要保证winpcap驱动正常工作.如果还不能截包,问题就麻烦了. 没什么详细步骤的,你对截包的原理了解了,自然知道问题在哪里了.

简纯涛4890怎样用Wireshark抓ARP -
林苛肺15792358128 ______ 方法如下: 1、点击WIRESHARK图标,打开WIRESHARK程序 2、在菜单栏找到【抓包】选项 3、点击【抓包】,展开详细选项,点选第一个【网络接口...】 4、在新的窗口中点击【开始】选项,开始抓包, 5、程序开始抓包,效果如图

简纯涛4890如何用wireshark2.2.6抓包实验 -
林苛肺15792358128 ______ wireshark捕获机器某块网卡网络包机器块网卡候需要选择网卡 点击Caputre->Interfaces.. 现面框选择确网卡点击"Start"按钮, 始抓包 WireShark 主要几界面 1. Display Filter(显示滤器) 用于滤 2. Packet List Pane(封包列表) 显示捕获封包 源址目标址端口号 颜色同代表 3. Packet Details Pane(封包详细信息), 显示封包字段 4. Dissector Pane(16进制数据) 5. Miscellanous(址栏杂项)

简纯涛4890如何使用WIRESHARK进行ARP抓包 -
林苛肺15792358128 ______ 1、电脑做wifi热点,手机连上后电脑上使用wireshark抓包该方法手机无须root,并且适用于各种有wifi功能的手机(IOS、android等)、平板等.只要电脑的无线网卡具有无线承载功能,就可以.方法如下:1.把电脑的网络做为热点2.开启wifi热点后,

简纯涛4890wireshark怎么抓包分析网络故障实战 -
林苛肺15792358128 ______ 【WireShark概览】 1、Wireshark 是网络报文分析工具.网络报文分析工具的主要作用是尝试捕获网络报文, 并尝试显示报文尽可能详细的内容.过去的此类工具要么太贵,要么是非公开的. 直到Wireshark(Ethereal)出现以后,这种情况才得...

简纯涛4890抓包工具wireshark怎么抓get和post -
林苛肺15792358128 ______ http.request.method == "GET" http.request.method == "POST" 请采纳!

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024