概要本文介绍如何解决在将 TCP/IP 用作网络协议时可能遇到的一些常见网络通信问题。这些问题通常可以分为以下两类:
注意:下面所有的故障排除步骤都适用于 NT 和 2000 平台,但可能不适用于 Win9x 平台(Win ME 除外)。但是,诊断和故障排除的基本方法对于所有这些 Windows 操作系统而言都是相同的。 更多信息为了确定问题是与基本连接有关,还是与名称解析有关,请按照以下过程判断您能否连接到特定的 IP 地址。
连接到某个 IP 地址使用相应的 IP 地址和选择的 TCP/IP 程序或实用工具,尝试连接网络上的另一台计算机。Web 浏览器、FTP 和 Telnet 是通过 TCP/IP 连接其他计算机时常用的一些程序和实用工具。注意:如果您不知道要尝试连接的 Windows NT 或 2000 计算机的 IP 地址,可以在其他计算机的命令提示符处运行 IPCONFIG /ALL 命令。 如果用 IP 地址不能连接到其他计算机,说明这是基本连接问题。请用下文“无法连接到特定的 IP 地址”一节中的信息来解决此问题。如果使用 IP 地址能够连接到该计算机,但不能使用该计算机的主机名或 NetBIOS 名建立连接,则可能是名称解析问题。请用下文“无法连接特定的主机名或 NetBIOS 名”一节中的信息来解决此问题。 无法连接到特定的 IP 地址请按顺序执行以下各节中的过程。完成每个过程之后,请检查能否使用 IP 地址连接到该计算机。检查 TCP/IP 配置在使用 TCP/IP 作为网络协议时,TCP/IP 设置不当(例如,IP 地址不正确或子网掩码不正确)可能会引起通信问题。为了确定 Windows NT 或 2000 是否记录了因 TCP/IP 设置不正确而引起的错误,请检查事件查看器的系统日志,看有没有来源为 TCP/IP 或 DHCP 的任何项。要阅读事件查看器中的某一项,请双击该项。注意:如果事件查看器记录了 DHCP 错误,则应将其报告给网络管理员。 如果在事件查看器系统日志中收到 TCP/IP 错误,请按照错误信息中的说明解决收到的每个错误。例如,如果收到声明 IP 地址参数不正确的错误,则应验证 IP 地址是否有效。 如果事件查看器系统日志中没有错误,请按照下列步骤操作,以确认所使用的 TCP/IP 配置信息是正确的:
Ping 环回地址使用 PING 命令验证 TCP/IP 是否正常工作。为此,请在命令提示符处键入以下命令来 Ping 环回地址 (127.0.0.1):ping 127.0.0.1
您应该收到类似下面的响应:
Pinging 127.0.0.1 with 32 bytes of data: Reply from 127.0.0.1:bytes=32 time=<10ms TTL=128 Reply from 127.0.0.1:bytes=32 time=<10ms TTL=128 Reply from 127.0.0.1:bytes=32 time=<10ms TTL=128 Reply from 127.0.0.1:bytes=32 time=<10ms TTL=128如果此时收到错误信息,则表明 TCP/IP 安装不正确。要删除并重新安装 TCP/IP,请按照下列步骤操作: 注意:要完成这些步骤,您必须以具有管理员权限的用户身份登录。
151237 (http://support.microsoft.com/kb/151237/) 安装 TCP/IP 或添加 TCP/IP 服务时出现错误信息
Ping 计算机的 IP 地址如果能够成功 Ping 到环回地址,请尝试 Ping 您自己的 IP 地址,方法是在命令提示符处键入 ping <IP address>,其中 <IP address> 是您的计算机的 IP 地址。注意:如果您不知道计算机的 IP 地址,则可通过在命令提示符处键入 ipconfig 来获得该信息。 您会收到类似下面的响应: Pinging <###.###.###.###> with 32 bytes of data: Reply from <###.###.###.###>:bytes=32 time=77ms TTL=28 Reply from <###.###.###.###>:bytes=32 time=80ms TTL=28 Reply from <###.###.###.###>:bytes=32 time=78ms TTL=28 Reply from <###.###.###.###>:bytes=32 time=79ms TTL=28其中 <###.###.###.###> 是您的计算机的 IP 地址。 如果此时收到错误信息,则说明 Windows NT 和网络适配器之间可能存在通信问题。要解决这一问题,请删除并重新安装网络适配器驱动程序。为此,请按照下列步骤操作: 注意:要完成这些步骤,您必须以具有管理员权限的用户身份登录。
清除地址解析协议 (ARP) 高速缓存地址解析协议 (ARP) 高速缓存是最近解析的 IP 地址的列表,用于指向媒体访问控制 (MAC) 地址映射。MAC 地址是嵌入每个网络适配器中的唯一物理地址。如果 ARP 高速缓存中有一项不正确,IP 数据报就可能被发往错误的计算机。要显示当前 ARP 高速缓存中的所有映射,请使用 ARP 命令,方法是在命令提示符处键入 arp -a。您会收到“No ARP Entries Found”(未发现 ARP 项)消息(如果 ARP 高速缓存为空),或者类似下面的响应: Interface:10.1.1.3 on Interface 2 Internet Address Physical Address Type 10.1.1.7 08-00-02-06-ed-20 dynamic 10.1.1.254 08-00-02-0a-a3-10 dynamic要删除 ARP 高速缓存中所有不正确的项,可用以下命令清除所有项: arp -d <IP address>
其中 <IP address> 是 ARP 高速缓存中存储的 Internet 地址。对 ARP 高速缓存中的每个项均使用该命令,直到删除所有项为止。 要了解 ARP 命令的语法、选项和用法的更多信息,请在命令提示符处键入 arp -?。 验证默认网关使用 IPCONFIG 命令确定您的计算机用来访问默认网关的 IP 地址。为此,请在命令提示符处键入“ipconfig”(不带双引号)。验证所显示的默认网关的 IP 地址是否正确。如果您不知道默认网关的正确 IP 地址,请与网络管理员联系。确认默认网关有正确的 IP 地址之后,再使用 PING 命令验证您能否 Ping 到默认网关的 IP 地址。您会收到类似下面的响应: Pinging <###.###.###.###> with 32 bytes of data: Reply from <###.###.###.###>:bytes=32 time=77ms TTL=28 Reply from <###.###.###.###>:bytes=32 time=80ms TTL=28 Reply from <###.###.###.###>:bytes=32 time=78ms TTL=28 Reply from <###.###.###.###>:bytes=32 time=79ms TTL=28其中 <###.###.###.###> 是默认网关的 IP 地址。 如果默认网关没有连到网络上,或者工作不正常,您可能会收到类似下面的响应: Pinging <###.###.###.###> with 32 bytes of data: Request timed out. Request timed out. Request timed out. Request timed out.如果无法成功 Ping 到默认网关的 IP 地址,请与网络管理员联系,验证默认网关是否连到网络上并工作正常。 Ping 其他计算机的 IP 地址尝试 Ping 其他计算机的 IP 地址。为此,请键入 ping <IP address>,其中 <IP address> 是其他计算机的 IP 地址。您会收到类似下面的响应:Pinging <###.###.###.###> with 32 bytes of data: Reply from <###.###.###.###>:bytes=32 time=77ms TTL=28 Reply from <###.###.###.###>:bytes=32 time=80ms TTL=28 Reply from <###.###.###.###>:bytes=32 time=78ms TTL=28 Reply from <###.###.###.###>:bytes=32 time=79ms TTL=28其中 <###.###.###.###> 是其他计算机的 IP 地址。 如果在您的计算机和其他计算机之间有一台错误配置的路由器,或者是其他计算机存在问题,您可能会收到类似下面的响应: Pinging <###.###.###.###> with 32 bytes of data: Request timed out. Request timed out. Request timed out. Request timed out.如果您的计算机与其他计算机处在不同的子网上,可以尝试从与该计算机处于同一子网的计算机来 Ping 该计算机。如果从处于同一子网的计算机也不能 Ping 到该计算机,请确认该计算机是否连接到了网络,以及它使用的 IP 地址是否正确。如果从处于同一子网的计算机能够 Ping 到该计算机,请与网络管理员联系,以解决网络上可能存在的任何路由问题。 验证永久的路由表项使用 TCP/IP 作为网络协议的任何计算机都有一个路由表。网络数据包从一台使用 TCP/IP 的计算机传输到另一台使用 TCP/IP 的计算机时,所采取的路由是由发送网络数据包的计算机的路由表确定的。在每次重新启动计算机后,计算机的路由表都会自动重新生成。您或者您的网络管理员可以向您的计算机的路由表中添加一些永久(静态)项。每次重新生成计算机的路由表时,这些永久项都会被自动重新插入路由表中。 要查看计算机的路由表,请使用 ROUTE 命令。为此,请在命令提示符处键入 route print。您会收到类似下面的响应: Active Routes: Network Address Netmask Gateway Address Interface Metric 0.0.0.0 0.0.0.0 10.1.1.254 10.1.1.3 1 10.1.0.0 255.255.0.0 10.1.1.3 10.1.1.3 1 10.1.1.3 255.255.255.255 127.0.0.1 127.0.0.1 1 10.255.255.255 255.255.255.255 10.1.1.3 10.1.1.3 1 127.0.0.1 255.0.0.0 127.0.0.1 127.0.0.1 1 224.0.0.0 224.0.0.0 10.1.1.3 10.1.1.3 1 255.255.255.255 255.255.255.255 10.1.1.3 10.1.1.3 1与网络管理员核实您的计算机路由表中的所有永久项都是有效的。 有关路由、路由表和 ROUTE 命令的更多信息,请参见下面的 Microsoft 知识库文章: 140859 (http://support.microsoft.com/kb/140859/) Windows NT 的 TCP/IP 路由基础
使用 TRACERT 命令TRACERT 命令能够报告 TCP/IP 数据包在发送到另一台主机时所经过的每台路由器或网关。要使用 TRACERT 命令跟踪您的计算机与其他计算机之间的路由,请在命令提示符处键入 tracert <IP address>,其中 <IP address> 是其他计算机的 IP 地址。您会收到类似下面的响应:Tracing route to <IP address> over a maximum of 30 hops: 1 <10 ms <10 ms <10 ms <###.###.###.###> 2 50 ms 50 ms 51 ms <###.###.###.###> 3 250 ms 80 ms 50 ms <###.###.###.###> Trace complete.其中,<###.###.###.###> 是另一台路由器的 IP 地址。 如果网络数据包试图穿越的某台路由器存在问题,您可能会收到类似下面的响应: Tracing route to <IP address> over a maximum of 30 hops: 1 <10 ms <10 ms <10 ms <###.###.###.###> 2 * * * Request timed out. 3 * * * Request timed out. 4 * * * Request timed out.如果在您的计算机和其他计算机之间的某台路由器有配置错误,您可能会收到类似下面的响应: Tracing route to <IP address> over a maximum of 30 hops: 1 <10 ms <10 ms <10 ms <###.###.###.###> 2 50 ms 50 ms 51 ms <###.###.###.###> 3 <###.###.###.###> reports:Destination net unreachable.当在您的计算机和其他计算机之间存在代理或防火墙时,也可能会收到与上述类似的响应。 如果在用 TRACERT 命令跟踪您的计算机和其他计算机之间的路由时得不到成功的响应,请与网络管理员联系,以确定这两台计算机之间是否存在路由问题。 有关 TRACERT 命令的更多信息,请参阅下面的 Microsoft 知识库文章: 162326 (http://support.microsoft.com/kb/162326/) 如何使用 TRACERT 命令行实用工具来排查 Windows 中的 TCP/IP 问题
验证其他计算机上的服务器服务验证其他计算机上是否在运行适当的服务器服务。例如,如果您正试图用 Telnet 工具连接其他计算机,请确认该计算机已被配置为 Telnet 服务器。为了验证其他计算机上是否正在运行适当的服务器服务,请尝试从与该计算机同处一个子网的另一台计算机连接该计算机。如果从处于同一子网的计算机上不能连接该计算机,请与网络管理员联系,验证该计算机上的服务器服务是否已经配置并工作正常。如果能够从处于同一子网的计算机连接到其他计算机,请与网络管理员联系,以解决网络上可能存在的任何路由问题。 检查服务器的 IP 安全设置其他计算机上服务的端口设置可能与您用于进行连接的端口设置不同。下表列出了各种协议的一些标准端口设置:端口: 协议: ----- --------- 80 HTTP 21 FTP 23 Telnet 70 Gopher使用 Telnet 工具验证其他计算机是否已经得到正确的配置,允许在您使用的相同端口上建立连接。为此,请在命令提示符处键入以下行: telnet <IP address> <port>
,其中 <IP address> 是其他计算机的 IP 地址,<port> 是您试图用来建立连接的端口。例如,如果您试图在端口 21 上与其他计算机建立 FTP 连接,则应键入 telnet <IP address> 21。 如果没有收到错误信息,则表明其他计算机已配置为允许在该端口上建立连接。您应该能够在该端口上使用适当服务建立连接。 如果收到错误信息,则表明其他计算机可能未配置为允许在该端口上建立连接。请与网络管理员联系,以获得其他计算机上该服务的有效端口号。 无法连接特定的主机名或 NETBios 名如果您能使用 IP 地址连接到其他计算机,但不能使用主机名或 NetBIOS 名连接到该计算机,则表明可能存在名称解析问题。在网络上,可以使用很多种方法来完成名称解析,其中包括:
检查 HOSTS 文件HOSTS 文件是文本文件,您可以用任何文本编辑器(如“记事本”)进行编辑。如果您的网络使用 HOSTS 文件进行主机名称解析,而使用主机名无法连接到其他计算机,那么表明在 HOSTS 文件中可能存在无效项。在 HOSTS 文件中搜索其他计算机的主机名,验证每个主机名只对应一项,然后验证该计算机主机名对应的项是有效的。有关 HOSTS 文件的更多信息,请参见 %SystemRoot%\System32\Drivers\Etc 文件夹中的示例 HOSTS 文件。 检查域名服务 (DNS) 配置域名服务 (DNS) 服务器提供了主机名称解析。如果您的网络用 DNS 作为主机名称解析方法,而用主机名无法连接其他计算机,则表明您的计算机的 DNS 配置或网络上的 DNS 服务器可能存在问题。为了确定计算机的 DNS 配置是否存在问题,请按照下列步骤操作:
如果您能够 Ping 到 DNS 服务器的 IP 地址,却不能解析其他计算机的主机名,则表明 DNS 服务器可能无法正确解析主机名。如果您的网络中提供多个 DNS 服务器,则配置计算机以使用另一台 DNS 服务器。如果另一台 DNS 服务器可以正确解析该计算机的主机名,或者没有其他 DNS 服务器可用,请联系网络管理员,以解决原来的 DNS 服务器问题。 验证 DNS 服务器有正确的 IP 地址之后,请更新计算机的 TCP/IP 设置。如果您使用拨号连接来连接网络,则只需将拨号网络电话簿项中的 TCP/IP 设置更改为 DNS 服务器的正确 IP 地址即可。 为了在计算机的 TCP/IP 设置中更改或添加有效的 DNS 服务器 IP 地址,请按照下列步骤操作:
检查 LMHOSTS 文件LMHOSTS 文件是文本文件,可以用任何文本编辑器(如“记事本”)进行编辑。如果您的网络使用 LMHOSTS 文件作为 NetBIOS 名称解析方法,而使用 NetBIOS 名无法连接其他计算机,则表明 LMHOSTS 文件中可能存在无效项。在 LMHOSTS 文件中搜索其他计算机的 NetBIOS 名,验证每个 NetBIOS 名只有一项,然后验证对应其他计算机的 NetBIOS 名的项是正确的。如果在 LMHOSTS 文件中有任何 #INCLUDE 项,或任何从 #BEGIN_ALTERNATE 到 #END_ALTERNATE 的行块,请临时禁用所有这些行或行块(在要禁用的每行的开头加上 # 字符和一个空格)。 如果禁用这些行或行块能够解决问题,请逐行重新启用这些行或行块,直到问题重新出现。这样您就能确定具体是哪个行或行块导致了问题,然后检查该行指向的 LMHOSTS 文件。 有关 LMHOSTS 文件的更多信息,请参见 %SystemRoot%\System32\Drivers\Etc 文件夹中的 Lmhosts.sam 示例文件。 检查 Windows Internet 名称服务 (WINS) 配置Windows Internet 名称服务 (WINS) 服务器提供 NetBIOS 名称解析。如果您的网络用 WINS 作为 NetBIOS 名称解析方法,而使用 NetBIOS 名您无法连接到其他计算机,则表明您的计算机 WINS 配置或网络上的 WINS 服务器可能存在问题。为了确定计算机的 WINS 配置是否存在问题,请按照下列步骤操作:
如果能够 Ping WINS 服务器的 IP 地址,却不能解析其他计算机的 NetBIOS 名,则表明 WINS 服务器可能无法正确解析 NetBIOS 名。如果网络中提供多台 WINS 服务器,则配置计算机使用另一台 WINS 服务器。如果另一台 WINS 服务器可以正确解析其他计算机的 NetBIOS 名,或者没有其他 WINS 服务器可用,请与网络管理员联系,以解决原来的 WINS 服务器的问题。 验证 WINS 服务器有正确的 IP 地址之后,请更新计算机的 TCP/IP 设置。如果您使用拨号连接来连接网络,则只需将拨号网络电话簿项中的 TCP/IP 设置更改为 WINS 服务器的正确 IP 地址即可。 要在计算机的 TCP/IP 设置中更改或添加有效的 WINS 服务器 IP 地址,请按照下列步骤操作:
这篇文章中的信息适用于:
|
|