什么是抓包?用Wireshark分析网络流量的基础入门

按顺序完成下面的步骤,从零开始学会读懂自己抓到的第一批数据包。

  1. 抓包到底是什么

    抓包是指逐个截获并记录网络接口上传输的数据包(帧),从而可以直接查看其内容。这是一种用于诊断网络问题,或者亲眼确认某个协议实际运行方式的技术,而不只是从文档里了解它。

  2. 安装Wireshark

    Wireshark是使用最广泛的免费开源抓包与分析工具,官网提供Windows、Mac、Linux版本的安装程序。安装过程中一并装上的捕获驱动,才是在系统层面真正负责截获数据包的部分。

  3. 选择要抓取的网络接口并开始捕获

    启动Wireshark后,在列表中找到实际承载流量的接口(Wi-Fi、以太网等)并双击它,数据包就会实时开始在屏幕上滚动出现。

  4. 先用捕获过滤器提前筛选

    在开始抓包之前设置捕获过滤器——比如按特定地址或端口——可以只保留你关心的流量,既能减小文件体积,也能大大减轻后续分析的负担。

  5. 用显示过滤器筛选出想看的数据包

    在已经捕获的结果中,在窗口顶部的过滤栏输入协议名称或表达式,就能把视图缩小到只显示匹配该协议或条件的数据包。

  6. 学会读懂常见的流量模式

    学会识别连接开始时的TCP三次握手、DNS查询与响应、HTTP请求与响应等常见模式后,你就能亲眼确认"连接到底是在什么时候失败的""延迟到底出现在哪个环节"。像HTTPS这样加密的流量,虽然还是能看到连接了哪个服务器之类的元数据,但看不到实际内容。

几个值得记住的显示过滤器

日常使用中,几个表达式基本就能覆盖大部分场景:ip.addr==192.168.1.10可以只筛选出与某台设备相关的所有流量,tcp.port==443能把范围缩小到HTTPS流量,http只显示HTTP请求和响应,dns只显示DNS查询。用"&&"(且)或"||"(或)组合多个过滤条件,还能进一步精细筛选。

Wireshark并不是唯一的选择

Wireshark的图形界面是浏览已捕获流量最直观的方式,但大多数Linux和Mac系统内置的命令行抓包工具tcpdump,在无法使用图形界面的远程服务器上做快速检查时往往更高效。你也可以先用tcpdump把捕获结果保存成文件,之后再用Wireshark打开做更深入的分析。

常见问题

我只能看到自己电脑的流量,还是也能看到别人的?

在典型的交换式有线网络中,默认情况下你通常只能看到自己设备收发的流量。不过根据网络结构的不同——比如和别人共用同一台Wi-Fi路由器——有时能看到的范围会更广,这正是为什么你只应该在自己获得授权的网络上进行抓包。

使用Wireshark本身违法吗?

这个工具本身是一款合法的网络诊断程序。关键在于使用方式:在自己拥有或已获得明确授权的网络和设备上用于诊断目的没有问题,但未经同意截获他人的流量则可能违法。