为什么有两个 ifcfg-eth0 文件但在不同的目录中

为什么有两个 ifcfg-eth0 文件但在不同的目录中

我试图理解为什么我的 CentOS 6.4 服务器上有 3 个 ifcfg-eth0,它们是指向同一个文件的硬链接。

有人知道为什么吗?

$ ll /etc/sysconfig/network-scripts/ifcfg-eth0
-rw-r--r--. **3** root root 166 Jul 31  2012 /etc/sysconfig/network-scripts/ifcfg-eth0

$ find / -type f -name ifcfg-eth0 -exec openssl dgst -md5 {} \;
MD5(/etc/sysconfig/network-scripts/ifcfg-eth0)= **c5cd670606e1feb78752a9644f021c1f**
MD5(/etc/sysconfig/networking/devices/ifcfg-eth0)= **c5cd670606e1feb78752a9644f021c1f**
MD5(/etc/sysconfig/networking/profiles/default/ifcfg-eth0)= **c5cd670606e1feb78752a9644f021c1f**

答案1

2 转/分钟

这些文件是 2 个 RPM 软件包的残余。如果运行以下命令,您可以查看哪些 RPM 负责这些目录:

# centos 6.4
$ for i in /etc/sysconfig/networking /etc/sysconfig/network-scripts; do echo "==> $i"; rpm -qf $i;done
==> /etc/sysconfig/networking
system-config-network-tui-1.6.0.el6.2-1.el6.noarch
initscripts-9.03.31-2.el6.centos.1.x86_64
==> /etc/sysconfig/network-scripts
initscripts-9.03.31-2.el6.centos.1.x86_64

这 2 个 RPM 相当老了,我有一个古老的 Fedora Core 3 系统,这两个目录的所有者是initscripts,因此看起来是原始所有者。

# fedora core 3
$ rpm -qf /etc/sysconfig/networking /etc/sysconfig/network-scripts/
initscripts-7.93.7-1
initscripts-7.93.7-1

在某些时候,该工具的配置文件system-config-network也会扩展到这些目录中:

# centos 6.4
$ rpm -ql system-config-network-tui-1.6.0.el6.2-1.el6.noarch|grep "^/etc/.*/network.*"
/etc/sysconfig/networking
/etc/sysconfig/networking/devices
/etc/sysconfig/networking/profiles
/etc/sysconfig/networking/profiles/default

使用上述目录的 GUI

顺便说一句,GUI 同样令人困惑,但实际上只有一个 GUI 可以检测它是在 X 环境中还是在终端中调用,并为给定环境显示适当的“GUI”。

$ more /usr/sbin/system-config-network
#!/bin/sh

if [ -n "$DISPLAY" -a -f /usr/sbin/system-config-network-gui ]; then
    exec /usr/sbin/system-config-network-gui "$@"
else
    exec /usr/sbin/system-config-network-tui "$@"

系统配置网络 GUI

                       桂党卫队

系统配置网络tui

图伊党卫队

                          型材SS

                                 一个配置文件的 ss

笔记:GUI 的 tui 版本和 gui 版本都具有“配置文件”和“设备”的概念,这些信息通过这些概念保存在目录中/etc/sysconfig/networking/*

ifcfg-* 文件怎么样?

所以我们剩下的就是一堆令人困惑的乐趣。以下服务和脚本依赖于这些ifcfg-*文件,这些文件对于 Red Hat 机器上的网络管理来说非常关键:

  • 网络服务/etc/init.d/network
  • 向上脚本/etc/sysconfig/network-scripts/ifup
  • 向下脚本/etc/sysconfig/network-scripts/ifdown

那么 GUI 又如何呢?

  1. 上面提到的 GUI 确实是古董,它们仍然可以工作,但一般来说,如果您不使用 NetworkManager,从长远来看,通过管理/etc/sysconfig/network-scripts/ifcfg-*.

  2. 除非您正在进行基本类型的网络配置,否则设置网络时可用的某些特性/功能可能无法通过 tui/gui 访问,所以实际上NetworkManagerifcfg-*文件是最好的选择。

  3. tui/gui 工具最终只是/etc/sysconfig/network-scripts/ifcfg-*通过您最初询问的链接将数据写入,因此您不妨直接编辑文件。

答案2

之前NetworkManager是一件事,红帽有(我猜你的输出中仍然有,我有目录,但在我检查的两台服务器上没有文件)一个sysconfig-*工具,你可以用来指定要使用的网络配置文件,之后您只需重新启动network服务,其他设置就会生效。

输出中的最后一个find是配置文件的 ifcfg default,顶部一个是network服务实际看起来的位置,devices我从来没有搞过,所以我不知道它们应该服务于 sysconfig 过程的哪一部分,但如果它在其中,networking那就是该计划的一部分。这是非常古老的东西,现在不太可能相关,因为 NM 可以很好地处理定期移动到不同网络的机器(如笔记本电脑)上的网络配置。

编辑: 这里是 CentOS 邮件列表中对同一事物的另一个描述。

相关内容