如果我使 wifi 接口离线:sudo ifconfig device_name down
。
然后将模式切换为监控:sudo iwconfig device_name mode monitor
。
然后使设备重新上线:sudo ifconfig device_name up
。
它保持监控模式约 3-5 秒,然后自动切换回managed
模式。
我用 iwconfig 检查了它,而且如果我开始运行 wireshark,它会因此停止运行并出现错误The network adapter on which the capture was being done is no longer running; the capture has stopped.
我该如何预防?
答案1
我认为是网络管理器在干扰。我也不认为这sudo ifconfig device_name on
是正确的。请尝试:
sudo service NetworkManager stop
sudo ifconfig wlp0s20f3 down
sudo iwconfig wlp0s20f3 mode monitor
sudo ifconfig wlp0s20f3 up
启动 wireshark,看看是否有任何改善。
答案2
有趣的是,当我尝试chili555的建议,它成功进入wlan1
监控模式,但完全断开连接wlan0
。然而,当我重新启动时NetworkManager
,它恢复wlan0
并保持wlan1
监控模式。
不幸的是,当我重新启动设备时,wlan1
状态又恢复为监控,几秒钟后又恢复为管理。
多年来,我一直运行着数十台这样的设备,其中一个 Wi-Fi 连接到 SSID,另一个处于监控模式。我不确定这台设备的配置有什么不同,为什么会突然开始出现这样的行为,但我开始寻找替代解决方案,并发现了这一点:https://support.qacafe.com/cdrouter/knowledge-base/prevent-network-manager-from-controlling-an-interface/
配置网络管理器以忽略测试接口
网络管理器有一个命令行工具,可用于查看它正在控制哪些接口。打开终端窗口并输入以下命令:
nmcli dev status
这将显示一个表格,其中列出了所有网络接口及其
STATE
。如果网络管理器未控制某个接口,则其STATE
将列为unmanaged
。任何其他值都表示该接口在网络管理器控制之下。告诉网络管理器停止控制接口的首选方法是创建/更新目录中的文件
/etc/NetworkManager/conf.d/
并为其提供以下内容。您可以将文件命名为任何带后缀的名称.conf
,但该目录中的所有文件都将按编码顺序读取。稍后读取的文件将覆盖先前读取的文件片段。确保列出了密钥文件插件。其他插件也可能列出。[main] plugins=ifcfg-rh,keyfile [keyfile] unmanaged-devices=interface-name:eth0;interface-name:wifi1
keyfile 部分还可以包含通配符和例外,如下所示:
[keyfile] unmanaged-devices=interface-name:eth*,except:interface-name:eth0,except:interface-name:eth3;interface-name:wifi*
接口也可以通过其 MAC 地址(小写)来定义:
[keyfile] unmanaged-devices=mac:00:11:22:33:44:55;mac:66:77:88:99:00:aa
重新启动以使更改生效。
以上解决了我的特定问题。