macos用tcpdump抓包需sudo权限、选对网卡(如en0/en1)、设准过滤;lo0仅捕回环流量,dns若走127.0.0.1则抓lo0,否则抓物理网卡;https重点捕syn和clienthello(0x160301);建议保存pcap用wireshark分析。

确认当前活跃网卡
macOS 常见接口是 en0(Wi-Fi) 或 en1(有线),但具体哪个在用得看实际连接。别猜,直接查:
- 运行
sudo tcpdump -D列出所有可用接口 - 或执行
ifconfig | grep "inet " | grep -v 127.0.0.1,看非本地的 IP 对应哪个 enX
注意:lo0 是回环口,只抓本机内部通信(比如 DNS 代理请求);外网流量一定得抓 en0 或 en1。
抓 DNS 请求与响应(UDP 53 端口)
DNS 默认走 UDP 53,但 macOS 的行为取决于你是否用了本地 DNS 代理(如 dnsmasq、dnscrypt-proxy):
- 若系统 DNS 设为
127.0.0.1(常见于开发环境),就抓lo0:sudo tcpdump -i lo0 -nn port 53 -A - 若直连公网 DNS(如
8.8.8.8),则抓物理网卡:sudo tcpdump -i en0 -nn port 53 -A
-A 能以 ASCII 显示明文域名和响应 IP;-nn 避免反向解析拖慢输出,也防止干扰判断。
macOS 微信消息自动化工具。通过 GUI 自动化实现:发送消息给指定联系人、读取聊天内容、监控新消息。适用于需要自动化微信操作的场景,如定时发送、批量回复、消息备份等。依赖 peekaboo 进行屏幕截图和 UI 交互。仅支持 macOS。开源地址:https://github.com/chairmanmia...
抓 HTTPS 连接建立与 TLS 握手
HTTP 明文极少,重点看 TCP 三次握手 + TLS ClientHello(即加密协商起点):
- 快速验证连接是否发起(只看 SYN 包):
sudo tcpdump -i en0 -nn -vvv 'tcp port 443 and (tcp[tcpflags] & tcp-syn != 0)' - 完整捕获握手过程(SYN + ClientHello):
sudo tcpdump -i en0 -nn -s 0 'tcp port 443 and (tcp[tcpflags] & (tcp-syn|tcp-ack) != 0 or tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x16030100)'
ClientHello 特征是前 3 字节为 0x160301(TLS v1.2+),配合 -s 0 确保抓全包内容。抓完后关注时间戳、源/目的端口、SYN/ACK 标志位及序列号变化。
保存与后续分析
命令行实时看容易漏细节,建议先存成 pcap 文件再用 Wireshark 深度分析:
- 保存某域名的 HTTPS 流量:
sudo tcpdump -i en0 -nn -s 0 'host api.example.com and port 443' -w https-api.pcap - 之后用 Wireshark 打开
https-api.pcap,右键 → Follow → TLS Stream,可清晰看到握手全过程 - 清 DNS 缓存辅助验证:
dscacheutil -flushcache,再用curl -v https://example.com触发新请求
不复杂但容易忽略:权限、接口、过滤逻辑三者缺一不可。抓不到不是工具问题,大概率是这三个地方没对上。










