NetworkManager配置文件及常见配置说明

NetworkManager是用来管理网卡配置和连接状态的工具。它能够自动检测可用的网络,并根据需要进行自动切换,同时也可以手动配置网络设置,例如IP地址、网关和DNS。本文介绍Alibaba Cloud Linux 3系统中NetworkManager配置文件及常见配置说明。您可以根据实际需求调整配置,以满足特定的业务场景。

NetworkManager配置文件说明

NetworkManager的配置文件由以下文件组成,加载顺序从左到右,优先级依次变高:/usr/lib/NetworkManager/conf.d/run/NetworkManager/conf.d//etc/NetworkManager/NetworkManager.conf/etc/NetworkManager/conf.d

  • /usr/lib/NetworkManager/conf.d:该目录主要包含软件的默认配置,任何用户自定义配置都应该保存在优先级更高的配置文件中(例如/etc/NetworkManager/conf.d),以确保这些定制设置在软件包更新时不会被覆盖。

  • /run/NetworkManager/conf.d/:该目录存放的是临时运行配置,通常由系统服务或启动脚本在启动时创建。由于系统重启后配置会丢失,因此不建议在此目录中存放自定义配置。

  • /etc/NetworkManager/NetworkManager.conf:该文件是NetworkManager的主配置文件,在软件包的删除和升级过程中被更新。因此,为了防止用户的自定义更改被覆盖,一般不建议直接修改NetworkManager.conf文件。

  • /etc/NetworkManager/conf.d:修改默认的NetworkManager推荐通过在/etc/NetworkManager/conf.d目录下创建相应的.conf文件来完成配置。这样可以确保软件包更新时,自定义设置保持不变。需要注意的是,该目录中的文件会按文件名的字典序进行读取。

NetworkManager常见配置

NetworkManager日志配置

本文以设置level=TRACEdomains=ALL来收集所有的操作日志为例。

  1. 执行以下命令,创建并打开set-log.conf文件。

    sudo vim /etc/NetworkManager/conf.d/set-log.conf
  2. i键进入编辑模式,将以下内容复制到set-log.conf文件中。

    [logging]
    level=TRACE
    domains=ALL
    • level参数说明

      日志级别(level)

      说明

      OFF

      将日志记录关闭,不会输出任何日志信息。

      ERR

      仅输出错误级别的日志信息。

      WARN

      输出警告级别及以上的日志信息。

      INFO

      输出一般信息级别的日志。

      DEBUG

      输出调试级别的日志信息。

      TRACE

      输出非常详细的追踪级别的日志信息。

    • domains参数说明

      领域(domains)

      说明

      NONE

      不记录任何领域的日志信息。

      ALL

      记录所有可用领域的日志信息。

      DEFAULT

      记录默认领域的日志信息。

      DHCP

      记录与DHCP客户端相关的日志信息。

      IP

      记录与IP管理相关的日志信息。

  3. Esc键,输入:wq后按Enter键,保存配置。

  4. 执行以下命令,使配置生效。

    sudo systemctl restart NetworkManager
  5. 执行以下命令,查看NetworkManager日志。

    journalctl -u NetworkManager

NetworkManager不接管网卡配置

配置NetworkManager不接管网卡时,需要在keyfilesection中指定unmanaged-devices键。本文以NetworkManager配置不接管辅助网卡(如eth1)为例。

  1. 执行以下命令,查询网卡状态。

    nmcli device status

    回显信息如下图所示,表示eth0eth1默认被NetworkManager接管,lo未被接管。

    image

  2. 执行以下命令,创建并打开unmanaged.conf文件。

    sudo vim /etc/NetworkManager/conf.d/unmanaged.conf
  3. i键进入编辑模式,将以下内容复制到unmanaged.conf文件中。

    [keyfile]
    unmanaged-devices=interface-name:eth1
  4. Esc键,输入:wq后按Enter键,保存配置。

  5. 执行以下命令,使配置生效。

    sudo systemctl restart NetworkManager
  6. 执行以下命令,查看修改是否成功。

    nmcli device status

NetworkManager插件配置

NetworkManager使用ifcfg-rh/keyfile插件来读取和写入网络配置,默认情况下,使用ifcfg-rh插件来管理主网卡(如eth0),使用keyfile插件来管理辅助网卡(如eth1)。

  • ifcfg-rh插件用于从/etc/sysconfig/network-scripts/ifcfg-*文件中读取/写入配置。

  • keyfile插件是NetworkManager的通用插件,每个连接都有一个对应的.nmconnection配置文件。

  1. 执行以下命令,打开NetworkManager.conf配置文件。

    sudo vim /etc/NetworkManager/NetworkManager.conf
  2. i键进入编辑模式,添加或修改plugins的值。

    说明

    plugins中插件优先级是按照声明顺序决定的,即最左边的优先级越高。

    [main]
    plugins = ifcfg-rh, keyfile
  3. Esc键,输入:wq后按Enter键,保存配置。

  4. 执行以下命令,使配置生效。

    sudo systemctl restart NetworkManager
  5. 执行以下命令,查看配置是否成功。

    sudo journalctl -u NetworkManager | grep -i "settings plugin"