一、 NetworkManager做了什么:
NetworkManager确保网络连接正常。
当检测到系统中没有网络配置但有网络设备时,NetworkManager会创建临时连接以提供连接。
通过不同的工具(GUI,nmtui,nmcli)提供管理。
NetworkManager可以配置网络别名,IP地址,静态路由,DNS信息和VPN连接,以及许多特定于连接的参数。
重新启动后保持设备状态,并接管重新启动期间设置为受管模式的接口。
未明确设置为不受管理但由用户或其他网络服务手动控制的设备。
可以和network服务一起并行运行(systemctl start|stop|restart|status network
),后续估计会被NetworkManager完全替代。
系统会优先启动NetworkManager,再启动network避免NetworkManager的配置被篡改。
如果启用了NetworkManager,ifup和ifdown将询问NetworkManager是否由NetworkManager管理要操作的接口,取决于ifcfg文件的"DEVICE="行,内部会将up和down请求转给NetworkManager。
不受NetworkManager管理的设备,如果调用ifup或ifdown,则脚本将使用非NetworkManager机制来启动连接。
NetworkManager提供了一种基于连接状态运行其他自定义脚本以启动或停止服务的方法。默认情况下,该/etc/NetworkManager/dispatcher.d/目录存在,并且 NetworkManager在其中按字母顺序运行脚本。每个脚本必须是根用户拥有的可执行文件,并且必须只有文件所有者的写权限。
二、 操作
查看状态、启动、关闭、重启、开机自启动
systemctl status NetworkManager
systemctl start NetworkManager
systemctl stop NetworkManager
systemctl restart NetworkManager
systemctl enable NetworkManager
network和NetworkManager
该/etc/sysconfig/目录是配置文件和脚本的位置。大多数网络配置信息存储在此处,但VPN,移动宽带和PPPoE配置除外,这些信息存储在/etc/NetworkManager/子目录中。
对于全局设置,请使用该/etc/sysconfig/network文件。有关VPN,移动宽带和PPPoE连接的信息存储在中/etc/NetworkManager/system-connections/
如果您编辑ifcfg文件,NetworkManager不会自动知道更改,用nmcli connection reload
重新读取配置。或者,要仅重新加载一个更改的文件,请执行以下操作nmcli con load /etc/sysconfig/network-scripts/ifcfg-ifname
使用诸如nmcli之类的工具进行的更改不需要重新加载,但需要down和up,nmcli dev disconnect interface-name && nmcli con up interface-name
在启动时,network读取所有ifcfg文件,对于每个ONBOOT=yes的文件,它检查NetworkManager是否已经从该ifcfg文件启动设备。如果NetworkManager正在启动该设备或已经启动该设备,则不再对该文件执行任何操作,并检查下一个ONBOOT=yes文件。如果NetworkManager还没有启动该设备,那么初始化脚本将继续下去,并为该ifcfg文件调用ifup。
注意:建议不要将备份文件存储在/etc目录中的任何位置,也不要与实时文件存储在同一位置,因为该脚本实际上是这样做的ifcfg-*。只有这些扩展名被排除:.old,.orig,.rpmnew,.rpmorig,和.rpmsave
ifup的逻辑
- ifup寻找一个名为/etc/sysconfig/network-scripts/ifcfg-XXX的文件
- 如果该ifcfg文件存在,则在该文件中ifup查找参数TYPE以确定要调用的特定类型的脚本
- ifup调用ifup-wireless或ifup-TYPE
- 执行特定的设置
参考手册:https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/networking_guide/index