我想知道这两种配置有什么不同:
首先:
127.0.0.1 localhost my-hostname
192.168.10.12 host-a a.com
第二 :
127.0.0.1 localhost my-hostname
192.168.10.12 host-a
192.168.10.12 a.com
如果我不使用别名会发生什么?
答案1
对于/etc/hosts
文件来说,在解析名称的地址时,这两种选择是等效的。在这两种情况下,名称host-a
和a.com
将被解析为地址为 192.168.10.12 的名称host-a
。
对于从 IP 地址反向查找名称,两种替代方案略有不同。两者都将host-a
作为规范名称返回。第一个将a.com
作为别名包含在内。
您将获得匹配的文件的第一行,该行的第一个文本条目是规范名称。
测试框架(根据需要修改以测试各种场景):
perl -MData::Dumper -e 'print Dumper(gethostbyname("a.com"))'
perl -MData::Dumper -e 'print Dumper(gethostbyaddr(pack("C4", 192, 168, 10, 12), 0))'
就我个人而言,我尽量避免使用/etc/hosts
,更喜欢使用 DNS。然而,在某些情况下它可能很有用,在这些情况下,我总是将 FQDN 放在一行的前面,然后再将其别名放在后面。我在文件中逐行对实际计算机名称及其服务执行相同的操作。
例如,其中eleven
是服务器的名称及其提供的web
服务ftp
:
192.168.10.11 eleven.contoso.com eleven
192.168.10.11 web.contoso.com web
192.168.10.11 ftp.contoso.com ftp