资讯动态

抓包工具入门:10款免费利器与网络流量分析实战

发布时间:2026/10/14 22:48:12 来源:尧图企业网站定制
1. 为什么入门网络安全最先摸的不是漏洞而是流量总有新人问我想学网络安全是不是应该先从某个漏洞平台开始刷题我一般都会拦一下。刷题当然有用但如果你连一个HTTP请求长什么样都没亲眼看过连TCP握手的三次挥手都只停留在概念层面那刷题刷到后面一定会卡住——因为你根本不知道数据到底是怎么从一台机器跑到另一台机器的。抓包工具解决的就是这个问题把网络上流动的比特流还原成你能看懂的数据包让你亲眼看到客户端和服务端之间到底交换了什么。所谓抓包本质上是让网卡进入混杂模式把经过它的数据包全部拷贝一份出来再按照协议栈的层次规则把它们拆开、解析、展示。你可以把它理解成在快递分拣中心装了一台扫描仪每件包裹进出都会留下底单谁寄的、寄给谁、走的哪条线路、里面装了什么、有没有破损。对搞网络安全的人来说这份底单就是事故现场的第一手证据也是理解一切攻击行为的基础。抓包工具能解决什么问题最常见的几类场景我简单梳理一下接口调试前端调后端接口报错后端非说请求没到抓一次包就能定位是网络层丢了还是应用层报错。协议分析面试必考的TCP三次握手、TLS握手流程抓一次包看包序和标志位比背十遍书都管用。安全检测检查应用是否存在敏感信息明文传输、鉴权字段缺失、重放攻击风险等问题抓包是最直观的验证手段。性能排查请求耗时到底花在DNS解析还是等待响应时间戳一抓便知。这里必须先把边界说清楚。抓包和流量分析属于网络检测、合规审计、开发调试的常规手段是安全从业者的基本功大家用它去分析和检测自己负责的系统或者参与正规授权的安全测试项目完全没有问题。至于拿到了别人的流量能干什么这类念头想都不要想那不是入门的方向是进去的方向。工具本身没有原罪用在哪一侧决定你的身份。2. 十款免费抓包工具的全景速览按使用场景分组才有意义市面上叫得出名字的抓包工具少说几十款单纯按知名度排一个Top 10没有任何意义因为你装完根本不知道什么时候该用它。我的建议是先把工具按使用场景分成三组再从每组里挑出最有代表性的免费款。第一组通用流量级抓包工具。这类工具工作在网卡层面抓的是整机经过的所有流量不区分应用。最适合学原理、排查网络问题、分析协议交互。代表工具是Wireshark、tcpdump、tshark、Sniffnet。第二组HTTP/HTTPS应用级抓包工具。这类工具本质上是一个本地代理手机或浏览器的流量先走到它这里再由它转发给服务器。它专门为HTTP协议做了优化能把请求头、响应体、Cookie、重定向这些信息漂亮地展示出来。代表工具是Fiddler Classic、mitmproxy、Burp Suite Community。第三组移动端和浏览器场景的轻量工具。有些场景你没法开着电脑抓包比如排查Android应用里的某个接口异常或者只想速查一下网页请求的参数这时候就需要更轻的方案。代表工具是浏览器DevTools、HttpCanary、PCAPdroid。之所以强调分组是因为很多新手栽在用错工具上拿着Wireshark去抓一个App的HTTPS接口抓回来一堆TLS密文完全看不懂然后得出一个抓包没用的结论。这不是工具不行是层级搞错了。App的HTTPS流量要解密必须走应用级代理的方案让客户端信任你的根证书而不是在网卡层面硬啃密文。先把这十款工具的基本信息放在一起看个全貌工具平台免费程度工作层级最擅长的场景WiresharkWindows / macOS / Linux完全免费开源网卡级协议分析、全局流量排查tcpdumpLinux / macOS完全免费开源网卡级命令行服务器端快速抓包tshark全平台完全免费开源网卡级命令行脚本化批量分析SniffnetWindows / macOS / Linux完全免费开源网卡级可视化流量监控Fiddler ClassicWindows免费仅限WindowsHTTP代理浏览器/桌面端HTTPS调试mitmproxy全平台完全免费开源HTTP代理命令行可编程的HTTPS拦截Burp Suite Community全平台Java社区版免费HTTP代理Web安全测试浏览器DevTools浏览器内置免费应用层前端请求速查HttpCanaryAndroid免费版可用HTTP代理手机App接口调试PCAPdroidAndroid完全免费开源网卡级免Root手机端全流量监控先记住这个分组后面每一款我都会展开讲它的安装、上手路径、核心用法和坑点。3. 每个工具单独说清楚安装、上手、适用场景和实测感受3.1 Wireshark最值得先装的一款也是学习协议原理的神器Wireshark是抓包界的老大哥几乎所有安全从业者的第一堂课都有它。它的核心能力是协议解析支持上千种协议的解码从Ethernet帧、IP头、TCP/UDP端口一直到HTTP、DNS、TLS每一层都能拆开给你看。下载安装没什么好说的官网下一个对应系统的包一路Next就行。安装完打开选一个网卡点开始流量就进来了。第一次打开的人多半会被满屏的包吓到不知道自己该看什么。这时候别慌先学会用过滤条。想只看HTTP明文请求输入http想看某个IP的流量ip.addr 192.168.1.100想看DNS查询dns最常用的几个过滤表达式我建议贴在显示器旁边tcp.port 443只看443端口的流量http.request.method POST只看POST请求tcp.flags.syn 1只看TCP握手的SYN包ip.src 192.168.1.10 ip.dst 8.8.8.8组合过滤为什么推荐入门先学Wireshark因为它的图形界面把协议分层这个概念讲得最清楚。你点开任意一个包中间面板会分三层显示物理层/数据链路层、网络层、传输层。上面选中的字节下面会高亮对应的字段。这种直观反馈是任何命令行工具都给不了的。我刚入行时干过一件傻事抓了一晚上包发现一个HTTP请求都看不到。后来才知道浏览器默认走HTTPS流量全是TLS加密的Wireshark看到的是密文自然搜不到http关键字。这就是典型的层级搞错。要解密HTTPS得先在Wireshark里配置TLS解密用的会话密钥在Edit - Preferences - Protocols - TLS里导入或者干脆把应用级代理的工具用起来。这个坑后面专门说。3.2 tcpdump服务器上没有图形界面时的救命稻草搞安全的迟早要登录Linux服务器排查问题。服务器上通常没有桌面环境装不了Wireshark这时候tcpdump就是第一选择。它是Linux世界最经典的命令行抓包工具几乎每一台发行版服务器都可以通过包管理器装到。安装方式非常简单Debian系的执行sudo apt install tcpdumpRedHat系执行sudo yum install tcpdump最常用的几个姿势抓指定网卡的全部流量sudo tcpdump -i eth0 -nn抓80端口的HTTP请求并保存到文件sudo tcpdump -i eth0 -nn port 80 -w http.pcap抓和某台服务器之间的通信sudo tcpdump -i eth0 -nn host 10.0.0.5-w参数很多人会忽略但它特别重要。tcpdump把包存成pcap文件后你可以把文件下载到本地用Wireshark打开慢慢看。这就是服务器上抓包本地分析的标准工作流既不影响生产环境又能利用Wireshark强大的可视化能力。还有一个小技巧tcpdump默认会把DNS反向解析打开这会导致抓包变慢而且输出里全是主机名看起来乱糟糟的。所以-nn这个参数不做端口名和主机名解析基本是必加的不加你后面看输出的体验会非常差。3.3 tsharkWireshark的命令行分身脚本化分析的上位替代tshark是Wireshark官方配套的命令行工具装Wireshark的时候一般会一起装上。它的特点是既能抓包也能读包而且所有Wireshark的过滤表达式它都支持非常适合写脚本做批处理。举例来说你想从一个pcap文件里提取所有HTTP请求的URL用tshark一条命令就能做tshark -r http.pcap -Y http.request -T fields -e http.host -e http.request.uri-r是读文件-Y是过滤表达式-T fields指定输出格式为字段-e后面跟要提取的字段名。这条命令跑完所有请求的域名和路径就整整齐齐列出来了。配合awk、grep再做一轮统计一份简单的请求清单就出来了。我平时做流量分析时tshark使用频率比Wireshark还高。因为它可以无缝嵌入到自己的数据管道里比如抓完一个会话的包立即用tshark跑一遍统计看看有哪些可疑的域名解析再决定要不要深入分析。入门阶段可以先会用Wireshark看包等你意识到我不想每次都用鼠标点来点去的时候tshark就是自然的下一步。3.4 Fiddler ClassicWindows上调试HTTPS最顺手的工具Fiddler Classic是一款非常老牌的HTTP调试代理Windows平台上免费它是一个本地的代理服务器启动后默认监听127.0.0.1:8888浏览器的流量经过它转发你就能看到完整的HTTP请求和响应内容。对Windows用户来说Fiddler Classic对HTTPS解密做得很省心。首次启动后菜单里点一次Tools - Options - HTTPS - Decrypt HTTPS traffic会弹窗问你是否信任它生成的根证书点确定然后HTTPS包就能明文显示了。这个过程几乎是一键式的不像Wireshark还要手动导入TLS密钥所以在调试浏览器和桌面端应用的场景下Fiddler Classic比Wireshark来得更快。值得提一句的是Fiddler的生命周期问题。新版的Fiddler Everywhere是跨平台付费产品而Classic版一直停留在Windows平台免费维护。很多教程不提这个区别导致有人装完Everywhere发现要授权码误以为这工具已经收费了。实际上用Classic版就行它的核心调试功能完全够用。如果团队里有同事用macOS那可以换Charles或mitmproxy别在Fiddler这个问题上纠结。3.5 mitmproxy命令行党的福音可编程的HTTPS中间代理mitmproxy这名字就是man in the middle proxy的缩写翻译过来是中间人代理。和Fiddler类似它也工作在应用层专门处理HTTP/HTTPS流量但它最大的不同是默认是命令行交互界面而且提供了强大的Python脚本接口。启动它非常直观mitmproxy默认监听8080端口。把手机或浏览器的代理指向127.0.0.1:8080流量进来后就能在命令行界面里上下翻看。需要解密HTTPS时先启动mitmproxy然后访问它的提示地址下载并安装mitmproxy的根证书同样是一键信任的事。它真正的杀手锏是mitmproxy 脚本。你可以写一个Python脚本自定义修改请求、拦截响应、导出数据。比如我想拦截所有请求把里面包含password字段的值打码脚本大概长这样from mitmproxy import http def request(flow: http.HTTPFlow) - None: if password in flow.request.urlencoded_form: flow.request.urlencoded_form[password] ***然后在启动时加载mitmproxy -s modify_password.py这种可编程能力在安全测试里非常有用比如模拟弱口令重放、修改请求参数测试越权等场景都用得上。对入门者来说可以先不碰脚本单纯把它当图形化HTTP代理用。但等你把基础抓包玩溜了我强烈建议认真学一下mitmproxy的脚本机制它能让你的调试效率上升一个级别。3.6 Burp Suite CommunityWeb安全测试绕不开的入门工具Burp Suite在Web安全测试领域的地位差不多相当于Photoshop在设计圈的地位。它内置了代理、扫描、重放、解码等一系列功能。社区版免费足够入门学习和一些小型项目的测试使用。社区版的使用模式很固定先启动Burp然后配置代理地址为127.0.0.1:8080浏览器流量就进来了。默认情况下它会在Proxy - HTTP history里记录所有经过的请求你可以挨个点开看完整的请求头、请求体、响应体。它的杀手锏是拦截和重放你可以拦截一个请求改掉里面的参数再放行或者丢到Repeater里反复修改发送。理解篡改请求这件事是理解Web安全测试的钥匙。Burp的证书问题也是新手重灾区。第一次用它抓HTTPS时要下载它的CA证书并导入到浏览器信任列表。区别在于Burp的证书导入路径比较绕要先启动Burp然后浏览器访问http://burp 这个地址下载证书再按浏览器证书导入流程操作。每个浏览器的导入位置还不一样很多新手在这里卡了半天。建议直接按官方文档的步骤走或者搜索一下Burp Suite 安装证书 浏览器这类词跟着走一遍就好。3.7 浏览器DevTools其实你已经装好了只是没认真用很多人不知道自己天天用的浏览器自带的开发者工具就是一款非常不错的抓包工具。按F12打开DevTools切到Network面板刷新页面所有的网络请求就都列出来了包括每个请求的耗时、状态码、请求头、响应体、Cookie传递情况。浏览器DevTools的优势在于零成本、零配置、解HTTPS无压力——因为它自己就是浏览器的一部分流量在浏览器内部已经解密了能看到的内容是天然的明文。它特别适合快速排查前端问题某个接口为什么返回500某个按钮没反应是请求根本没发出去还是响应被拦了打开Network面板选中接口看一眼状态码和响应体答案基本就有了。有人可能觉得这不算专业抓包工具但我想说在面试的时候如果你能非常熟练地使用DevTools把请求的Header、Payload、时间线讲清楚就已经赢过很多人了。它是每一个Web开发者和安全从业者都应该达到闭眼睛都能用级别的工具。注意一点DevTools只抓浏览器内产生的流量抓不到系统里其他App的流量所以它的角色是速查不是全流量监控。3.8 HttpCanaryAndroid端调试App接口的实用选择排查手机App问题或分析Android应用流量时很多场景不方便用电脑做代理这时候在手机上直接抓包就非常方便。HttpCanary是Android上一款老牌的HTTP抓包工具无需Root就可以对大多数应用进行HTTP/HTTPS的捕获核心思路同样是安装它的根证书到系统里然后开启代理模式。用它抓自家测试App的接口非常直观打开应用点击开始抓包App的请求就会实时列在界面上点进去能看完整的请求体和响应体还能按域名、接口路径搜索。它还有一个历史记录功能适合回看之前抓过的会话。需要提醒的是Android 7.0及以上版本对用户证书的信任策略做了收紧很多App默认不再信任用户安装的证书会出现装了证书但抓不到HTTPS明文的情况。这是平台机制不是工具的问题。常见的绕过方案要么是改App的网络安全配置需要能改代码要么在Root设备上把证书移到系统证书目录。对于纯入门来说找一台不那么新的测试机或者只用它抓HTTP明文接口先把流程跑通更容易建立信心。3.9 PCAPdroid不需要Root就能看到全流量堪称手机版WiresharkPCAPdroid是我后来才发现的工具但用过之后直接进入常驻名单。它是一款开源免费的Android抓包工具不需要Root就能抓取手机上的网络流量并且能把抓到的包导出成pcap文件放到电脑上用Wireshark分析。这解决了Android端高性能抓包普遍需要Root的痛点。普通模式下PCAPdroid会列出每个App的实时连接信息显示的粒度是五元组级别源IP、源端口、目的IP、目的端口、协议。这点比HttpCanary更接近Wireshark的视角——它不是只看HTTP层而是能看到所有的TCP/UDP连接。配合它的PCAP捕获模式你可以把手机上的流量完整录下来导到电脑上深入分析这在排查一些冷门App的异常流量时特别好用。入门者可能不太需要它和Wireshark的联动但我建议装一个因为手机上随时抓一把流量看看比每次都开电脑方便得多。3.10 Sniffnet颜值高、零门槛的流量监控可视化工具最后一款和我前面介绍的都不太一样Sniffnet不是用来做精细协议分析的它更像一个流量总览仪表盘。开源免费支持三大平台安装后选择一个网卡它就会以实时图表的方式展示你的网络连接哪些IP在通信、走了哪些端口、流量速率是多少、分布情况如何。Sniffnet的最大价值是帮你建立流量感觉。你平时可能完全没意识到自己的电脑在一分钟之内有多少条连接跑起来之后看到一条条连接不断刷新很快就会对网络通信的频繁程度产生直觉。这个直觉在后续排查异常流量时非常重要——当一切正常时你见过什么样子异常出现时你才认得出来。它的过滤和导出能力比较基础撑不起复杂的协议分析需求所以定位就是视觉辅助初筛工具。我一般把它和Wireshark搭配使用先用Sniffnet看一眼整体情况发现可疑连接后再用tshark或Wireshark精准追踪。4. 新手最容易踩的几个坑证书信任、代理环、抓不到包的错觉4.1 明明装了证书HTTPS还是解密不了这是我在社区看到的高频问题没有之一。场景永远是我已经下载了XX工具的证书也点了信任为什么抓到的HTTPS还是CONNECT开头的隧道请求看不到明文原因多半是下面几个装错了信任位置很多工具下载的是cer格式的根证书需要在系统受信任的根证书颁发机构里导入而不是双击后放进个人证书区。放错位置的证书虽然提示已安装但系统根本不会拿它来验证服务器证书。只信任了当前用户没信任系统部分浏览器或App在验证证书时会忽略用户级别导入的证书要求证书必须存在于系统信任库。App不信任用户证书这就是前面提到过的Android 7.0策略很多App默认关闭了用户证书信任只认系统内置证书你装到用户目录的证书对它们无效。工具没开启解密开关比如Fiddler Classic的Decrypt HTTPS traffic选项Burp Suite的Proxy设置里的HTTPS拦截都需要手动勾选光装证书不够。排查顺序我建议是先确认为什么要解密HTTPS如果目标是看自己的App或浏览器的流量优先用Fiddler或Burp这类应用层代理一路勾选下来通常能通如果目标是分析全流量那得研究TLS密钥导出方案而不是指望靠装证书解决一切。抓包工具解决不了证书信任策略的问题它只是把客户端和服务端之间的流量导给你看。4.2 代理环越抓越乱最后彻底连不上网代理类抓包工具Fiddler、Burp、mitmproxy都要求你把客户端代理指向工具监听的端口。如果这个设置搞混了很可能出现代理环浏览器的代理指向FiddlerFiddler的上游代理又指向系统代理系统代理又指向浏览器流量在几个代理之间转圈最后整个网络直接瘫掉。症状非常典型启动抓包工具后浏览器打不开任何网页关闭工具也恢复不了。这是因为系统代理设置没有被正确清理。我从实战中总结的处理办法启动抓包工具时先确认它默认监听的端口是多少Fiddler是8888Burp是8080mitmproxy是8080别让多个工具同时监听同一个端口。浏览器用独立的代理插件管理代理规则比如只对特定域名走代理其余流量直连避免全局代理误伤系统设置。关闭抓包工具前务必先在系统网络设置里检查手动代理是否被勾选如果被勾选且指向工具端口先取消再关闭工具。如果已经搞乱了最快的恢复方式是打开操作系统的网络设置把代理模式改回关闭或直连然后重启浏览器。遇到过三次以上这个问题的朋友可以直接记住一条铁律代理抓包工具用完之后一定先把代理关掉再退出工具本身。这个习惯能帮你省下无数时间。4.3 接口抓到了但你以为的卡顿其实另有原因有一种常见误解抓到某个接口耗时2秒就断定是后端接口慢。实际上DevTools或Wireshark里看到的耗时是完整的请求总时长里面包含DNS解析、TCP建连、TLS握手、请求传输、服务端处理、响应传输等多个环节。那2秒可能只有200毫秒是服务端实际处理时间剩下的都在排队或者链路传输。入门时可以做的事情是在DevTools的Network面板里把耗时的分段展开来看Timing标签区分Queueing、Stalled、Waiting for server response这几段的具体数值。比如Waiting for server response很长说明请求已经发出去了瓶颈在服务端Stalled很长说明浏览器在排队可能是连接数受限。Wireshark里也可以用时间统计功能Statistics - Flow Graph看完整交互时序。看懂耗时是哪一段你才算真正会看抓包数据而不是只盯着响应是不是200这一个指标。5. 场景速查表与一条可复制的入门路线5.1 按需选工具别再纠结哪款最强最强抓包工具这个问题本身就问错了。前面十款工具各有各的主场我按常见需求场景整理了一张速查表你照着选就行我的需求直接选备选想学网络协议原理看完整包结构WiresharkSniffnet看整体Linux服务器上快速抓包排查tcpdumptshark做批处理抓下来一批包想写脚本分析tsharkWireshark手动看Windows上调试浏览器/桌面端HTTPSFiddler ClassicmitmproxyWeb渗透测试改包重放Burp Suite Communitymitmproxy脚本日常前端调试速查请求浏览器DevTools无Android手机抓App的HTTP接口HttpCanarymitmproxy 手机代理Android手机看全流量连接PCAPdroidSniffnet 导pcap只想看流量概览和实时连接SniffnetWireshark视图5.2 从零到能看懂第一个包我建议按这个顺序走这条路线是我自己带过几个新人之后总结出来的基本不会劝退。流程有点长但每一步都稳。第一步装好Wireshark先抓本机流量看5分钟。不看任何教程就是开着抓包然后在浏览器里随便访问几个网站回来看列表里那些花花绿绿的包。你不需要看懂全部只需要找到那几条关于访问网站的HTTP或TLS记录点开看看感受一下原来一次网页访问背后有这么多条记录。第二步学会用过滤表达式。把第二节里列的那几个表达式挨个试试尤其是http和dns这两个。用dns过滤一下你会看到一次网页访问背后竟然有那么多域名解析请求这是建立网络直觉非常快的方式。第三步找一个带图形界面的HTTP代理工具Fiddler Classic或Burp Community都行。配置好代理抓一次自己提交表单或者登录接口的请求找到刚才提交的那些数据看看它们是在请求体里还是URL里是明文还是加密。这一步会让你立刻理解参数传递到底是怎么回事。第四步回到Wireshark抓一次TCP建连的过程。随便访问一个HTTPS网站过滤条件输入tcp.port 443然后找到会话的第一批包观察SYN、SYN-ACK、ACK的顺序。这是教科书上画过无数次的东西亲眼确认一次之后你就再也不会忘了三次握手。第五步选一个命令行工具做补充。Linux环境就用tcpdump本地有pcap文件需要批量看就用tshark。不需要学得很深先把抓包存文件、拿到本地分析这条工作流跑通。第六步挑一款手机端工具装上。用PCAPdroid看看自己手机里哪些App在悄无声息地联网再看看某个App初始化时的连接列表试着找一个HTTP明文接口用HttpCanary看完整请求。到了这一步你对流量这件事的基本认知就建立起来了之后再学协议细节、学安全测试都有了一个非常扎实的地基。我个人在实际带人过程中的体会是前面六步不需要追求把所有工具都研究透每个工具能用起最核心的两个功能就行。工具之间天然存在功能重叠用得顺手比用得全面重要得多。等你对这些工具都建立了使用手感自然就会知道在哪个场景该掏出哪一个。现在就把Wireshark装好开始抓第一次包吧。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑