使用 getaddrinfo() 时遇到问题

使用 getaddrinfo() 时遇到问题

我安装了 14.04 LTS 服务器。它相对较新。它的补丁是最新的。我在其上运行 postfix,我注意到 SMTP 服务器在解析时遇到问题delivery.mailspamprotection.com(siteground 的外发邮件服务器)。

当我使用时,dig我会得到所有地址(大约 30 个)。我有一个使用 libc6getaddrinfo()函数的小型 C 程序。它只返回一个地址。我正在运行我自己的递归名称服务器(pdns-recursor),它似乎运行良好。我已经从其他服务器对它运行查询,它返回了正确的信息。我还从此服务器对不同的递归器运行查询dig,我得到了正确的信息。

但是,当我运行使用 libc6 解析器库 ( ) 的小程序时getaddrinfo(),我只得到一个地址。host.conf的设置multi on已设置。我有order bind,hostsmulti onno-spoof on

我有另一个运行良好的 14.04 LTS 主机。libc6 版本2.19-0ubuntu6.7

有人有主意吗?

答案1

[已解决] 问题出在“/etc/nsswitch.conf”中。我将“hosts: files dns”行更改为“hosts: dns files”,问题就解决了。

此外,令人尴尬的是,有问题的主机也在“/etc/hosts”文件中。我不记得这样做过,所以这是一个自己造成的问题。

相关内容