Gre*_*reg 5 networking linux linux-networking
我注意到默认情况下,以下行包含在/etc/network/interfaces:
source /etc/network/interfaces.d/*
Run Code Online (Sandbox Code Playgroud)
这条线的目的是什么,它实际上做了什么?
该source命令是.(源)语法的文本版本。这允许您从一个文件中包含/导入代码并将其合并到父文件中。但是,从 Ubuntu 16.04 的基本安装中不清楚的是为什么该source行会是第一个。这意味着,如果有人想使用接口的静态IPenp0s3之下,这是否意味着我必须首先注释掉/擦除iface线enp0s3?
该文件和file.d方案是很常见的。如果您运行 Apache HTTP Server,您可能已经看到apache24/conf/httpd.conf并且它附带了extra/目录,其中包含更多 *.conf 文件(通常是httpd-ssl.conf、httpd-vhosts.conf、php.conf、httpd-default.conf等)。在这种情况下,不包括 shell 脚本,但原理基本相同。
1. 关注点分离。
最好只搞乱一个接口配置,然后做一些可能影响多个接口的事情。通过将事情分开,实际上可以更容易地编写自动化的 shell 脚本。
您可以简单地使用基本文件通配符定位正确的文件,而不是/etc/network/interfaces使用sed、grep和筛选awk正确的界面/etc/network/interfaces.d/。
通过将事情分开,你把事情搞砸的机会大大减少。
2. 从长远来看更好的组织。
如果您考虑一下 interfaces.d/ 保存的内容,它会保存网络接口配置的“实例”(可以相当详细)。这样,不必滚动所节省的时间可能会使interfaces.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
Run Code Online (Sandbox Code Playgroud)
一定要读man interfaces。
祝你好运!