在 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
如何解决此问题以及可能导致此问题的原因是什么?
有两种可能的方法来解决这个问题:
.
被认为是不完整的,系统可能会尝试在多个域中查找它,直到找到为止。如果您的主机名已经是一个完全限定的域名,它应该以 a 结尾,.
这样就不会发生这种情况。/etc/resolv.conf
有search
一行列出域以检查不完整的短主机名。该文件可能是动态生成的,在这种情况下,您可能应该找到它的来源,它可能是 dhcp、NetworkManager、netplan 或(取决于操作系统和发行版)其他网络配置来源。在 CentOS 中,如果这不是由 NetworkManager 动态配置的,它可能在/etc/sysconfig/network-scripts/ifcfg-*