网络管理器在哪里存储设置?

网络管理器在哪里存储设置?

当我输入:

nmcli con show wlan0

其中一项设置是:

802-11-wireless.band:                   bg

此设置存储在磁盘上的什么位置?

它不在:/etc/sysconfig/network-scripts/ifcfg-wlan0

我已经 grep 了 lib、var 等中的所有内容,而 usr 和我还没有找到它。

答案1

NetworkManager支持各种插件,可以为配置信息定义新的存储位置。当前启用的插件可以在以下位置找到/etc/NetworkManager/NetworkManager.conf

[main]
plugins=ifupdown,keyfile

通用默认插件是keyfile,它将配置存储在/etc/NetworkManager/system-connections目录中,类似于 Windows.ini文件的文件中。

其他插件可能是特定于发行版的:

  • Fedora 和 RedHat 使用ifcfg-rh,它可以读取和写入/etc/sysconfig/network-scripts/ifcfg-*文件。

  • Debian 和 Ubuntu 使用ifupdown,这是一个只读插件:它会读取/etc/network/interfaces但不会对其进行任何更改。您通过 NetworkManager 所做的任何配置更改都将使用该插件保存keyfile

  • SuSE 显然曾经有ifcfg-suse,但它似乎已被弃用。

  • 其他发行版可能有自己的插件。

话虽如此,该802-11-wireless.band设置可能会从驱动程序报告的 WiFi NIC 功能中获取其默认值。仅当您想要明确将 NIC 限制为仅某些类型的 WiFi 网络时才会保存它。

如果您的 WiFi NIC 只能在 2.4 GHz 频段传输,则无法仅通过重新配置软件或驱动程序来添加功能:这将需要一个新的无线电模块和一个针对 5.0 GHz 频段调谐的新天线aac

答案2

尝试这个命令:

sudo  nmcli -f NAME,DEVICE,FILENAME connection show

它将显示以下内容:

NAME               DEVICE  FILENAME
bridge-br0         br0     /etc/sysconfig/network-scripts/ifcfg-bridge-br0
virbr0             virbr0  /run/NetworkManager/system-connections/virbr0.nmconnection
bridge-slave-eno1  eno1    /etc/sysconfig/network-scripts/ifcfg-bridge-slave-eno1
vnet1              vnet1   /run/NetworkManager/system-connections/vnet1.nmconnection
eno2               --      /etc/sysconfig/network-scripts/ifcfg-eno2

显然,当 NetworkManager 创建设备时,每个网络设备的配置都不会创建或存储在同一位置。

我在这里找到了资料,在 Red Hat Enterprise Linux 8 中配置和管理网络的指南,在 RedHat 访问站点上。

答案3

检查/etc/NetworkManager/system-connections/目录。它应包含所有已保存网络连接的信息。

编辑:命令的结果grep '802-11-wireless' `which nmcli`(匹配)意味着输出的格式化nmcli是由实用程序本身完成的nmcli,而不是直接从文件中读取。不过,右列上显示的一些数据是从某处读取的(bg在您的情况下)。您应该找到一个较长的文件,它似乎没有被实用nmcli程序和 grep 格式化。

答案4

输入sudo NetworkManager --print-config有关设置位置的信息..主要/etc/NetworkManager/system-connections/如上面所回答。

该目录中每个新“配置文件”的一些默认设置似乎是根据“无设置等于 True”逻辑确定的。如果您正在阅读此问题,请参阅我的问题:有没有办法默认永久禁用“可用时自动连接到该网络”?

相关内容