ski*_*ppy 167 networking windows dns
在我的 Windows XP 工作站上,我可以在 DNS 中找到我想要连接的机器nslookup:
nslookup wolfman
Server: dns.company.com
Address: 192.168.1.38
Name: wolfman.company.com
Address: 192.168.1.178
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试连接到那台机器时,我收到一条错误消息,告诉我找不到该机器(即,无法在 DNS 中查找):
C:\> ping wolfman
Ping request could not find host wolfman. Please check the name and try again.
Run Code Online (Sandbox Code Playgroud)
如果我直接使用 IP 地址,我可以连接:
C:\> ping 192.168.1.178
Pinging 192.168.1.178 with 32 bytes of data:
Reply from 192.168.1.178: bytes=32 time=41ms TTL=126
Reply from 192.168.1.178: bytes=32 time=41ms TTL=126
Reply from 192.168.1.178: bytes=32 time=44ms TTL=126
Reply from 192.168.1.178: bytes=32 time=38ms TTL=126
Run Code Online (Sandbox Code Playgroud)
我可以通过在我的hosts文件中添加一个条目来解决这个问题,但我宁愿找出发生这种情况的原因。问题是暂时的,一天中的大部分时间我都可以很好地连接到机器。
这怎么可能?
ETA:为简洁起见,我省略了这一点,但有人要求:
C:\> ping wolfman.company.com
Ping request could not find host wolfman.company.com. Please check the name and try again.
Run Code Online (Sandbox Code Playgroud)
ETA:其他应用程序得到相同的结果。我只是尝试 ping 来简化。telnet 无法连接,Cygwin 应用程序打印“未知主机 wolfman”消息。
更新:使用wireshark,我发现我的工作站没有尝试DNS 查找。它只是报告“找不到主机”错误消息。
har*_*ymc 117
我相信 nslookup 在 DNS 端口上打开 winsock 连接并发出查询,而 ping 使用 DNS 客户端服务。您可以尝试停止此服务,看看这是否有所作为。
一些将重新初始化各种网络状态的命令:
将 WINSOCK 条目重置为安装默认值:将netsh winsock reset catalog
TCP/IP 堆栈重置为安装默认值:netsh int ip reset reset.log
刷新 DNS 解析器缓存:ipconfig /flushdns
更新 DNS 客户端注册并刷新 DHCP 租用:ipconfig /registerdns
刷新路由表:(route /f这将删除所有网关,直到您重新启动!)
小智 33
尝试使用主机名后跟一个点来 ping。所以而不是ping wolfman使用ping wolfman.
这应该可以让您解决问题,而无需对主机文件等进行解决。
Fre*_*und 20
尝试添加.到该连接的 DNS 后缀。即,转到:
.为后缀。以下屏幕截图说明了相同的步骤:
这应该可以ping wolfman工作。
nslookup wolfman(name server lookup: wolfman) 将主机名 ( ) 发送wolfman到 DNS(域名系统)以获取对应的 IP 地址。这是nslookup命令的唯一目的。这已经有效了,所以我们已经验证了 DNS 有效并且wolfman确实对应于一个 IP 地址。
相比之下,ping wolfman需要做两件事:
wolfman) 对应的 IP 。在 Windows(甚至是 Windows 10 等最新版本)上,第一步很容易失败。为了向后兼容,Windows 支持各种主机名解析方法(主机文件、DNS、NetBIOS/WINS、LMHOST 文件)。
不幸的是,Windows 的ping命令似乎并不总是尝试 DNS 查找。我不知道触发这种行为的具体条件。
幸运的是,我们可以强制 Windows 使用FQDN(完全限定域名)进行 DNS 查找。在实践中,我们通过.在主机名后缀一个点来做到这一点:wolfman.。尝试ping wolfman.并验证它是否有效。
最后一步是强制 Windows 附加这个点本身。我已经在这个答案的开头展示了如何做到这一点。
小智 19
尝试ipconfig /displaydns寻找狼人。如果它被缓存为“名称不存在”(可能是因为之前的间歇性查找失败),您可以使用ipconfig /flushdns.
nslookup 不使用缓存,而是直接查询 DNS 服务器。
Bry*_*yan 13
nslookup 在 Windows 上解析名称/IP 地址时,其工作方式与其他命令不同。
在Windows上正常解析方法如下:
nslookup另一方面用于测试域名服务器。
我一直在努力解决类似的问题,并尝试了@harrymc 建议的解决方案。我发现最终似乎(至少在某种程度上)在 microsoft technet 论坛上起作用(nslookup 起作用,但在独立的 Win7 PC 上没有其他任何东西有 DNS)
这是报价:
...尝试使用下面的命令来刷新和重置客户端解析器缓存以进行测试。
ipconfig /flushdns
ipconfig /注册DNS
请参阅以下链接了解更多详情。 http://jefferyland.wordpress.com/2011/07/28/quick-review-of-flushdns-registerdns-and-dns-queries/
所以基本上我缺少的是 ipconfig /registerdns
小智 8
就在今天,我们遇到了同样的问题,但解决方案不同。所以我想,我会添加它以供参考,因为这是最热门的搜索结果。
ping不会解析主机名,但nslookup可以。(在 2 个不同的 Windows Server 2012 R2 主机上观察到。)小智 6
我在 Windows 2012R2 (=8.1) 系统上遇到了同样的问题,并尝试了上述所有建议,但没有一个能解决它:
- Ping 完全限定名称有效。
- ping 不合格的名称没有。
- 两者都在其他几个系统上工作,这些系统具有相同的操作系统和显然相同的配置。
- 所有必要的后缀搜索字符串都在那里。
(请注意,一些建议的修复程序,例如多标签查询的解决方法,显然无关紧要,因为不合格的名称只有一部分。)
然后我注意到我试图 ping 的目标系统没有 IPv6 地址。所以我尝试了“ping -4 unqualified_name ”和宾果游戏!这有效。
因此,出于某种原因,仅在此系统上,ping 仅尝试解析非限定名称->IPv6 地址,而不尝试解析非限定名称->IPv4。
对我来说,解决方法是完全禁用 IPv6,因为我根本不需要它。但是我真的很想找到一种更温和的方法来告诉 ping(或者大概是 DNS 客户端服务)尝试解析 IPv4 和 IPv6 地址。
也许 wolfman.company.com 列在 C:\Windows\system32\drivers\etc\hosts 中?
nslookup 绕过该文件并始终询问 DNS,而 ping 和其他工具首先在“主机”文件中查找,然后在 DNS 中查找。
| 归档时间: |
|
| 查看次数: |
340235 次 |
| 最近记录: |