我在按名称 ping 网络上的本地计算机时遇到了一个奇怪(且持续存在!)的问题。我相信我的计算机(Windows 7 64 位)是唯一遇到此问题的计算机。这是通过无线连接。
举个例子,考虑一下我网络上的一个名为 的设备WDTVLiveHub
。它是 Western Digital Live Hub(惊喜!)。如果我在浏览器中转到路由器的 DHCP 客户端表(我的路由器是 WRT400N),我会看到以下条目:
WDTVLiveHub 192.168.1.101
太好了。所以我尝试 ping 该 IP 地址:
ping 192.168.1.101
Pinging 192.168.1.101 with 32 bytes of data:
Reply from 192.168.1.101: bytes=32 time=9ms TTL=64
Reply from 192.168.1.101: bytes=32 time=16ms TTL=64
Reply from 192.168.1.101: bytes=32 time=16ms TTL=64
Reply from 192.168.1.101: bytes=32 time=16ms TTL=64
Ping statistics for 192.168.1.101:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 9ms, Maximum = 16ms, Average = 14ms
好的,看起来还不错。现在我尝试按名称 ping 它:
ping WDTVLiveHub
Ping request could not find host WDTVLiveHub. Please check the name and try again.
据我所知,这意味着 DNS 服务器和主机名查找存在问题。有趣的是,如果我输入以下内容:
pathping 192.168.1.101
我得到这个输出:
Tracing route to WDTVLIVEHUB [192.168.1.101]
over a maximum of 30 hops:
0 Scotty [192.168.1.103]
1 WDTVLIVEHUB [192.168.1.101]
Computing statistics for 25 seconds...
Source to Here This Node/Link
Hop RTT Lost/Sent = Pct Lost/Sent = Pct Address
0 Scotty [192.168.1.103]
1/ 100 = 1% |
1 12ms 1/ 100 = 1% 0/ 100 = 0% WDTVLIVEHUB [192.168.1.101]
Trace complete.
Scotty 显然是我本地机器的名称。因此当我使用这种方法时,它能够以某种方式找到该名称...
ipconfig /all
DNS 服务器下显示以下内容:
DNS Servers . . . . . . . . . . . : 192.168.1.1
***.***.***.***
***.***.***.***
其中 * 代表通过 Internet 在我的路由器上的 DNS 1 和 DNS 2 中显示的相同的 DNS 服务器。
为了完整性,这里是整个输出ipconfig /all
:
Windows IP Configuration
Host Name . . . . . . . . . . . . : Scotty
Primary Dns Suffix . . . . . . . :
Node Type . . . . . . . . . . . . : Peer-Peer
IP Routing Enabled. . . . . . . . : No
WINS Proxy Enabled. . . . . . . . : No
Wireless LAN adapter Wireless Network Connection:
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Dell Wireless 1397 WLAN Mini-Card
Physical Address. . . . . . . . . : 0C-EE-E6-D1-07-E8
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
IPv6 Address. . . . . . . . . . . : 2002:d83a:31e5:1234:5592:398e:8968:43d1(Preferred)
Temporary IPv6 Address. . . . . . : 2002:d83a:31e5:1234:ecce:2f79:72a5:5273(Preferred)
Link-local IPv6 Address . . . . . : fe80::5592:398e:8968:43d1%26(Preferred)
IPv4 Address. . . . . . . . . . . : 192.168.1.103(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Lease Obtained. . . . . . . . . . : September-17-12 11:05:57 PM
Lease Expires . . . . . . . . . . : September-18-12 11:05:57 PM
Default Gateway . . . . . . . . . : fe80::200:ff:fe00:0%26
192.168.1.1
DHCP Server . . . . . . . . . . . : 192.168.1.1
DHCPv6 IAID . . . . . . . . . . . : 537718502
DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-12-80-3D-D7-00-26-B9-0D-08-70
DNS Servers . . . . . . . . . . . : 192.168.1.1
***.***.***.***
***.***.***.***
NetBIOS over Tcpip. . . . . . . . : Enabled
Ethernet adapter VirtualBox Host-Only Network:
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : VirtualBox Host-Only Ethernet Adapter
Physical Address. . . . . . . . . : 08-00-27-00-98-9A
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
Link-local IPv6 Address . . . . . : fe80::b48a:916b:c0f:fb29%23(Preferred)
Autoconfiguration IPv4 Address. . : 169.254.251.41(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.0.0
Default Gateway . . . . . . . . . :
DHCPv6 IAID . . . . . . . . . . . : 570949671
DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-12-80-3D-D7-00-26-B9-0D-08-70
DNS Servers . . . . . . . . . . . : fec0:0:0:ffff::1%1
fec0:0:0:ffff::2%1
fec0:0:0:ffff::3%1
NetBIOS over Tcpip. . . . . . . . : Enabled
Tunnel adapter Local Area Connection* 15:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Teredo Tunneling Pseudo-Interface
Physical Address. . . . . . . . . : 00-00-00-00-00-00-00-E0
DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes
Tunnel adapter isatap.{55899375-C31D-4173-A529-4427D63FD28B}:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Microsoft ISATAP Adapter #2
Physical Address. . . . . . . . . : 00-00-00-00-00-00-00-E0
DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes
Tunnel adapter isatap.{64B8F35F-A6AB-4D6B-B1D5-DD95F57B1458}:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Microsoft ISATAP Adapter #3
Physical Address. . . . . . . . . : 00-00-00-00-00-00-00-E0
DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes
不确定如何诊断到底发生了什么……但这个问题真的令人沮丧!最大的问题是我的映射网络驱动器必须通过 IP 完成,然后每当路由器为这些设备分配新的 IP 地址时,我的所有网络共享都会再次中断。真糟糕!
希望得到一些关于可能解决方案的帮助。我尝试过重置所有netsh
目录,但似乎什么都没解决。也希望得到关于问题出在哪里的解释,而不是盲目地重置!
更新:我运行了 Wireshark 1.8.2 来查看运行请求时发生了什么ping
。Wireshark 立即显示了四个LLMNR
我认为是正确的多播目的地的请求。其中两个是 IPv4,另外两个是 IPv6。我不看到任何 ICMP 数据包了吗?LLMNR 应该能够独立工作吗?
更新2:我能够通过名称 ping 网络上的另一台机器(Windows Vista)。这与 LLMNR 仅在较新的 Windows 机器上受支持,而在我的网络上的其他设备上不受支持的想法相吻合。我在我的其他机器,发现当我从那里 ping 时,它也会发送 NBNS 数据包——NetBIOS 名称服务。这意味着我的机器由于某种原因没有发送 NBNS 查询。仍在挖掘...
更新 3:似乎无法发送 NetBIOS 数据包。我认为这是根本原因。我尝试通过组策略禁用 LLMNR,希望 NetBIOS 能够奇迹般地启动,但没有成功。ipconfig
显示已启用 TCP/IP 上的 NetBIOS,但 WireShark 没有显示任何正在发送的 NetBIOS 名称解析数据包。我尝试过禁用它然后重新启用它。我还尝试过两个经典命令和nbtstat winsock reset catalog
,nbtstat int ip reset reset.log
但它们根本没有解决 NetBIOS 问题。希望得到一些指导...
解决了!非常感谢 wmz。他或她确实准确地指出了问题所在:不知出于什么原因,我的 TCP/IP 上的 NetBIOS 已将自身设置为以对等模式运行。经过一番研究,我发现只有设置了 WINS 服务器(我肯定没有!),对等模式才有效。我深入研究了注册表,发现 NodeType 下没有条目,但确实有一个 DhcpNodeType 条目,其值为(太可怕了!)0x00000002。值为 1 表示广播(本来没问题),2 表示对等(需要 WINS 服务器!确认!),4 表示尝试 WINS 服务器然后广播,8 表示尝试广播然后 WINS 服务器(称为“混合”模式)。删除 DhcpNodeType 条目并重新启动后,我发现ipconfig /all
现在显示的是混合模式。所以看起来这是 Windows 7 Ultimate 64 位的默认设置。我尝试 ping wdtvlivehub
,立即尝到了成功的滋味。非常感谢大家的各种回答。我很高兴不用重新安装 Windows 或做其他疯狂的事情就解决了这个问题。我仍然不知道这个值是如何改变的......但至少这是值得寻找的另一件事,希望这些信息能帮助其他人处理令人沮丧的网络问题!解决这个问题感觉真好!赏金当之无愧!
谢谢!
答案1
您的发现似乎指向 netbios 解析器,这反过来使该条目成为可疑的:
Node Type . . . . . . . . . . . . : Peer-Peer
Netbios 节点类型 p(2) - 通常仅与 Wins 服务器一起使用(我假设您没有) - 有效地禁用任何 netbios 名称解析广播。
本文描述的问题与你的非常相似,并且还链接到Msoft technet 文章详细说明如何将节点类型重置为更合理的类型:
若要解决此问题,请按照下列步骤操作:
Click Start, click Run, type regedit, and then click OK. Locate and then click the following registry subkey: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NetBt\Parameters In the right pane of Registry Editor, delete the following values if they are present: NodeType DhcpNodeType
注意:如果 NodeType 值存在,则该值将覆盖 DhcpNodeType 值。如果两个子项都不存在,并且没有为客户端配置 WINS 服务器,则计算机使用 b 节点模式。如果至少配置了一个 WINS 服务器,则计算机使用 h 节点模式。退出注册表编辑器。重新启动计算机。尝试再次查看网络上的工作组计算机。
答案2
您的输出中有趣的一点ipconfig /all
是您没有主 DNS 后缀,您应该进入该适配器上的 ipv4 的 tcp/ip 属性并添加工作组作为您的主 DNS 后缀,看看它是否能够解析您的其他系统的名称,大多数路由器都会将 .workgroup 添加到机器名称中,因此您系统的 fqdn 将是 scotty.workgroup。还要检查您是否可以通过名称 ping WDTVLiveHub.workgroup。您还应该将工作组添加到该适配器的 ipv4 设置上的 DNS 搜索域列表中。
答案3
服务器可能无法解析主机名。
您可以尝试在 hosts 文件中添加 WDTVLiveHub 的条目,如下所示:
192.168.1.101 WDTVLiveHub
在 Windows 上:C:\Windows\system32\drivers\etc\
答案4
以下解决方案将让您忘记处理本地主机文件和 NETBIOS 名称解析之类的麻烦 - 但这样做有一个缺点。这不仅仅是在您的 Windows 或路由器配置中打开或关闭的设置。这需要您付出更多努力。
在我看来,你已经足够满足于以某种方式解决这个问题了,这样你的家庭网络中就再也不会出现名称解析问题了!
快速检查后www.dd-wrt.com您的 Cisco 路由器似乎兼容运行开源路由器固件 DD-WRT。这款方便的小软件将为您的路由器提供家庭网络所需的所有功能,甚至更多。它还包括一项名为 DNSMasq 的服务,它是在您的路由器上运行的小型轻量级 DNS 服务器。
另外一个优点是 DNSMasq 可以智能地将 DHCP 租约添加到其 DNS 数据库,为任何 DHCP 客户端(静态或动态)提供本地名称查找。
因此,这实际上会为您的网络添加真正的 DNS 解析,而不是基于希望您的 NETBIOS 和多播 DNS 解析能够正常工作。
如果你是那种喜欢花几个小时尝试新事物的人,我建议你看看它。你可以找到一个指南来刷新你的路由器这里 但是在将新固件刷入之前,请务必检查您的设备和型号版本是否与 DD-WRT 兼容,否则可能会损坏您的设备! 再次检查链接
DD-WRT 还能为您带来其他精彩功能:
- 支持局域网唤醒 - 从世界任何地方启动您的设备
- VPN 端点支持 - 从国外建立到家庭网络的安全连接。
- 带宽分析和管理 - 获取有关您的网络使用情况的真实信息。
- 还有更多事情。点击此处查看概述
顺便说一句,它也是免费的。
干杯,Riscie!
(我与 DD-WRT 的任何开发人员都没有任何关系,也不会从使用该固件的人那里获得任何好处 - 我只是非常热情,因为我真的相信它的功能:))