在 CentOS 7 中运行以下命令时,getent
仅将我的域名附加到 .org 域:
[root@panel ~]# getent hosts ballotpedia.org
2606:4700:3031::6815:241e ballotpedia.org.mydomain.com
2606:4700:3032::ac43:b854 ballotpedia.org.mydomain.com
当我查找任何其他不包含 .org 扩展名的域时,不会发生这种情况,如下所示:
[root@panel ~]# getent hosts google.com
2404:6800:4007:805::200e google.com
停止nscd
服务后,问题不再发生。我nscd
也尝试使用以下命令清除缓存,但问题并未解决:
for db in `ls /var/db/nscd`;do /usr/sbin/nscd -i $db;done && /scripts/restartsrv_nscd
如何修复此问题以及可能是什么原因导致此问题?
答案1
有两种可能的方法可以解决此问题:
- 不以 结尾的主机名
.
被视为不完整,系统可能会尝试在多个域中查找它,直到找到它。如果您的主机名已经是完全合格的域名,则它应该以 结尾,.
这样就不会发生这种情况。 - 其中
/etc/resolv.conf
可能会有search
一行列出要检查不完整短主机名的域。此文件可能是动态生成的,在这种情况下,您可能应该找到它的来源,它可能是 dhcp、NetworkManager、netplan 或(取决于操作系统和发行版)其他网络配置源。在 CentOS 中,如果这不是由 NetworkManager 动态配置的,则可能在/etc/sysconfig/network-scripts/ifcfg-*