停止 NetworkManager 将监控模式下的接口更改为管理模式而不关闭它

停止 NetworkManager 将监控模式下的接口更改为管理模式而不关闭它

我正在做一个项目,需要有一个接口处于监控模式,两个接口处于托管模式。我在接口中设置监控模式的方式如下:

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 

重新启动以使更改生效。

它解决了我的特定问题。

相关内容