/etc/network/interfaces 文件顶部的 source /etc/network/interfaces.d/* 起什么作用?

/etc/network/interfaces 文件顶部的 source /etc/network/interfaces.d/* 起什么作用?

我注意到默认情况下包含以下行/etc/network/interfaces

source /etc/network/interfaces.d/*

这条线的用途是什么以及它实际上起什么作用?

答案1

从 Ubuntu接口手册页

以“source”开头的行用于包含来自其他文件的节,因此配置可以拆分为多个文件。单词“source”后面是要获取的文件的路径。可以使用 Shell 通配符。目前仅支持绝对路径名。

答案2

讨论

source命令是(源)语法的文本版本.。这允许您包含/导入一个文件中的代码并将其合并到父级中。但是,从 Ubuntu 16.04 的基本安装中不清楚的是为什么该source行会排在第一位。意思是,如果有人想在下面的接口中使用静态 IP enp0s3,这是否意味着我必须先注释掉/删除该ifaceenp0s3在此处输入图片描述

文件文件.d方案非常常见。如果你运行 Apache HTTP 服务器,你可能已经看到过apache24/conf/httpd.conf并且它的侧踢额外的/目录,包含更多 *.conf 文件(通常httpd-ssl.confhttpd-vhosts.confphp.confhttpd 默认配置文件等等)。这种情况下,不包括shell脚本,但是原理基本相同。

为什么要这么做?

1.关注点分离。

最好只弄乱一个接口配置,然后再做一些可能影响多个接口的事情。通过保持分离,实际上可以更轻松地编写自动化操作的 shell 脚本。

您无需通过/etc/network/interfacessedgrep来筛选正确的界面,只需使用基本的文件通配符awk就可以定位正确的文件。/etc/network/interfaces.d/

通过把事情分开,把事情搞糟的可能性就会大大降低。

2. 从长远来看,组织得更好。

如果你考虑一下interfaces.d/包含的内容,它包含网络接口配置的“实例”(可能相当复杂)。这样一来,节省下来的滚动时间可能会让接口.d/要走的路。


结论

您是否计划进行专业设置?用于/etc/network/interfaces.d/保存网络接口的配置(每个接口一个文件)。

在此处输入图片描述

您是业余爱好者,在地下室使用 Linux(在一台只有一个界面的计算机上),不太关心如何让别人的生活更轻松?使用/etc/network/interfaces并继续您的生活。注释掉默认配置设置,或将它们全部删除。

请记住,尽管接口手册页说接口配置命令是累积的,允许每个接口使用多个协议和多个 IP 地址(v4 和 v6)。最终,您决定将哪些内容放入/etc/network/interfaces。喜欢默认的环回配置?将配置转储到文件中,然后将其放入/etc/netowork/interfaces.d/

现在,对任何其他默认安装接口设置执行相同操作。留下一条注释,/etc/network/interfaces指出“此文件不用于更改接口配置!在 /etc/network/interfaces.d 中查找正确的接口文件。

使用类似的约定命名文件/etc/netowork/interfaces.d/。Red Hat 系统使用接口文件前缀约定 ifcfg-。

因此,如果没有指导,我可能会继续使用该惯例/etc/network/interfaces/d

/etc/network/interfaces.d/ifcfg-lo
/etc/network/interfaces.d/ifcfg-enp0s3

一定读man interfaces

祝你好运!

相关内容