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

Ask*_*arn 3 linux networking centos

我试图理解为什么我的 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**
Run Code Online (Sandbox Code Playgroud)

slm*_*slm 5

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
Run Code Online (Sandbox Code Playgroud)

2 个 RPM 已经很旧了,我有一个古老的 Fedora Core 3 系统,该系统将这 2 个目录归为initscripts,因此它看起来是原始所有者。

# fedora core 3
$ rpm -qf /etc/sysconfig/networking /etc/sysconfig/network-scripts/
initscripts-7.93.7-1
initscripts-7.93.7-1
Run Code Online (Sandbox Code Playgroud)

在某些时候,工具的配置文件也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
Run Code Online (Sandbox Code Playgroud)

使用上述目录的 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 "$@"
Run Code Online (Sandbox Code Playgroud)

系统配置网络GUI

                       gui的SS

系统配置网络图

ss of 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

那么图形用户界面呢?

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

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

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