resolv.conf 中的域参数不起作用

resolv.conf 中的域参数不起作用

我已经插入

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

相关内容