如我在手册页中所读,建议将hostname(不带域名)放入/etc/hostname
。例如,使用host代替host.domainsub.domaintld。
但是,据我所知,某些软件依赖于FQDN
in /etc/hostname
。
/etc/hostname
在Debian / Ubuntu机器上应该指定什么?
如果不是FQDN,应该在哪里指定FQDN?
我知道,问题有点老了,但是没有找到明确的答案。有人说主机名,有人说-FQDN。谢谢。
如我在手册页中所读,建议将hostname(不带域名)放入/etc/hostname
。例如,使用host代替host.domainsub.domaintld。
但是,据我所知,某些软件依赖于FQDN
in /etc/hostname
。
/etc/hostname
在Debian / Ubuntu机器上应该指定什么?
如果不是FQDN,应该在哪里指定FQDN?
我知道,问题有点老了,但是没有找到明确的答案。有人说主机名,有人说-FQDN。谢谢。
Answers:
在/ etc / hostname文件中,仅使用主机名。您可以在以下位置设置的FQDN:/ etc / hosts:
127.0.1.1 thishost.mydomain.org thishost
根据主机文件的手册。
修改后的答案:
主机本身不处理实际的FQDN。由DNS处理。FQDN(完全合格域名)由DNS处理,将名称转换为IP地址。使用该/etc/hosts
文件,您实际上是在覆盖DNS服务器。计算机首先查找/etc/hosts
文件,以查看是否为IP地址的主机名定义了条目。/etc/hosts
外观中的条目如下所示:
127.0.0.1 localhost
127.0.1.1 terrance-ubuntu.local terrance-ubuntu
这些条目不是特定于发行版的。 所有操作系统的这些行都使用相同的格式。只是hosts
文件的位置更改。在Linux中,通常位于/etc/
文件夹中,而在Windows中通常位于C:\Windows\System32\drivers\etc\
文件夹中。
将其分开,您可以看到我同时分配了和terrance-ubuntu.local
,这是我的FQDN本身以覆盖DNS,以便应用程序知道不离开我的计算机;又分配了,它是terrance-ubuntu
主机名,以便再次使应用程序知道不离开我的计算机或127.0.0.1(本地主机)。将我的系统主机名分配为127.0.1.1
不会对在网络上找到我的主机的其余计算机产生影响。如果DNS正常运行,他们将看到我的主机名10.0.0.100
。使用127.0.1.1
它的原因是因为我的应用程序可以更快地找到我的系统,因为它会知道我的系统不在网络上的其他地方。我的实际主机名.local
是我的FQDN,.local
实际上是我通过路由器(也是网络上的另一个DNS服务器)设置的域。
现在,假设本地网络上的DNS服务没有为IP地址分配主机名或FQDN,但是您知道本地网络上主机的IP地址是什么。然后,您可以在/etc/hosts
文件中分配该主机,这样就不必每次访问主机时都输入该主机的IP地址。主机可以是工具服务器,打印机或某些其他网络连接的系统。像往常一样将条目添加到/etc/hosts
文件中。
例如,我将使用网络连接的打印机。它的静态IP为10.0.0.253。我不知道它的名字。为此,我要称呼它hp_printer
。我将对IP地址和主机名执行ping操作,然后添加到中/etc/hosts
。
terrance@terrance-ubuntu:~$ ping -c 2 10.0.0.253
PING 10.0.0.253 (10.0.0.253) 56(84) bytes of data.
64 bytes from 10.0.0.253: icmp_seq=1 ttl=255 time=0.326 ms
64 bytes from 10.0.0.253: icmp_seq=2 ttl=255 time=0.334 ms
terrance@terrance-ubuntu:~$ ping -c 2 hp_printer
ping: unknown host hp_printer
terrance@terrance-ubuntu:~$ sudo vi /etc/hosts
10.0.0.253 hp_printer.local hp_printer
terrance@terrance-ubuntu:~$ ping -c 2 hp_printer
PING hp_printer.local (10.0.0.253) 56(84) bytes of data.
64 bytes from hp_printer.local (10.0.0.253): icmp_seq=1 ttl=255 time=0.334 ms
64 bytes from hp_printer.local (10.0.0.253): icmp_seq=2 ttl=255 time=0.303 ms
现在,我也可以使用我给它的名称而不是IP地址访问我的打印机设置网页,因为IP地址可能更容易记住:
DNS还使用您的/etc/resolv.conf文件来帮助查找主机名。它是解析器的配置文件。它提供了搜索域,因此您在寻找主机时不必一直指定FQDN。它还为您的本地网络的DNS或名称服务器提供IP地址。search
下面的行显示的local
是我的域名。
terrance@terrance-ubuntu:~$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 10.0.0.1
search local
希望这有助于更好地了解DNS和FQDN的工作方式。
讨论的手册页hostname(1)
(我强调黑体字的段落):
FQDN 系统的FQDN(完全合格域名)是 所述分解器(3)返回的主机名,例如,ursula.example.com。 通常是主机名,后跟DNS域名(该部分 在第一个点之后)。您可以使用主机名--fqdn来检查FQDN 或 使用dnsdomainname的域名。 您不能使用主机名或dnsdomainname更改FQDN 。 建议的设置FQDN的方法是将主机名设置为 使用/ etc / hosts,DNS或NIS的全限定名的别名。 例如,如果主机名是“ ursula”,则其中可能会有一行 / etc / hosts读取 127.0.1.1 ursula.example.com ursula 从技术上讲:FQDN是主机的名称getaddrinfo(3)返回 gethostname(2)返回的名称。DNS域名是后面的部分 第一个点。 因此,这取决于解析器的配置(通常在 /etc/host.conf)如何进行更改。通常,主机文件被解析 在DNS或NIS之前,因此最常见的是在以下位置更改FQDN: / etc / hosts。
而且,如果在安装过程中将FQDN作为主机名,它将仅将第一个组件写入/etc/hostname
FQDN并将其保留在中/etc/hosts
。
因此,在这种情况下,只需让安装程序执行其操作即可。