NetworkManager和network

一、 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的逻辑

  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

### 让 NetworkManager 接管网络配置 要使 NetworkManager 掺入并接管 Linux 系统中的网络配置,可以通过调整 Netplan 配置文件以及启用 NetworkManager 的相关设置来完成。以下是具体方法: #### 调整 Netplan 配置 Netplan 是现代 Ubuntu 其他基于 Debian 的系统中用于管理网络的主要工具之一。通过编辑其配置文件可以指定由哪个组件负责处理网络接口。 通常情况下,Netplan 的配置文件位于 `/etc/netplan/` 目录下,默认可能命名为 `01-netcfg.yaml` 或类似的 YAML 文件名。打开此文件并将渲染器(renderer)更改为 `NetworkManager`: ```yaml network: version: 2 renderer: NetworkManager ethernets: enp3s0: dhcp4: true ``` 上述代码片段表示将网卡 `enp3s0` 设置为 DHCP 自动获取 IP 地址,并指定了使用 `NetworkManager` 渲染器[^1]。 保存更改之后运行以下命令应用新的配置: ```bash sudo netplan apply ``` 这一步骤会通知 Netplan 将控制权交给 NetworkManager 处理。 #### 启用启动 NetworkManager 服务 确保 NetworkManager 服务已安装、启用并且正在运行。执行如下操作验证状态或者重新激活它: ```bash sudo systemctl enable --now NetworkManager.service sudo systemctl status NetworkManager.service ``` 如果发现任何错误消息提示未能正常工作,则需排查日志记录以定位问题所在位置。 另外需要注意的是,在某些场景下还需要禁用传统的 networking 服务以防冲突发生: ```bash sudo systemctl disable --now networking.service ``` 最后确认 NetworkManager 是否成功接管了整个系统的网络功能,可通过下面这条指令查看当前活动连接列表及其详情信息: ```bash nmcli device show ``` 以上过程完成后应该能够看到所有物理设备都被纳入到了 NetworkManager 的管理体系之中[^2]。 #### 关闭现有网络后再开启 有时为了让变化立即生效而无需重启机器,可先临时关闭全部联网然后再恢复起来试试看效果如何: ```bash nmcli networking off && sleep 5 && nmcli networking on ``` 这里增加了短暂延时是为了给硬件足够时间去响应断开请求[^3]。 至此便完成了让 NetworkManager 完全接手原本属于其它机制所承担的任务流程介绍。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值