rhel-7/centos-7 网络配置很奇怪——主要是因为它们跨越了旧方式(通常由 /etc/init.d/network 调用的 shell 脚本,会改变网络设备的配置状态)和新方式(管理网络设备设置的 NetworkManager 守护程序)。
据我所知,rhel7/centos-7 同时支持两种网络设备配置模式。它们使用 NetworkManager 的插件 ifcfg-rh,该插件从 /etc/sysconfig/network-scripts/ifcfg-* 读取/写入网络配置,启动时配置从这些文件进入 NetworkManager,通过 NetworkManager 所做的更改(有时)在系统运行期间通过 ifcfg-rh 插件序列化回这些文件(这涉及与 /etc/sysconfig/network-scripts/ifcfg-* 中奇怪的旧配置文件格式之间的转换 - 这种格式最初由一堆 shell 脚本解释。)这种情况让我感到害怕,让我想起了龙。
我的看法是,跨越两个世界是令人困惑和容易出错的——特别是当你因为各种原因必须自动执行网络配置更改时,以及当你必须教育同事在现代系统上做事的“新方法”时——人们可能会忘记并导致配置控制在两个世界之间失去同步……
因此,为了避免出现奇怪的错误,我只想完全采用 NetworkManager 并摆脱旧选项。我是否应该预期以下方法会产生副作用:
> cat /etc/NetworkManager/NetworkManager.conf
[main]
plugin=keyfile
> cat /etc/NetworkManager/system-connections/dhcp-profile.conf
[connection]
id=dhcp
uuid=50263651-4f14-46bc-8dd8-818bf0fe3367
type=ethernet
autoconnect=true
[ipv6]
method=auto
[ipv4]
method=auto
> systemctl disable networking
> systemctl enable NetworkManager
我应该确保密钥文件格式的文件是所有 NetworkManager 设置的真实来源 - 并且应该删除所有依赖于以下内容的行为 - /etc/sysconfig/network-scripts/* - /etc/sysconfig/network - /etc/init.d/network
到目前为止,它似乎可以正常工作并且运行正常...我有点担心禁用 /etc/init.d/network“服务”可能会产生副作用...我认为没有任何理由在完全 NetworkManager 的世界中仍然调用 /etc/init.d/network......?
是否有人知道这会破坏哪些行为或为什么这不是一个好主意?
答案1
如果您正在使用 NetworkManager,则没有理由(也不应该)启用旧式网络服务。
相反,如果您正在使用传统的网络服务,则不应启用或启动 NetworkManager。
如果您有旧脚本需要使用旧网络服务,并且不理解 NetworkManager,则可能会出现问题。如果可能,应适当调整这些脚本。否则,您始终可以使用旧网络服务。