我已经插入
domain test
进入 resolv.conf 然后期望
# getent ahosts srv
# getent ahosts srv.test
1.1.1.1 STREAM srv.test
1.1.1.1 DGRAM
1.1.1.1 RAW
都会提供相同的结果。
知道为什么这没有发生吗?
谢谢你!
编辑:
/etc/nsswitch
hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname
srv.test记录存储在/etc/hosts中。
答案1
该命令getent
对 进行系统调用getaddrinfo()
并将尝试 中定义的每个服务/etc/nsswitch.conf
,但是,DNS 解析本身是对 的较低级别调用gethostbyname()
并由 进行配置/etc/resolv.conf
。
简而言之,您无法仅在中定义完全限定的主机名,/etc/hosts
因为getaddrinfo()
不使用搜索域进行主机文件查找。您可以/etc/hosts
通过将 srv 定义为来创建主机别名;
1.1.1.1 srv.test srv