ISP的DNS服务器如何parsing本地主机名?

对于你们中的一些人来说,这可能是一个愚蠢而简单的问题,但我无法在网上find快速,准确的答案。

我最近在尝试SSH到本地FreeBSD服务器时遇到问题,但连接被拒绝。 机器上的hosts.allow文件指定只允许本地机器与ssh守护进程进行通信(这意味着根据hosts_access手册页,客户机的主机名不能包含点)。 我想通了(至less我想我是),这个问题的原因是服务器试图parsing客户端的主机名,但请求被转发到我的ISP的DNS服务器。 因此,客户端的主机名将parsing为localname.ispname.net而不是localname,这意味着它没有通过hosts.allow访问规则。

另外,当我从服务器获取客户端的IP地址(反之亦然)时,ping实用程序以localname.ispname.net的forms显示FQDN,就像使用sshd一样。 一旦我启用了我的路由器上的“本地DNS”选项,并清除路由器上的DNScaching,一切正常,大概是因为主机名在本地解决。

我的问题是,我的ISP的DNS服务器在将本机的IP地址parsing为FQDN时如何知道本地机器的主机名? 这似乎将涉及到我的默认网关的反向DNS请求…这是正确的?

看看你的/etc/resolv.conf。 我猜测这里面有一个像domain ispname.net这样的domain ispname.net 。 这就是说你的主机是该域的一部分。 当你查找你的本地名称时,该域名正在追加。

尝试使用dig localname ,你应该看到如下结果:

 ;; ANSWER SECTION: localname. 0 IN A 192.168.1.135 

挖掘提供了大量的信息,在debugging名称parsing问题方面非常有用。

还要检查/etc/resolv.conf中的search ispname.net 。 您可以有多个可以添加到主机名的条目。