![在局域网中 ping 计算机名得到的是公网 IP 吗?](https://linux22.com/image/1261214/%E5%9C%A8%E5%B1%80%E5%9F%9F%E7%BD%91%E4%B8%AD%20ping%20%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%90%8D%E5%BE%97%E5%88%B0%E7%9A%84%E6%98%AF%E5%85%AC%E7%BD%91%20IP%20%E5%90%97%EF%BC%9F.png)
我最近在局域网中引入了一台新机器。这台机器的计算机名称是“服务器”。以前,我可以使用机器名称从家庭网络(通过 Web 浏览器或 RDP)访问机器,并且它可以很好地解析为本地 IP 地址。但是,我似乎再也无法这样做了。
当我 ping 计算机名称时,我得到以下信息:
C:\Users\Robert>ping server
Pinging server.router [67.215.65.132] with 32 bytes of data:
Reply from 67.215.65.132: bytes=32 time=24ms TTL=54
Reply from 67.215.65.132: bytes=32 time=23ms TTL=54
Reply from 67.215.65.132: bytes=32 time=24ms TTL=54
Reply from 67.215.65.132: bytes=32 time=24ms TTL=54
我还注意到,出于某种原因,它会将“路由器”后缀附加到我的域名。显然,“路由器”是我的路由器的名称。我还使用 OpenDNS 作为我的 DNS 提供商(通过我的路由器配置,因此它会通过 DHCP 传递下去)。
为什么这对我不起作用?有人能解释一下 DNS 解析应该如何进行吗?对于 LAN 解析,它不应该直接转到 OpenDNS。我认为每台 Windows 机器都保留了自己的“微型 DNS 服务器”,该服务器了解本地网络上的所有机器,并首先尝试使用该服务器进行解析。
请让我知道我应该怎么做才能让它工作!
答案1
有一个 DNS 缓存,但它依赖于实际拥有 DNS 服务器来查询,否则就由其他缓存来处理它。
很有可能您在 hosts、lmhosts 中使用了其他名称,或者您之前使用了 NetBT 解析,而现在您已将其关闭。检查 IP 接口上高级配置的 WINS 选项卡中 NetBT 的配置方式;如果它被禁用,那可能就是您的答案。如果是这种情况,它将完全依赖 DNS,在本例中为 OpenDNS。
如果您没有静态 lmhost,NetBT 服务也可能被禁用或防火墙关闭,其中一个或两个主机均是如此。您可以通过尝试在 Windows 资源管理器中浏览带有 \\[ip] 的共享文件来检查这一点。
有可能是您的路由器配置错误,将 NetBT 广播路由到公共接口,但除非经过严重修改,否则这根本不起作用。
答案2
您的路由器是否已将名称改为“server”?您可以通过将新计算机重命名为“servertest”来测试这一点,然后查看是否可以通过名称正确 ping 通该计算机。此外,您是否已将新计算机置于 DMZ 中或在路由器设置中使用了无 NAT?