MAC上使用Wireshark常见问题

文章目录

介绍

简单记录Wireshark在日常使用过程中的遇到的小case。

正文

Wireshark相较于tcpdump使用较为简单,交互也更为友好。

点击Start即可启动抓包

启动异常-Permission denied

如果是第一次启动Wireshark,经常会遇到以下提示:

复制代码
You do not have permission to capture on device "lo0". ((cannot open BPF device) /dev/bpf0: Permission denied)

简单翻译就是用户态的进程没有权限读取数据链路层的数据包;

关于BPF,一种常见的数据包过滤器,通过过滤接口方便用户态进程从内核中复制想要的数据包。

解决方法

通过sudo chmod授权读取权限即可,这里方便演示所以就打开了所有bpf设备的读取权限,其实可以针对性的授予权限。

复制代码
sudo chmod o+r /dev/bpf*

过滤协议和地址

就像前文介绍的,说到底就是传入过滤表达式给过滤器(BPF)前往内核复制数据包到用户态,方便查看;

所以除了常见的查看指定地址、端口以外还需要指定协议(日常查看最多的就是TCP了):

复制代码
ip.addr == 127.0.0.1 and tcp.port==61578

另外查看端口的方式是点击某一条数据后点击Transmission Control Protocol即可查看协议细节(当然没有IP,原因请看下文);

这里说个题外话,日常工作中(包括我身边)有很多人无意识脱口而出"TCP四元组",其实这个说法仅存在简体互联网上。我曾经还和人争论过(刚毕业买过TCP/IP上下两册翻过,没见过四元组这个说法,但是同事坚持自己四元组的说法,最后谁也没说服谁),后来查阅TCP协议、文档确实不存在四元组的说法。TCP是传输层协议,前32位(包括16位源端口、16位目的端口)确切的说在传输层并不包含IP的解析,IP是下层协议解析后带上的,和TCP本身没有关系。由这点就可以看出,看资料还是看英文原版比较好。

指定源地址和目的地址

很多时候,未必清楚端口(是的,笔者在排查中间件相关问题时,业务方找来时往往业务服务端口和连接服务的端口没人知道,时常被人反驳"我怎么知道,你搞基础架构的你应该更清楚啊",苦涩的笑容溢于言表),所以这时,最好的选择就是通过本地IP和目的服务IP进行过滤:

复制代码
ip.src== 127.0.0.1 and ip.dst== 127.0.0.1

调整 time format

默认时间显示的是耗时,而其实很多时候还仅需要看异常周期内的数据包,所以时间格式需要调整方便 锁定时间窗口;排查时间窗口内的数据包是否存在异常:

相关推荐
哈__1 小时前
从 MySQL 到在线表格:NocoDB 自托管部署、数据导入与远程访问
数据库·mysql
倔强的石头1062 小时前
高可用与无感扩容——分布式时序数据库选型指南
数据库·分布式·时序数据库
袋鼠云数栈10 小时前
实时湖仓如何真正做到“数据够新”?
大数据·数据库·人工智能·数据治理
啊阿狸不会拉杆10 小时前
《计算机网络-自顶向下方法》4.6 小结、课后习题与Wireshark实验 读书笔记
计算机网络·wireshark·智能路由器
ACP广源盛1392462567310 小时前
M6/M5 Pro Mac mini 端侧 AI 落地@ACP#YLB3116 中端多盘存储扩展在 AI 服务中的机会与应用场景
大数据·网络·数据库·人工智能·嵌入式硬件·macos
ACP广源盛1392462567311 小时前
M6/M5 Pro Mac mini 端侧 AI 新形态@ACP#GSV5800 Serdes 长距离视频传输在 AI 服务中的机会与落地场景
大数据·网络·数据库·人工智能·嵌入式硬件·macos·音视频
倔强的石头_13 小时前
事务边界与批量写入:避免长事务、锁等待和日志压力
数据库
努力努力再努力wz13 小时前
【Redis入门系列】从 KEYS 到 SCAN:渐进式遍历、Cursor 与位反转原理
数据库·redis·缓存
坐吃山猪13 小时前
【多线程】Lock与Condition
大数据·数据库
Lightpwd14 小时前
Spring Boot 多数据源落地:AbstractRoutingDataSource + 注解切面(附源码)
数据库·后端