我正在做一个项目,需要有一个接口处于监控模式,两个接口处于托管模式。我在接口中设置监控模式的方式如下:
sudo ifconfig {iface} down
sudo iwconfig {iface} mode monitor
sudo ifconfig {iface} up
这确实有效,但过了一会儿,界面会自动进入托管模式。我在 Google 上搜索了一下,发现已经有人在这里问过这个问题了(Wifi 接口模式自动切换回托管(Ubuntu 20.04)), 但chili555 的回答仅解释如何关闭该NetworkManager
服务。
就我而言,我希望服务继续运行。有办法实现这一点吗?如果可能的话,NetworManager
我也想避免使用。airmon-ng
答案1
多年来,我一直在运行一台显示器和一台管理设备,而昨天才有一台设备出现这种情况。我正在尝试确定这台设备有什么不同,我发现了这一点,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
,但该目录中的所有文件都将按编码顺序读取。稍后读取的文件将覆盖先前读取的文件片段。确保keyfile
列出了插件。其他插件也可能列出。[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
重新启动以使更改生效。
它解决了我的特定问题。