DNS 问题,nslookup 有效,ping 无效

Posted

技术标签:

【中文标题】DNS 问题,nslookup 有效,ping 无效【英文标题】:DNS problem, nslookup works, ping doesn't 【发布时间】:2010-09-24 17:30:22 【问题描述】:

我正在我的公寓里设置一个开发服务器。我已经在其上设置了一个 Ubuntu DNS 服务器并添加了区域婚礼列表(只是婚礼列表 - 没有 TLD。它只是一个内部域。)

这在我的 Ubuntu 笔记本电脑上运行良好。

在我所有的 Windows PC(Vista 和 XP)上,我从命令提示符处得到以下信息:

C:\Users\Giles Roadnight>nslookup weddinglist
Server:  UnKnown
Address:  192.168.0.40

Name:    weddinglist
Address:  192.168.0.41


C:\Users\Giles Roadnight>ping 192.168.0.41

Pinging 192.168.0.41 with 32 bytes of data:
Reply from 192.168.0.41: bytes=32 time<1ms TTL=64
Reply from 192.168.0.41: bytes=32 time<1ms TTL=64
Reply from 192.168.0.41: bytes=32 time<1ms TTL=64
Reply from 192.168.0.41: bytes=32 time<1ms TTL=64

Ping statistics for 192.168.0.41:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms

C:\Users\Giles Roadnight>ping weddinglist
Ping request could not find host weddinglist. Please check the name and try again.

我的ipconfig:

C:\Users\Giles Roadnight>ipconfig -all

Windows IP Configuration

   Host Name . . . . . . . . . . . . : Giles-Desktop
   Primary Dns Suffix  . . . . . . . :
   Node Type . . . . . . . . . . . . : Hybrid
   IP Routing Enabled. . . . . . . . : No
   WINS Proxy Enabled. . . . . . . . : No

Ethernet adapter Local Area Connection:

   Connection-specific DNS Suffix  . :
   Description . . . . . . . . . . . : Marvell Yukon 88E8001/8003/8010 PCI Gigabit Ethernet Controller
   Physical Address. . . . . . . . . : **-**-**-**-**-**
   DHCP Enabled. . . . . . . . . . . : No
   Autoconfiguration Enabled . . . . : Yes
   Link-local IPv6 Address . . . . . : fe80::f179:680f:f313:5448%8(Preferred)
   IPv4 Address. . . . . . . . . . . : 192.168.0.5(Preferred)
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 192.168.0.1
   DNS Servers . . . . . . . . . . . : 192.168.0.40
   NetBios over Tcpip. . . . . . . . : Enabled

我很确定我的 DNS 设置没问题,因为 nslookup 没问题,但我无法 ping,也无法访问 www.weddinglist 上的网页。

如何使 ping 能够在 Windows PC 上运行?

【问题讨论】:

您查看过您的主机文件吗? 你能提供'weddinglist'的区域文件吗?如果没有,您能否说明您是否在该区域中获得了主机的 A 记录? 为了避免 Alnitak 解释的问题(软件在找不到点时添加“.something”),我建议使用带点的名称,如有必要,使用官方 TLD,如“.example” .如果您使用“www.mysite.example”进行测试,您将不会遇到这些问题。 应该迁移到超级用户 这是一个重复的超级用户问题superuser.com/questions/495759/… 【参考方案1】:

我在加入本地 AD 域的 Server 2012 R2 VM 上也遇到了这个问题。我最终通过将虚拟机从域中移除并重新加入它来解决了这个问题。

【讨论】:

【参考方案2】:

尝试 ipconfig /displaydns 并查找weddinglist。如果它被缓存为“名称不存在”(可能是因为之前的间歇性查找失败),您可以使用 ipconfig /flushdns 刷新缓存。

nslookup 不使用缓存,而是直接查询 DNS 服务器。

它对我有用..

来自https://superuser.com/a/507892

【讨论】:

【参考方案3】:

我也遇到过这个问题。没有 Windows 应用程序(Chrome 除外)可以访问互联网。我发现它是 LAN 上的重复 IP。我更改了本地 IP,包括 ping 在内的所有内容都重新开始工作了。

我发现问题在做一个

IPCONFIG /ALL

它列出了

IPv4 地址。 . . . . . . . . . . :10.10.0.20(重复)

【讨论】:

【参考方案4】:

我有同样的问题。 正如其他答案所指出的,ping 和 nslookup 使用不同的机制来查找 ip。

您可能正在尝试 ping 不在同一域中的计算机。当您 ping 服务器的完全限定名称时,这应该可以工作。

nslookup 有效:

PS C:\Users\Administrator> nslookup nuget
Server:  ad-01.docs.com
Address:  192.168.10.20

Name:    nuget.docs.com
Address:  192.168.10.17

Ping 失败:

PS C:\Users\Administrator> ping nuget
Ping request could not find host nuget. Please check the name and try again.

Ping 工作,使用 FQDN:

PS C:\Users\Administrator> ping nuget.docs.com

Pinging nuget.docs.com [192.168.70.17] with 32 bytes of data:
Reply from 192.168.10.17: bytes=32 time=1ms TTL=127
Reply from 192.168.10.17: bytes=32 time=2ms TTL=127
Reply from 192.168.10.17: bytes=32 time=2ms TTL=127
Reply from 192.168.10.17: bytes=32 time=2ms TTL=127

Ping statistics for 192.168.10.17:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 1ms, Maximum = 2ms, Average = 1ms

要解决此问题,您需要更改机器的 DNS 设置并将 DNS 后缀添加到查找中。

    控制面板\网络和 Internet\网络连接 网络适配器 -> 属性 IPV4 -> 属性 常规选项卡 -> 高级 DNS 选项卡 选择“附加这些 DNS 后缀(按顺序)” 添加所需的域名 禁用,然后启用您的网络适配器(不要在 VM 上执行此操作,您会失去连接,而是尝试“ipconfig /renew”)

【讨论】:

【参考方案5】:

仅供参考 - 在过去的 3 个小时里,我一直在努力解决这个问题。尝试了一切,刷新DNS,使用代理,使用netsh重置目录并清除路由。没有任何效果,所以我决定尝试 Windows 还原,我使用 Windows cd -> 修复 -> 系统还原完成了它,它成功了!在网上找不到任何解决方案,所以我想把它贴出来

【讨论】:

【参考方案6】:

我知道这不是您的具体问题,但是当我在网络适配器设置中配置静态 IP 地址并忘记输入“默认网关”时,我遇到了同样的症状。

将该字段留空,网络图标显示 Internet 连接,我可以 ping 内部服务器但不能 ping 外部服务器,所以我认为这是 DNS 问题。 NSLookup 仍然有效,但当然,ping 无法找到服务器(再次,似乎是 DNS 问题。)无论如何,还有一件事要检查。 =P

【讨论】:

【参考方案7】:

我认为问题可能是由于 NAT。通常,DNS 客户端通过 UDP 发出请求。但是当 DNS 服务器在 NAT 之后,UDP 请求将不起作用。

【讨论】:

【参考方案8】:

您的主机文件中有 weddinglist 条目吗?您可以在以下位置找到:

C:\WINDOWS\system32\drivers\etc

nslookup 始终使用 DNS,而 ping 也使用其他方法来查找主机名。

【讨论】:

【参考方案9】:

我的家庭服务器上运行的 IIS 也有同样的问题,在客户端机器上,ipconfig /flushdns 之类的命令通常可以解决问题。

【讨论】:

【参考方案10】:

我在使用多标签名称时偶尔会遇到这个问题,即 test.internal

我的解决方案是在我的 Windows 7 机器上停止/启动 dnscache。以管理员身份打开控制台并输入

net stop dnscache
net start dnscache

然后叹气,想办法让 Mac 作为您的主要桌面。

【讨论】:

太棒了。上述解决方案对我不起作用(关于添加“.something”),因为它已经有了一个。我的是 ardee.local。同样的场景,可以执行 nslookup ardee.local,但无法执行 ping ardee.local。所以在这里重启 dnscache 就可以了。 也适用于多部分 DNS (machine.subdomain.domain.com),其中 subdomain.domain.com 是配置的“附加这些 DNS 后缀”之一。昨天解决了,今天不行。重新启动服务将其恢复。【参考方案11】:

如果您可以 ping FQDN,请查看如何设置 PC 的 DNS 传递。

如果在 TCP/IP 高级 DNS 设置中选中附加主要和连接特定 DNS 后缀,则 MS ping 将自动使用客户端 PC 的 FQDN 的 Winsock API。如果主机在另一个域中,客户端必须执行 DNS 传递。

在 XP TCP/IP 高级属性 DNS 下,确保检查附加父后缀,以便 ping 请求遍历域返回父。

【讨论】:

【参考方案12】:

我在 windows Server 2003 R2 EE 中发现了一个小错误。 你知道当你在网卡(网络连接)中指定你的IP地址时,windows会告诉你,如果你不指定首选DNS服务器,它会放他自己的ip,因为它是DNS服务器?好吧,它没有那样做......

我解决了手动写入 dns 地址的问题,而不是让 windows 为我完成。

【讨论】:

【参考方案13】:

我认为可以关闭此行为,但 Window 的在线帮助不是很清楚:

如果禁用 TCP/IP 上的 NetBIOS, 您不能使用基于广播的 NetBIOS 名称解析来解析计算机 计算机的 IP 地址名称 同一个网段。如果你的 计算机在同一个网络上 段,并且 TCP/IP 上的 NetBIOS 是 禁用,您必须安装 DNS 服务器,或者有电脑 向 DNS 注册(或手动 配置 DNS 记录)或配置 本地 Hosts 文件中的条目 每台计算机。

在 Windows XP 中,有一个复选框:

高级 TCP/IP 设置

[ ] 启用 LMHOSTS 查找

还有一本书详细介绍了这一点,“使用 TCP/IP 连接个人计算机:构建 TCP/IP 网络(O'Reilly 旧书)”。不幸的是,我无法查找它,因为我不久前处理了我的副本。

【讨论】:

这还不够。我刚试过;在禁用 LMHOSTS 的情况下(据我所知,这只是主机的并行文件),并且在禁用 NetBIOS 的情况下,DNS 查找仍然没有用于不合格的名称。指定 .作为搜索后缀起作用。【参考方案14】:

Windows 内部解析器可能会将“.local”添加到域名中,因为其中没有点。 nslookup 不会那样做。

要验证这种可能性,请在您的客户端计算机上安装“Wireshark”(以前称为 Ethereal),并在运行 ping 命令时观察任何离开它的 DNS 请求数据包。


好的,对我自己的 XP 机器的进一步调查显示,对于单标签名称(即“foo”或“foo.”),系统根本不使用 DNS,而是使用 NBNS(NetBios 名称服务) )。

使用在http://www.chicagotech.net/netforums/viewtopic.php?t=1476 找到的提示,我发现我可以通过将单个条目读取为“。”来强制对单个标签域进行 DNS 查找。在“附加这些 DNS “高级 TCP/IP 设置”对话框中的后缀(按顺序)

【讨论】:

我自己也遇到了类似的问题,我可以解析 Ubuntu 13.10 PC 的 IP,但无法按名称 ping 或 VNC 进入框中。添加句点“。”在名称的末尾解决了这个问题。因此,与其做类似的事情:ping my-pc,我只做:ping my-pc。

以上是关于DNS 问题,nslookup 有效,ping 无效的主要内容,如果未能解决你的问题,请参考以下文章

再用Windows Server 2012 配DNS时。用ping检验时,说 未找到主机

76 windows & mac 连接 linux 上面的 dnsmasq dns服务器, 能够 nslookup 但是 ping 不通

76 windows & mac 连接 linux 上面的 dnsmasq dns服务器, 能够 nslookup 但是 ping 不通

76 windows & mac 连接 linux 上面的 dnsmasq dns服务器, 能够 nslookup 但是 ping 不通

DNS 解析调试(dig & nslookup)

nslookup