resolv.conf 限制为六个域,总共 256 个字符

alb*_*var 7 dns resolvconf

我有一台机器(Debian jessie)用于“跳转”到另一台具有不同域的机器......实际上有很多域。

作为man resolv.conf告诉我们,搜索主机名查找列表,限制在6个域或256个字符。

如何增加域查找的数量?

提前致谢。

Jde*_*eBP 6

自 1990 年代以来,这个问题一直被问到。还是一样的答案。

正如 RedHat 的 Jakub Jelinek 在 10 年前所说的那样,这个限制被硬连接到包含在 GNU libc 中的 BIND DNS 客户端库中。它在运行时不可配置,并且不太可能被操作系统分销商更改,因为这会破坏与使用 GNU libc 的这一部分的某些第三方程序的二进制兼容性。

当然,如果有能力,您可以随时更改参数,并从源代码重新编译 GNU libc 和所有使用它的程序。然而,这只是为了使

ssh pescado
在 DNS 名称空间树中查找超过 6 个位置以查找名为pescado. ☺

进一步阅读


小智 5

来自resolv.conf 的手册页

在 glibc 2.25 及更早版本中,搜索列表仅限于 6 个域,总共 256 个字符。从 glibc 2.26 开始,搜索列表是无限的。

因此,升级 glibc 应该可以解决这个问题。对于Debians Buster 及更高版本,以及Ubuntus 17.10 及更高版本,glibc 的软件包版本为 2.26 或更高,并且只需要更新apt。如有必要,可以手动升级。

RHEL8以 glibc 版本 2.28 为基准,因此无需更新;(对于 RHEL7 及更早版本来说这是不合理的)。根据distrowatch 的说法,Fedora 27 是第一个实现 glibc 2.26 的版本。