Wireshark在Mac上无法抓包需依次解决权限、接口选择、混杂模式、流量验证及过滤保存问题:一、sudo chmod 777 /dev/bpf*并重启;二、选对活跃接口(如en0)并启用混杂模式;三、ping测试并确认ICMP等包出现;四、用icmp、http.request.method=="GET"等过滤;五、File→Save As保存为pcap格式。

如果您在Mac系统上安装了Wireshark但无法正常捕获网络数据包,则可能是由于权限缺失、接口未正确选择或混杂模式未启用所致。以下是完成抓包任务的具体操作步骤:
一、确认并授予Wireshark捕获权限
macOS默认限制非特权进程访问底层网络设备,Wireshark需通过ChmodBPF工具或手动授权获取对/dev/bpf*设备的读写权限。未授权将导致“Permission denied”错误或界面显示无数据包。
1、打开终端应用程序。
2、输入命令:sudo chmod 777 /dev/bpf*,然后按回车键。
3、输入当前用户密码(输入时无可见字符提示,属正常现象)。
4、执行完成后,重新启动Wireshark。
二、选择正确的网络接口并启用混杂模式
Wireshark必须绑定到实际活跃的物理或虚拟网卡才能捕获流量;若选错接口(如仅选中lo环回口),将无法看到外部通信数据。启用混杂模式可确保捕获局域网内经由该接口转发的所有帧,而非仅发往本机的数据包。
1、启动Wireshark后,在主界面下方的“Interface List”区域查看可用接口。
2、识别正在使用的网络接口,例如:Wi-Fi对应“en0”,以太网对应“en1”,可通过终端执行ifconfig | grep "inet "比对IP地址确认。
3、点击接口右侧的设置图标(齿轮形),勾选Capture packets in promiscuous mode。
4、点击“Start”按钮开始捕获。
三、启动抓包并验证基础流量
抓包启动后需触发真实网络行为,否则界面将保持空白。使用ICMP协议(如ping)是最直接验证链路层与网络层连通性的方法,其数据包结构简单且易于识别。
1、在Wireshark主界面点击绿色鲨鱼图标(Start capturing packets)。
2、切换至终端,执行ping -c 4 www.baidu.com。
3、返回Wireshark,观察数据包列表是否出现类型为ICMP、源/目的IP匹配的条目。
4、若出现大量ARP、DNS或TCP SYN包,说明接口与权限配置已生效。
四、应用显示过滤器聚焦目标协议
原始捕获结果包含海量协议类型,使用显示过滤器可即时筛选出HTTP、DNS、ICMP等特定协议数据包,避免人工逐行扫描。过滤语法区分大小写,且必须在捕获进行中或停止后于顶部过滤栏输入。
1、在Wireshark顶部中间的“Filter”文本框中输入过滤表达式。
2、输入icmp并按回车,仅保留ICMP协议数据包。
3、输入http.request.method == "GET",筛选全部HTTP GET请求。
4、输入ip.addr == 192.168.1.100,限定源或目的IP为指定地址的全部流量。
五、保存与导出捕获结果
为便于后续离线分析或协作排查,需将实时捕获的数据保存为标准pcap格式文件。该格式被tcpdump、Tshark及其他网络分析工具广泛支持,且保留完整时间戳与原始字节流。
1、点击顶部菜单栏File → Save As。
2、在弹出窗口中选择保存路径,输入文件名(建议含日期与场景描述,如“dns_test_20260404.pcap”)。
3、确认文件类型为Wireshark/tcpdump/... - pcap(默认选项)。
4、点击“Save”按钮完成保存。

















