在 Mac OS X 上,我可以将无线接口设置为监控模式,如 2007 年的一篇文章中所述OSXdaily文章。
我也可以使用集成的无线诊断实用程序来执行此操作。不幸的是,这两个选项似乎都无法将我的界面恢复为“客户端”模式(默认模式,在 Linux 圈子中也称为托管模式)。唯一的方法似乎是重新启动。还有更好的选择吗?
答案1
任何进程退出后都无法让界面处于监控模式。
虽然我们在 El Capitan 上运行时大多数时候都是这样的:
# sudo tcpdump -p -I -i enX -y IEEE802_11
tcpdump 退出后,接口可能会卡在监控模式(X
无线网卡支持监控模式的话)。注意我说的是“可能”。这不是错误。有几次它恢复到了正常模式。大多数时候都没有。
随后运行此命令即可修复该问题(这是我对您的问题的回答):
# sudo tcpdump -I -i enX -p
这让我们相信 tcpdump 或 Mac OS X 以及它们之间的交互方式存在问题(问题也可能出在介于两者之间的 libpcap 上)。
我们继续阅读 libpcap 的源代码,发现了许多关于 Mac OS X 上监控模式的宝贵信息,这些宝贵信息反过来又指出,选择特定的 DLT 模式(使用 tcpdump 上的 -y 标志)会导致 Mac OS X 将接口置于监控模式(无需 libpcap 的额外工作)。此外,与其他系统相反,当 libpcap 在 Mac OS X 上运行时,似乎不会对监控模式状态进行任何特殊清理。
在我们的案例中,我们必须能够获取 802.11 管理帧(探测请求),同时保持基站关联和连接。
我们最终构建了一个直接与 libpcap 交互的程序,并pcap_set_rfmon(pcap, 1)
在激活接口上的捕获之前简单地请求监控模式(不选择 DLT 模式)。退出时,程序只需关闭捕获句柄,一切恢复正常(索伦之眼消失),网卡仍与网络关联。整个执行过程中互联网访问都正常。
答案2
任何进程在退出后都无法离开监控模式的界面。因此,无论您使用什么工具进入监控模式,只需退出/终止该工具,您就会恢复正常运行。
如果 Wi-Fi 菜单附加图标变成索伦之眼/光明之眼而不是条形,则表明您的界面处于监控模式。如果它显示条形(甚至所有灰色条形)、感叹号、“向上箭头”AP 模式图标、“计算机屏幕”计算机到计算机(又称“ad hoc”,IBSS)图标、空楔形“Wi-Fi 关闭”图标或“X”“驱动程序未加载”图标,则表示它未处于监控模式。
我认为您可能将监控模式与接口简单断开连接(未连接到网络,条形图全部为灰色)混为一谈。如果接口未与任何网络关联,只需选择一个网络即可。或者只需关闭 Wi-Fi 并重新打开,让它自动为您选择。
答案3
在终端中运行top
并查找机场并在左侧检查PID号码,我的是1748,现在击中Ctrl+C退出顶部现在运行sudo kill 1748
,就可以了,现在连接到 wifi,你就可以开始了。