linux – 为什么host命令不能解析/ etc / hosts中的条目?
发布时间:2020-12-13 18:46:09 所属栏目:Linux 来源:网络整理
导读:我在ubuntu 12.04机器上有以下/ etc / hosts文件 127.0.0.1 localhost10.248.27.66 ec2-50-112-220-110.us-west-2.compute.amazonaws.com puppetmaster# The following lines are desirable for IPv6 capable hosts::1 ip6-localhost ip6-loopbackfe00::0 ip
我在ubuntu 12.04机器上有以下/ etc / hosts文件
127.0.0.1 localhost 10.248.27.66 ec2-50-112-220-110.us-west-2.compute.amazonaws.com puppetmaster # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts 但是,host命令没有正确解析名称puppetmaster,而telnet命令却没有 root@ip-10-248-34-162:/home/ubuntu# host puppetmaster Host puppetmaster not found: 3(NXDOMAIN) root@ip-10-248-34-162:/home/ubuntu# telnet puppetmaster 8140 Trying 10.248.27.66... Connected to ec2-50-112-220-110.us-west-2.compute.amazonaws.com. Escape character is '^]'. 为什么host命令不能解析/ etc / hosts中的条目? 解决方法
主机程序使用libresolv直接执行DNS查询,即不使用gethostbyname.
大多数程序在尝试连接到另一台主机时,都会调用gethostbyname系统调用或类似的函数.该函数服从/etc/nsswitch.conf的配置.此文件有一行在Ubuntu 12.04中默认为以下内容: hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4 这意味着它将首先使用/ etc / hosts,然后回退到DNS查询. 如果要以这种方式执行主机查找,可以使用getent主机执行此操作.例如: $getent hosts serverfault.com 198.252.206.16 serverfault.com 我希望这有帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |