博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

如何解决 Windows XP 的 TCP/IP 连接问题

Posted on 2010-07-23 10:34  linFen  阅读(3689)  评论(0编辑  收藏  举报

TCP/IP 故障排除工具

下面的列表显示 Windows XP 附带的一些 TCP/IP 诊断工具:

基本工具

  • “帮助和支持”中的“网络诊断”
    包含有关网络配置和自动测试结果的详细信息。
  • “网络连接”文件夹
    包含计算机上所有网络连接的信息和配置。要找到“网络连接”文件夹,请单击“开始”,单击“控制面板”,然后单击“网络和 Internet 连接”。
  • IPConfig 命令
    显示当前 TCP/IP 网络配置值;更新或释放动态主机配置协议 (DHCP) 分配的租用;显示、注册或刷新域名系统 (DNS) 名称。
  • Ping 命令
    发送 ICMP 回显请求消息,以验证是否正确配置了 TCP/IP,以及 TCP/IP 主机是否可用。

高级工具

  • Hostname 命令
    显示主计算机的名称。
  • Nbtstat 命令
    显示当前 TCP/IP 上的 NetBIOS 连接的状态,更新 NetBIOS 名称缓存,并显示注册的名称和范围 ID。
  • PathPing 命令
    显示 TCP/IP 主机的路径以及途经每个路由器时的数据包丢失情况。
  • Route 命令
    显示 IP 路由表以及添加或删除 IP 路由。
  • Tracert 命令
    显示 TCP/IP 主机的路径。
要查看以上每个工具所使用的正确命令语法,请在命令提示符处的工具名称后面键入 -?

Windows XP Professional 工具

Windows XP Professional 包含下列附加工具:
  • 事件查看器
    记录系统错误和事件。
  • 计算机管理
    更改网络接口驱动程序和其他组件

 

故障排除

用于解决 TCP/IP 问题的步骤取决于您使用的网络连接的类型以及所遇到的连接问题。

自动故障排除

对于大多数涉及 Internet 连接的问题,请先使用“网络诊断”工具确定问题的原因。要使用“网络诊断”,请按照下列步骤操作:

  1. 单击“开始”,然后单击“帮助和支持”。
  2. 单击“使用工具查看您的计算机信息并分析问题”链接,然后单击左侧列表中的“网络诊断”。
  3. 在单击“扫描您的系统”后,“网络诊断”功能将收集配置信息并对网络连接执行自动故障排除。
  4. 此过程完成后,请查找标有红色“失败”标记的所有项,展开这些类别,然后查看有关测试所显示内容的其他详细信息。

您可以使用该信息解决问题,也可以将该信息提供给网络支持专家以获取帮助。如果将失败的测试与“手动故障排除”部分(本文稍后部分有所介绍)中的内容进行比较,则或许可以确定问题的原因。要解读 TCP/IP 的结果,请展开结果的“网络适配器”部分,然后展开测试失败的网络适配器。

您还可以使用以下命令直接启动“网络诊断”界面:

netsh diag gui

手动故障排除

要手动解决 TCP/IP 连接问题,请按显示顺序依次使用下列方法:

方法 1:使用 IPConfig 工具验证配置



要使用 IPConfig 工具验证出现问题的计算机上的 TCP/IP 配置,请单击“开始”,单击“运行”,然后键入 cmd。现在,您可以使用 ipconfig 命令确定主计算机配置信息,其中包括 IP 地址、子网掩码和默认网关。

IPConfig 的 /all 参数会生成所有接口(包括所有远程访问适配器)的详细配置报告。您可以将 IPConfig 输出重定向到某个文件,以将输出粘贴到其他文档中。为此,请键入:

ipconfig > \folder_name\file_name

输出将接收指定文件名并存储在指定的文件夹中。

您可以检查 IPConfig 输出以确定存在于计算机网络配置中的问题。例如,如果手动将某台计算机的 IP 地址配置为与检测到的现有 IP 地址相同,则子网掩码将显示为 0.0.0.0。

如果返回的本地 IP 地址显示为 169.254.y.z,子网掩码为 255.255.0.0,则该 IP 地址是由 Windows XP Professional 的自动专用 IP 地址 (APIPA) 功能分配的。此分配表示将该 TCP/IP 配置为进行自动配置,未找到 DHCP 服务器,且未指定备用配置。该配置没有用于接口的默认网关。

如果返回的本地 IP 地址显示为 0.0.0.0,则表明 DHCP 介质侦测功能替代已打开,这是因为网络适配器检测到其未连接到网络,或者 TCP/IP 检测到 IP 地址与手动配置的 IP 地址相同。

如果未在 TCP/IP 配置中发现任何问题,请转到方法 2。

方法 2:使用 Ping 工具测试连接



如果未在 TCP/IP 配置中发现任何问题,请确定计算机是否可以连接到 TCP/IP 网络中的其他主计算机。为此,请使用 Ping 工具。

Ping 工具可帮助验证 IP 级别的连接。ping 命令可向目标主机发送 ICMP 回显请求消息。在需要时可使用 Ping 命令验证主机是否可以向目标主机发送 IP 数据包。您还可以使用 Ping 命令来避免网络硬件问题和不兼容的配置问题。

注意:如果您运行了 ipconfig /all 命令,并且显示了 IP 配置,则不必 ping 环回地址和您自己的 IP 地址。IPConfig 已执行这些任务来显示配置。在进行故障排除时,请验证本地计算机和网络主机之间是否存在路由。为此,请使用以下命令:

ping IP address

注意IP address 是要连接到的网络主机的 IP 地址。

要使用 ping 命令,请按照下列步骤操作:

  1. Ping 环回地址以检查本地计算机上是否安装并正确配置了 TCP/IP。为此,请键入以下命令:
    ping 127.0.0.1
    如果环回测试失败,则 IP 堆栈不响应。如果存在下面的一种或多种情况,就可能会出现此问题:
    • TCP 驱动程序损坏。
    • 网络适配器工作不正常。
    • 另一项服务正在干预 IP。
  2. Ping 本地计算机的 IP 地址,验证它是否已正确添加到网络中。如果路由表正确,则此步骤会将数据包转发到环回地址 127.0.0.1。为此,请键入以下命令:
    ping <本地主机的 IP 地址>
    如果环回测试成功但无法 ping 本地 IP 地址,则可能是由于路由表或网络适配器驱动程序存在问题。
  3. Ping 默认网关的 IP 地址以验证默认网关是否可正常运行,以及是否可以与本地网络上的本地主机进行通信。为此,请键入以下命令:
    ping <默认网关的 IP 地址>
    如果无法执行 ping 操作,则表明网络适配器、路由器或网关设备、布线或其他连接硬件可能存在问题。
  4. Ping 一台远程主机的 IP 地址,验证您是否可通过路由器进行通信。为此,请键入以下命令:
    ping <远程主机的 IP 地址>
    如果无法执行 ping 操作,则表明远程主机可能没有响应,或计算机之间的网络硬件可能存在问题。为了排除远程主机不响应的情况,请再次对另一台远程主机执行 Ping 操作。
  5. Ping 远程主机的主机名以验证您是否可以解析远程主机名。为此,请键入以下命令:
    ping <远程主机的主机名>
    Ping 使用名称解析将计算机名解析为 IP 地址。因此,如果可以成功地 ping IP 地址,但却无法 ping 计算机名,则表明主机名称解析而不是网络连接出现问题。验证是否为计算机配置了 DNS 服务器地址,在 TCP/IP 属性中手动配置或自动分配皆可。如果在您键入 ipconfig /all 命令后,系统列出 DNS 服务器地址,请尝试 ping 服务器地址以确保可以访问这些服务器。

如果无法在任意点成功使用 Ping 操作,请验证以下配置:

  • 确保本地计算机的 IP 地址有效,并且该 IP 地址正确显示在“Internet 协议(TCP/IP)属性”对话框的“常规”选项卡上或该 IP 地址可正常用于 Ipconfig 工具。
  • 确保配置了默认网关并且主机和默认网关之间的链接正常工作。出于故障排除目的,确保只配置一个默认网关。虽然您可以配置多个默认网关,但只有在 IP 堆栈确定原网关不工作时,才会使用第一个网关后面的其他网关。故障排除的目的是确定配置的第一个网关的状态。因此,可删除所有其他网关以简化任务。
  • 确保未打开 Internet 协议安全性 (IPSec)。根据 IPSec 策略,Ping 数据包可能会被阻止或可能需要安全设置。有关 IPSec 的更多信息,请转到方法 7:验证 Internet 协议安全性 (IPSec)。

重要说明:如果您要对其执行 ping 操作的远程计算机跨高延迟链接(如卫星链接),则响应时间可能会较长。您可以使用 -w(等待)参数指定比默认超时时间(4 秒)更长的超时时间。

方法 3:使用 PathPing 工具验证路由



PathPing 工具用于检测多跃点路径上数据包的丢失情况。对远程主机运行 PathPing 分析以验证通向目标沿途的路由器是否正常工作。为此,请键入以下命令:

pathping <远程主机的 IP 地址>
方法 4:使用 Arp 工具清除 ARP 缓存



如果可以同时 ping 环回地址 (127.0.0.1) 和您自己的 IP 地址,但不能 ping 任何其他 IP 地址,请使用 Arp 工具清除地址解析协议 (ARP) 缓存。要查看缓存条目,请键入以下任一命令:

arp -a

arp -g

要删除这些条目,请键入以下命令:

arp -d IP address

要刷新 ARP 缓存,请键入以下命令:

netsh interface ip delete arpcache
方法 5:验证默认网关



网关地址和本地主机必须位于同一网络上。否则,主计算机的消息将无法转发到本地网络以外的位置。如果网关地址和本地主机位于同一网络,请确保默认网关地址正确无误。确保默认网关是一个路由器,而不仅仅是一个主机。并确保启用了路由器以转发 IP 数据报。

方法 6:使用 Tracert 或 Route 工具验证通信



如果默认网关正常响应,请 ping 远程主机以确保网络间的通信正常。如果通信不正常,请使用 Tracert 工具跟踪目标主机的路径。如果 IP 路由器是基于 Microsoft Windows 2000 或 Microsoft Windows NT 4.0 的计算机,请使用 Route 工具或“路由和远程访问”管理单元查看 IP 路由表。对于其他 IP 路由器,请使用供应商指定的适当工具或设备来检查 IP 路由表。

通常,如果在故障排除期间使用 Ping 操作,则会收到以下四种错误消息:

TTL 传输中过期

此错误消息表示所需的跃点数超出了“生存时间 (TTL)”。增加 TTL 的方法是使用 ping -i 命令。可能存在路由循环。可使用 Tracert 命令来确定是不是配置有问题的路由器导致了路由循环。

无法访问目标主机

此错误消息表示在发送主机或路由器上不存在目标主机的本地或远程路由。对本地主机或路由器的路由表进行故障排除。

请求超时

此错误消息表示在指定的超时时间内未收到回显回复消息。默认情况下,指定的超时时间为 4 秒。可使用 ping -w 命令增加超时时间。

Ping 请求找不到主机

此错误消息表示无法解析目标主机名。验证 DNS 或 WINS 服务器的名称和可用性。

方法 7:验证 Internet 协议安全性 (IPSec)



虽然使用 IPSec 可以提高网络的安全性,但同时也会使更改网络配置或对问题进行故障排除变得更加困难。有时,IPSec 策略要求在基于 Windows XP Professional 的计算机上进行安全通信。这些要求将使与远程主机的连接变得更加困难。如果 IPSec 是在本地实现的,则可以关闭“服务”管理单元中的“IPSEC 服务”。

如果在停止 IPSec 服务后问题消失,则表明是 IPSec 策略阻止了通信或者它要求进行安全设置以进行通信。请安全管理员修改 IPSec 策略。

方法 8:验证数据包筛选



由于数据包筛选过程中出错,导致地址解析或连接可能无法正常工作。要确定是不是数据包筛选导致了网络问题,请关闭 TCP/IP 数据包筛选。为此,请按照下列步骤操作:

  1. 单击“开始”,单击“控制面板”,单击“网络和 Internet 连接”,然后单击“网络连接”。
  2. 右键单击要修改的本地连接,然后单击“属性”。
  3. 在“常规”选项卡上的“此连接使用下列项目”列表中,单击“Internet 协议(TCP/IP)”,然后单击“属性”。
  4. 单击“高级”,然后单击“选项”选项卡。
  5. 在“可选的设置”对话框中,单击“TCP/IP 筛选”,然后单击“属性”选项卡。
  6. 单击以清除“启用 TCP/IP 筛选(所有适配器)”,然后单击“确定”。

要 ping 某个地址,可使用其 DNS 名称、其 NetBIOS 计算机名或其 IP 地址。如果 ping 操作成功,则可能是数据包筛选选项配置错误,或这些选项的限制性太强。例如,筛选可能允许计算机充当 Web 服务器,但在此过程中筛选可能会关闭某些工具(如远程管理工具)。要恢复众多允许的筛选选项,请更改 TCP 端口、UDP 端口和 IP 协议的允许值。

方法 9:验证与特定服务器的连接



要确定尝试通过基于 NetBIOS 的连接连接到特定服务器时所出现的连接问题的原因,请在服务器上使用 nbtstat -n 命令来确定该服务器在网络上注册的名称。

nbtstat -n output 命令可列出该计算机注册的多个名称。该列表中应该有一个名称与在“控制面板”中“系统”下的“计算机名”选项卡上配置的计算机名类似。如果没有,请尝试使用 nbtstat 命令显示的任一其他唯一名称。

Nbtstat 工具还可以显示 Lmhosts 文件的 #PRE 条目或最近解析的名称中远程计算机的缓存条目。如果用于服务器的远程计算机的名称相同,并且其他计算机在远程子网上,请确保其他计算机在其 Lmhosts 文件或 WINS 服务器中具有计算机名到地址的映射。

方法 10:验证远程连接



要确定与远程计算机的 TCP/IP 连接停止响应的原因,请使用 netstat -a 命令显示本地计算机上 TCP 和 UDP 端口的所有活动的状态。

通常情况下,正常的 TCP 连接在“发送”和“收到”队列中显示 0 字节。如果数据在任何一个队列中被阻止或队列的状态出现异常,则表示连接可能出现故障。如果数据未被阻止,队列的状态正常,则可能是遇到网络或程序延迟。

方法 11:使用 Route 工具检查路由表



要让两个主机交换 IP 数据报,这两个主机必须都具有到对方的路由或者必须使用具有路由的默认网关。要在基于 Windows XP 的主机上查看路由表,请键入以下命令:

route print
方法 12:使用 Tracert 工具检查路径



Tracert 发送其值在 IP 标头 TTL 字段中明显增加的 ICMP 回显请求消息,从而确定网络中从一台主机到另一台主机的路径。然后,Tracert 分析返回的 ICMP 消息。通过 Tracert,您可以跟踪从一个路由器到另一个路由器多达 30 个跃点的路径。如果某个路由器出现故障或数据包进入循环,则 Tracert 会显示该问题。在找到出现问题的路由器之后,您可以与路由器管理员联系(如果该路由器不在现场),或者将路由器恢复为完全正常的状态(如果您可以控制该路由器)。

方法 13:排查网关问题



如果在配置过程中收到以下错误消息,请确定默认网关是否和计算机的网络适配器位于同一逻辑网络中:

Your default gateway does not belong to one of the configured interfaces

将默认网关 IP 地址的网络 ID 部分与计算机网络适配器的网络 ID 进行比较。具体来说,即验证 IP 地址和子网掩码的“逻辑位”是否等于默认网关和子网掩码的“逻辑位”。

例如,某台计算机只有一个网络适配器,其 IP 地址配置为 172.16.27.139,子网掩码配置为 255.255.0.0,该计算机需要使用 172.16.y.z 形式的默认网关。此 IP 接口的网络 ID 为 172.16.0.0。