62

我正在我的公寓里设置一个开发服务器。我已经在其上设置了一个 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,也无法访问weddinglist 上的网页。

我怎样才能使 ping 在 Windows PC 上工作?

4

14 回答 14

73

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

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


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

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

于 2008-12-01T09:56:52.313 回答
47

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

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

net stop dnscache
net start dnscache

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

于 2013-02-21T01:43:14.663 回答
9

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

于 2013-04-06T06:33:12.530 回答
5

我遇到过同样的问题。正如其他答案所指出的,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 后缀添加到查找中。

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

高级 TCP/IP 设置

于 2014-04-30T01:04:55.573 回答
3

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

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

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

高级 TCP/IP 设置

[]启用LMHOSTS查找

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

于 2008-12-16T07:33:40.630 回答
2

你的hosts文件里有weddinglist的条目吗?您可以在以下位置找到它:

C:\WINDOWS\system32\drivers\etc

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

于 2008-12-01T09:58:24.930 回答
1

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

我解决了手动编写 dns 地址的问题,而不是让 windows 为我做这件事。

于 2012-04-18T04:53:27.400 回答
1

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

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

它对我有用..

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

于 2015-07-14T09:36:26.290 回答
0

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

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

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

于 2011-01-04T21:08:51.357 回答
0

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

于 2014-03-20T00:58:28.760 回答
0

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

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

于 2014-01-10T19:59:48.930 回答
0

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

于 2013-06-28T08:35:07.430 回答
0

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

我发现了问题

IPCONFIG /ALL

它列出了

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

于 2015-07-11T16:29:24.877 回答
0

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

于 2017-12-12T23:52:54.377 回答