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=TRACE
和domains=ALL
来收集所有的操作日志为例。
执行以下命令,创建并打开
set-log.conf
文件。sudo vim /etc/NetworkManager/conf.d/set-log.conf
按
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管理相关的日志信息。
按
Esc
键,输入:wq
后按Enter
键,保存配置。执行以下命令,使配置生效。
sudo systemctl restart NetworkManager
执行以下命令,查看NetworkManager日志。
journalctl -u NetworkManager
NetworkManager不接管网卡配置
配置NetworkManager不接管网卡时,需要在keyfile
section中指定unmanaged-devices
键。本文以NetworkManager配置不接管辅助网卡(如eth1
)为例。
执行以下命令,查询网卡状态。
nmcli device status
回显信息如下图所示,表示
eth0
和eth1
默认被NetworkManager
接管,lo
未被接管。执行以下命令,创建并打开
unmanaged.conf
文件。sudo vim /etc/NetworkManager/conf.d/unmanaged.conf
按
i
键进入编辑模式,将以下内容复制到unmanaged.conf
文件中。[keyfile] unmanaged-devices=interface-name:eth1
按
Esc
键,输入:wq
后按Enter
键,保存配置。执行以下命令,使配置生效。
sudo systemctl restart NetworkManager
执行以下命令,查看修改是否成功。
nmcli device status
NetworkManager插件配置
NetworkManager使用ifcfg-rh/keyfile
插件来读取和写入网络配置,默认情况下,使用ifcfg-rh
插件来管理主网卡(如eth0
),使用keyfile
插件来管理辅助网卡(如eth1
)。
ifcfg-rh
插件用于从/etc/sysconfig/network-scripts/ifcfg-*
文件中读取/写入配置。keyfile
插件是NetworkManager的通用插件,每个连接都有一个对应的.nmconnection
配置文件。
执行以下命令,打开NetworkManager.conf配置文件。
sudo vim /etc/NetworkManager/NetworkManager.conf
按
i
键进入编辑模式,添加或修改plugins
的值。说明plugins
中插件优先级是按照声明顺序决定的,即最左边的优先级越高。[main] plugins = ifcfg-rh, keyfile
按
Esc
键,输入:wq
后按Enter
键,保存配置。执行以下命令,使配置生效。
sudo systemctl restart NetworkManager
执行以下命令,查看配置是否成功。
sudo journalctl -u NetworkManager | grep -i "settings plugin"