一、Wireshark安装常见问题及解决方法

Wireshark是一款常用的网络抓包工具,很多人第一次接触的时候,会在安装环节碰到各种小问题,要么装不上,要么装上之后不能正常启动,下面就把最常见的几个问题拆解清楚,附详细解决步骤。

1.1 安装时提示“缺少WinPcap”或“Npcap未安装”

这是Windows系统用户最常碰到的问题,尤其是装旧版本Wireshark的时候。很多人以为Wireshark会自带所有依赖,其实它的核心抓包功能,需要依赖一个叫Npcap的底层驱动(旧版本叫WinPcap,现在已经停止维护,官方推荐用Npcap),如果安装包没带这个,或者安装时没勾选自动安装,就会弹错。 解决步骤很简单,分两种情况:如果是安装Wireshark时弹错,直接去Npcap的官方网站下载最新版的安装包,注意要选对应系统位数(32位或64位,右键此电脑-属性就能看到),安装时勾选“Install Npcap in WinPcap API-compatible Mode”(兼容WinPcap模式,这样旧版本Wireshark也能识别),装完重启电脑再装Wireshark就行;如果是装Wireshark时自动带了Npcap的安装选项,一定要勾上,不要跳过。

1.2 Mac系统安装后无法启动或提示“无法打开,因为来自身份不明的开发者”

Mac的安全机制比Windows严格,默认会拦截没经过苹果认证的软件,Wireshark因为是开源工具,很多版本没走苹果的认证流程,所以会弹这个提示。 解决方法有两个,第一个是临时允许:打开系统设置-隐私与安全性,往下拉会看到“仍要打开”的按钮,点一下就能启动;第二个是永久允许,不用每次都改设置:打开终端,输入以下命令(技术栈:Mac终端Shell),输入后按回车,输入自己的电脑密码(输入时终端不会显示密码,正常输完按回车就行),再重启Wireshark就不会弹提示了。

# 允许Wireshark的主程序和相关组件的运行权限
sudo spctl --master-disable
sudo xattr -cr /Applications/Wireshark.app

注释:第一条命令是临时关闭系统的安全拦截机制(用完可以再用sudo spctl --master-enable恢复,不影响系统安全),第二条命令是清除Wireshark程序的隔离属性,解决身份不明的提示。

1.3 Linux系统安装后没有权限抓包

Linux系统的权限管理很严格,默认普通用户没有权限操作网络接口,装完Wireshark后打开,会发现抓包接口列表是空的,或者提示“Permission denied”。 解决方法是给普通用户添加wireshark用户组的权限,步骤如下(技术栈:Linux终端Shell,以Ubuntu系统为例):

# 安装Wireshark(如果还没装的话,先更新源再装)
sudo apt update
sudo apt install wireshark -y
# 给普通用户添加wireshark组权限
sudo usermod -aG wireshark $USER
# 重启系统让权限生效
sudo reboot

注释:$USER是Linux的环境变量,代表当前登录的普通用户名,不用手动替换;如果是CentOS系统,把apt换成yum就行,其他命令一样。

二、Wireshark配置过程中的常见问题及解决方法

装完Wireshark,很多人会碰到配置上的问题,比如抓不到包、抓到的包乱码、过滤规则没用,这些大多是配置没调对导致的,下面逐一解决。

2.1 抓包接口列表为空,看不到网卡

这个问题在Windows、Mac、Linux系统都可能出现,原因有两个:一是网卡本身有问题,二是Wireshark没权限访问网卡,或者网卡被其他软件占用了。 解决步骤分三步:第一步,先检查网卡是否正常工作,Windows用户打开控制面板-网络和共享中心-更改适配器设置,Mac用户打开系统设置-网络,Linux用户打开终端输入ifconfigip addr,确认网卡是启用状态,没有显示禁用;第二步,关闭其他占用网卡的软件,比如VPN、防火墙、其他抓包工具(比如Fiddler、Charles),这些软件会独占网卡的抓包权限,导致Wireshark看不到;第三步,重新启动Wireshark,Windows用户右键Wireshark图标,选择“以管理员身份运行”,Mac和Linux用户按之前的权限配置步骤检查是否正确。

2.2 抓到的HTTP包内容乱码,看不到中文

很多人抓HTTP包的时候,会发现响应内容里的中文全是乱码,这是因为Wireshark默认的字符编码配置不对,HTTP包的内容通常是UTF-8编码,而Wireshark默认可能用了其他编码。 解决方法是修改Wireshark的字符编码配置,步骤如下:打开Wireshark,点击顶部菜单栏的“编辑”,选择“首选项”,在弹出的窗口里,找到“协议”分类下的“HTTP”,然后在右侧的“字符编码”下拉框里选择“UTF-8”,点击“确定”,再重新抓包,就能看到正常的中文了。

2.3 过滤规则不生效,抓不到想要的包

这是新手最容易碰到的问题,比如想抓某个IP的包,输入规则后还是抓到很多无关的包,或者干脆抓不到。原因大多是过滤规则的语法写错了,Wireshark的过滤规则有两种,一种是抓包前的过滤(叫捕获过滤),一种是抓包后的过滤(叫显示过滤),很多人搞混了这两种规则的语法。 举个例子,要抓来自IP 192.168.1.100的HTTP包,捕获过滤的规则(技术栈:Wireshark捕获过滤语法)是:

src host 192.168.1.100 and tcp port 80

注释:src代表源IP,tcp port 80代表HTTP的默认端口,这个规则是抓包前就过滤,只抓符合条件的包。 显示过滤的规则(技术栈:Wireshark显示过滤语法)是:

ip.src == 192.168.1.100 and tcp.port == 80

注释:显示过滤是抓完包之后,在已抓的包里过滤,语法里要用==,而捕获过滤用的是空格分隔的关键词,很多人把显示过滤的语法用到捕获过滤里,就会导致规则不生效。 如果还是不生效,可以检查规则里的符号是不是用了中文符号,Wireshark只支持英文符号,比如中文的“==”或者“,”都会导致规则错误。

三、常见问题的应用场景、优缺点及注意事项

3.1 应用场景

Wireshark的安装与配置问题,主要出现在网络开发、网络运维、安全测试这几个场景里:比如开发人员调试接口时,需要抓包看请求和响应的内容;运维人员排查网络故障,比如服务器连不上外部服务,需要抓包看网络请求的流向;安全测试人员分析网络攻击,比如有没有恶意的网络请求,这些场景都需要Wireshark能正常安装和配置。

3.2 技术优缺点

Wireshark本身的优点是开源免费、功能强大、支持几乎所有的网络协议,能详细解析每个包的内容,适合各种场景的网络分析;但它的缺点也很明显,安装依赖多,不同系统的配置差异大,新手容易碰到权限、驱动的问题,过滤规则的语法也比较复杂,需要花时间学习。 而我们解决这些安装配置问题的方法,优点是都是官方推荐的步骤,兼容性好,不会破坏系统的稳定性;缺点是有些步骤需要重启电脑,或者修改系统的安全设置,比如Mac的临时关闭安全拦截,可能会让新手觉得不安全。

3.3 注意事项

第一,安装Wireshark时,一定要从官方网站下载安装包,不要从第三方网站下载,避免下载到带病毒的安装包;第二,配置权限时,Mac和Linux系统的命令不要随便复制粘贴,要确认是针对自己的系统版本,比如CentOS和Ubuntu的安装命令不一样;第三,修改系统安全设置后,用完Wireshark可以恢复默认设置,比如Mac的sudo spctl --master-enable,避免系统安全风险;第四,过滤规则的语法一定要区分捕获过滤和显示过滤,不要搞混,避免规则不生效。

四、文章总结

Wireshark的安装与配置,虽然看起来简单,但因为不同系统的差异、依赖的不同、权限的限制,会碰到很多常见问题,这些问题大多是因为对系统机制、工具依赖不了解导致的。只要按照官方推荐的步骤,先解决驱动、权限的问题,再配置字符编码、过滤规则,就能正常使用Wireshark的功能。 新手在碰到问题时,不要着急重装系统或者卸载工具,先按问题分类排查,比如安装问题先看依赖,配置问题先看权限和规则语法,大部分问题都能通过简单的步骤解决。同时,使用Wireshark时要注意合法合规,不要抓未经允许的网络包,避免侵犯他人隐私。