如何在 /etc/hosts 中创建多行条目?

如何在 /etc/hosts 中创建多行条目?

我们遇到的情况是,一个 IP 地址有许多别名,并且这些别名需要在/etc/hosts.我希望能够继续在下一行列出别名,而不是用非常长的行包含 IP 地址的所有别名,以便我可以保持格式并保持文件可读。

我无法找到任何有关如何实现此目标的文档。

例如:

# in /etc/hosts
10.11.11.11    alias1.localhost  alias1 \
               alias2.localhost  alias2 \
               alias3.localhost  alias3 \
               alias4.localhost  alias4

这会导致第一行被处理,但后续行都不会:

$ python -c "import socket; print(socket.gethostbyname('alias1'))"
10.11.11.11

$ python -c "import socket; print(socket.gethostbyname('alias2'))"
Traceback (most recent call last):
   File "<string>", line 1, in <module>
socket.gaierror: [Errno -2] Name or service not known

我已经尝试过各种格式,包括删除反斜杠,但似乎没有任何效果。

我们使用的是 Ubuntu 16.04。

这可能吗?

答案1

不完全是,不。从周围挖掘glibc 源代码寻找/etc/hosts然后寻找_PATH_HOSTS一个可能遇到_gethtent似乎没有与\处理相关的代码。

如果您确实想要此功能,则需要修补libc,这可能不是最好的主意。

更好的想法可能是模板化/etc/hosts,以便用于构建文件的源可以根据您的需要进行格式化,然后模板化/etc/hosts包含必要的长行。这可以通过配置管理来完成。

相关内容