对你们中的一些人来说,这可能是一个愚蠢的简单问题,但我在网上找不到一个快速、准确的答案。
最近我遇到了一个问题,当时我试图将SSH连接到本地FreeBSD服务器,但是连接被拒绝了。机器上的hosts.allow文件指定只允许本地机器与ssh守护进程通信(根据hosts_access手册页,这实际上意味着客户端的主机名不能包含点)。我发现(至少我想是这样)造成这个问题的原因是服务器试图解析客户端的主机名,但是请求被转发到我的ISP的DNS服务器。因此,客户端的主机名将解析为localname.ispname.net,而不仅仅是本地名称,这意味着它没有传递hosts.allow访问规则。
另外,当我从服务器上点击客户机的IP地址(反之亦然)时,ping实用程序会以localname.ispname.net的形式显示一个FQDN,就像sshd一样。一旦我在路由器上启用了“本地DNS”选项并清除了路由器上的DNS缓存,一切就都正常了,大概是因为主机名是本地解析的。
我的问题是,当ISP将机器的IP地址解析为FQDN时,ISP的DNS服务器如何知道本地计算机的主机名?似乎这会涉及到我的默认网关的反向DNS请求..。这是对的吗?
发布于 2011-06-13 03:42:50
查看您的/etc/ your。我猜里面有一行,上面写着像domain ispname.net这样的东西。也就是说,您的主机是该域的一部分。当您查找您的本地名称时,该域将被追加。
尝试使用dig localname,您将看到如下结果:
;; ANSWER SECTION:
localname. 0 IN A 192.168.1.135Dig提供了大量的信息,在调试名称解析问题时非常有用。
发布于 2011-06-13 05:49:54
还可以查看/etc/rupv.conf中类似于search ispname.net的内容。可以将多个条目添加到主机名中。
https://serverfault.com/questions/279764
复制相似问题