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 在其中按字母顺序运行脚本。每个脚本必须是根用户拥有的可执行文件,并且必须只有文件所有者的写权限。

操作

查看状态、启动、关闭、重启、开机自启动

  1. systemctl status NetworkManager
  2. systemctl start NetworkManager
  3. systemctl stop NetworkManager
  4. systemctl restart NetworkManager
  5. systemctl enable 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 的逻辑

  1. ifup 寻找一个名为 / etc/sysconfig/network-scripts/ifcfg-XXX 的文件
  2. 如果该 ifcfg 文件存在,则在该文件中 ifup 查找参数 TYPE 以确定要调用的特定类型的脚本
  3. ifup 调用 ifup-wireless 或 ifup-TYPE
  4. 执行特定的设置

参考手册:https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/networking_guide/index
https://blog.csdn.net/csrh131/article/details/108451027