如何永久更改 Debian NIS 域名?或者,域名存储在哪里?

如何永久更改 Debian NIS 域名?或者,域名存储在哪里?

在 Debian 系统上,hostname返回不合格系统的主机名,同时domainname返回(LAN)域名。例如:

$ hostname
nas
$ domainname
lan

我知道主机名存储在 中/etc/hostname。没问题。因此我可以通过调用 来临时更改它hostname othernas,或者通过编辑 来永久更改它/etc/hostname

但是我该如何更改域名呢?我可以通过致电 暂时更改domainname otherlan,但是如何永久更改呢?

/etc/hostname我尝试用谷歌搜索这个问题,但都指向了/etc/hosts/etc/networks/etc/network/interfaces;但我检查了所有这些,却没有找到对的引用。我在谷歌lan上搜索时还找到了和,但这些都没有告诉我信息实际上存储在磁盘上的什么位置。libc.sogetdomainnameuname

该论坛和其他论坛上的其他答案指出/etc/hostname应包含完全限定的主机名,并且域名从中提取。这不是真的!如果我在 中输入一个完全限定的主机名/etc/hostname,我最终会得到一个主机名nas.lan和一个域名没有什么- 这会引发无穷无尽的问题。

答案1

论坛是正确的;DNS 域如果存在,则从主机名中获取名称(尽管我发现如果通过 /etc/hosts 推断,效果会更好)。没有明确的设置。
(我努力了写下我猜测的规则Linux 如何确定它。)

  • 如果hostname报告了一个裸名称,则hostname -f似乎首先使用 /etc/hosts 来解析它,然后尝试使用 /etc/resolv.conf 中的每个域对其进行限定,直到找到 DNS 中存在的 FQDN。因此/etc/hosts和 DNS+/etc/resolv.conf都是设置“DNS 域名”的替代方法。例如,以下主机条目(以及 的一个::1):

    127.0.0.1  nas.lan  nas  localhost
    

    将导致hostname -f报告“nas.lan”。


但是,那NIS 域名称与上述内容无关。它是不是LAN 域名。它不以任何方式或形式与主机名一起使用。它仅由 NIS/YP 客户端软件 (ypbind) 读取,以确定要连接到哪个服务器(如果有多个)。

设置 NIS 域的最直接方法是通过 kernel.domainname sysctl,通常在/etc/sysctl.conf或中/etc/sysctl.d/99-local.conf。与主机名(也有类似的 sysctl)不同,在搜索 Debian init 脚本后,似乎 /etc 中没有专门的文件。

相关内容