用Netdiag.exe解决TCP/IP连接故障

http://tech.ddvip.com   2007年07月22日    社区交流 收藏本文

内容摘要:这种修复功能发挥作用的途径是通过实施一系列的测试努力恢复由于客户端或者服务器的网络设置错误引起的网络连接问题。

  我们经常会使用Windows网络连接的“修复”功能修复网络连接。这种修复功能发挥作用的途径是通过实施一系列的测试努力恢复由于客户端或者服务器的网络设置错误引起的网络连接问题。客户端的问题包括DHCP设置或者解析器缓存的问题。服务器的问题包括WINS或者DNS名称注册。然而,这种修复功能有一些局限性,也就是:

  ·维修过程的结果不能存储下来以便以后进行评估或者做报告。

  ·在多宿主机上,维修过程必须要在每个网络连接上分开实施。

  ·维修过程实施的测试数量是有限的。

  使用Netdiag.exe能够克服这些局限性。Netdiag.exe是一种网络连接故障诊断工具,是Windows技术支持工具的一部分。Netdiag能够比维修过程做更广泛的和数量更多的测试。你还可以让Netdiag.exe输出一个文本文件,这样,你就能获得一个实施的测试和结果的记录。

  安装Netdiag

  你可以通过安装Windows技术支持工具来安装Netdiag。用鼠标双击SupportToolsSUPTOOLS.MSI就可以安装。在默认状态下,技术支持工具安装到%SystermDrive%Program FilesSupport Tools目录。但是,我发现把这些工具安装到%SystemDrive%Tools目录更方便,因为这些工具需要在命令行下运行。这样将使为了运行这些工具而输入这些工具的路径更简单。替代的方法是,如果你只要安装Netdiag,而不安装其它技术支持工具,你可以用鼠标双击SupportToolsSupport.cab文件,然后用鼠标双击Netdiag.exe以便仅安装这个工具。

  理解Netdiag

  Netdiag对本地系统的每一个网络适配器进行一系列的测试。一旦进行这些测试,Netdiag要进行一系列全球连接测试以便找到和解决连接问题。这些问题也许是本地系统以外的问题引起的。

  Netdiag对本地系统的网络适配器进行如下测试:

  ·Ndis

  ·Ipconfig

  ·Autonet

  ·DefGw

  ·NbtNm

  ·WINS

  一旦这些测试完成,Netdiag接下来将进行下面的一系列全球连接测试:

  ·Member

  ·NetBTTransports

  ·Autonet

  ·IpLoopBk

  ·DefGw

  ·NbtNm

  ·Winsock

  ·DNS

  ·Browser

  ·DsGetDc

  ·DcKust

  ·Trust

  ·Kerberos

  ·Ldap

  ·Bindings

  ·WAN

  ·Modem

  ·IPSec

  每一项测试的细节将采用下面的表格提供:

 

  测试名称

说明
Autonet 检查网络适配器是否在使用APIPA(自动专用IP地址)。
绑定 列出网络绑定,包括接口名称、下面和上面模块名称,指出这个绑定目前是否启用并且报告这个绑定的拥有者。
浏览器 列出浏览器服务和重新定向器的全部网络协议。
DcList 获得一个这个域名的域名控制器列表。
DefGw 用每一个配置的默认网关验证连接。
DNS 验证配置的DNS服务器的可用性并且验证客户端的DND注册。
DsGetDc 从目录服务中获得任何域名控制器的名称,然后获得PDC仿真器的名称。验证存储在本地安全认证中的域名GUID与存储在DC中的域名GUID是否一致。
IpConfig 逐个列出每一个网络适配器的TCP/IP设置。
IpLoopBk 查验每一个适配器的回送地址127.0.0.1 。
IPSec 检查Ipsec是否启用。如果启用,列出这台计算机的所有现用的IPsec 政策。
IPX 列出IPX统计(如果安装的话)
Kerberos 验证Kerberos身份识别软件包是否是最新的。
Ldap 联系所有可用的域名控制器并且确定哪一个LDAP身份识别协议正在使用。
成员 检查证实主要域名的细节,包括计算机的任务、域名和域名GUID。查看NetLogon 服务是否开始,向域名列表增加主要域名并且查询主要域名安全标识符。
调制解调器 为这个系统上的每一台调制解调器提供配置信息。
NbtNm 执行与nbtstat -n 指令类似的行动。也就是验证工作站服务名称<00>与计算机名称一致,并且验证Messenger =服务名称 <03> ,服务器服务名称<20>出现在所有的接口,并且所有这些名称都没有冲突。
Ndis 列出每一个网络适配器配置的细节,包括适配器名称、设置、媒体、GUID和统计。
NetBTTransports 列出NetBIOS over TCP/IP (NetBT)上的全部传输协议。
Netstat 列出当前TCP/IP连接和协议统计。
Netware 询问最近的Netware服务器(如果使用的话),了解当前的登录信息。
路由 列出在路由表中的全部静态路由,并且指出它们是否不变。
信赖 测试域名信赖关系,验证主要域名安全标识符是正确的。
WAN 总结当前正在使用的每一个COM端口的设置和状态。
WINS 验证配置的WINS服务器的可用性并且验证WINS客户端注册。
Winsock 显示WinSock服务可以使用的协议和端口。

  除了进行这些测试之外,Netdiag.exe还报告有关这个系统的如下信息:

  ·系统的NetBIOS名称

  ·系统的DNS名称

  ·系统总的信息

  ·安装的热补丁

  运行Netdiag

  运行Netdiag最简单的方法是没有任何参数。这将测试系统的每一个本地网络适配器,然后进行一系列全球连接测试。在Windows Server 2003成员服务器上运行这个指令输出的样本数据如下(热补丁列表已删除):

以下是引用片段:
  C:  ools
etdiag
  ...................................
  计算机名称:SRV
  DNS主机名称:SRV.contoso.com
  系统信息:MicrosoftWindowsServer2003R2(Build3790)
  处理器:Processor:x86Family15Model4Stepping1,GenuineIntel
  安装的热补丁列表:
  KB890046
  KB893756
  KB896358
  …
  KB925486
  Q147222
  Netcardqueriestest.......:Passed
  每个接口结果:

以下是引用片段:
  适配器:局域网连接器
  Netcardqueriestest...:Passed
  主机名称.........:SRV
  IP地址........:172.16.11.31
  子网掩码........:255.255.255.0
  默认网关......:172.16.11.1
  Dns服务器........:172.16.11.32
  AutoConfigurationresults......:Passed
  Defaultgatewaytest...:Passed
  NetBTnametest......:Passed
  [警告]:<00>'工作站服务',<03>'Messenger服务',<20>'WINS'名称至少有一个丢失了。
  WINSservicetest.....:Skipped
  这个接口没有WINS服务器配置。

  全球结果:

以下是引用片段:
  Domainmembershiptest......:Passed
  NetBTtransportstest.......:Passed
  ListofNetBttransportscurrentlyconfigured:
  NetBT_Tcpip_{64B5D4FF-0014-4CC2-BB8D-9FB0C67CB75E}
  1NetBttransportcurrentlyconfigured.
  Autonetaddresstest.......:Passed
  IPloopbackpingtest.......:Passed
  Defaultgatewaytest.......:Passed
  NetBTnametest..........:Passed
  [警告]你没有一个单个的接口连接<00>'工作站服务',<03>'Messenger服务',<20>'WINS'名称定义。
  Winsocktest...........:Passed
  DNStest.............:Passed
  RedirandBrowsertest......:Passed
  ListofNetBttransportscurrentlyboundtotheRedir
  NetBT_Tcpip_{64B5D4FF-0014-4CC2-BB8D-9FB0C67CB75E}
  Theredirisboundto1NetBttransport.
  ListofNetBttransportscurrentlyboundtothebrowser
  NetBT_Tcpip_{64B5D4FF-0014-4CC2-BB8D-9FB0C67CB75E}
  Thebrowserisboundto1NetBttransport.
  DCdiscoverytest.........:Passed
  DClisttest...........:Passed
  Trustrelationshiptest......:Passed
  Securechannelfordomain'CONTOSO'isto'DC-1A.contoso.com'.
  Kerberostest...........:Passed
  LDAPtest.............:Passed
  Bindingstest...........:Passed
  WANconfigurationtest......:Skipped
  Noactiveremoteaccessconnections.
  Modemdiagnosticstest......:Passed
  IPSecuritytest.........:Skipped
  备注:运行"netshipsecdynamicshow/?"可获得更详细的信息
  这个指令成功地完成了。

  注意,运行NbtNm测试可产生下面的结果:

以下是引用片段:
  NetBTnametest......:Passed
  [WARNING]Atleastoneofthe<00>'WorkStationService',<03>'MessengerService',<20>'WINS'namesismissing.
  这个警告确实是一个问题,因为在默认状态下,Messenger服务不在Windows Server 2003平台上运行,因此,没有为它注册的名称。

  你还可以使用其它方法运行Netdiag,特别是:

  ·Netdiag /q以安静的模式进行测试并且仅报告错误。

  ·Netdiag /v以冗长的模式进行测试并且提供额外的细节。

  ·Netdiag /test:test_name(s)运行标准测试,然后仅进行具体的测试。

  ·Netdiag /skip:test_name(s)除了具体指定的之外,在全球测试之后运行标准测试。(然而,某些测试不能跳过,包括Member, Ndis和NetBTTransports)

  ·Netdiag /fix实施全部标准的和全球测试,并且试图修复它发现的任何问题。

  例如,在上述系统产品上运行Netdiag /q测试可以得出如下结果:

以下是引用片段:
  C:  ools
etdiag/q
  ...................................
  ComputerName:SRV
  DNSHostName:SRV.contoso.com
  Systeminfo:MicrosoftWindowsServer2003R2(Build3790)
  Processor:x86Family15Model4Stepping1,GenuineIntel
  Listofinstalledhotfixes:
  KB890046
  KB893756
  KB896358
  …
  KB925486
  Q147222
  每个接口的结果:

以下是引用片段:
  适配器:局域网连接器
  主机名称.........:SRV
  IP地址........:172.16.11.31
  子网掩码........:255.255.255.0
  默认网关......:172.16.11.1
  Dns服务器........:172.16.11.32
  WINSservicetest.....:Skipped

  全球结果:

以下是引用片段:
  [警告]你没有一个单个的接口连接<00>'工作站服务',<03>'Messenger服务',<20>'WINS'名称定义。
  IPSecuritytest.........:Skipped 
  Thecommandcompletedsuccessfully
  更多的Netdiag例子:

  学习如何解释Netdiag输出的最佳方法是设法在各种测试环境下运行它。下面是不同环境下的几个例子和你能够从这个工具中得到的输出数据。这些情况是在一个Windows Server 2003域中的一台成员服务器上运行Netdiag得到的结果。为了仅强调这个工具报告的错误信息,这个输出数据进行了删节。

  1. 在域控制器离线时运行netdiag /q得到的输出结果:

  全球结果:

以下是引用片段:
  [警告]你没有一个单个的接口连接<00>'工作站服务',<03>'Messenger服务',<20>'WINS'名称定义。
  RedirandBrowsertest......:Failed
  [FATAL]Cannotsendmailslotmessageto'CONTOSO*MAILSLOTNETNETLOGON'viaredir.[ERROR_BAD_NETPATH]
  DCdiscoverytest.........:Failed
  [FATAL]CannotfindDCindomain'CONTOSO'.[ERROR_NO_SUCH_DOMAIN]
  DClisttest...........:Failed
  'CONTOSO':CannotfindDCtogetDClistfrom[testskipped].
  Trustrelationshiptest......:Failed
  [FATAL]Securechanneltodomain'CONTOSO'isbroken.
  [RPC_S_SERVER_UNAVAILABLE]
  Kerberostest...........:Skipped
  'CONTOSO':CannotfindDCtogetDClistfrom[testskipped].
  LDAPtest.............:Failed
  CannotfindDCtorunLDAPtestson.Theerroroccurredwas:The
  specifieddomaineitherdoesnotexistorcouldnotbecontacted.
  [WARNING]CannotfindDCindomain'CONTOSO'.
  [ERROR_NO_SUCH_DOMAIN]
  2.在这个系统设置错误的默认网关时运行netdiag /q得到的输出结果:

以下是引用片段:
  Defaultgatewaytest.......:Failed
  重要:连接不到任何网关,你没有通向任何其它网段的连接。如果你手工配置IP协议,那么你需要至少增加一个合法的网关。

以下是引用片段:
[警告]你没有一个单个的接口连接<00>'工作站服务',<03>'Messenger服务',<20>'WINS'名称定义。
DClisttest...........:Failed
 FailedtoenumerateDCsbyusingthebrowser.[ERROR_REQ_NOT_ACCEP]
  3.当计算机浏览器服务没有在这个系统上运行的时候运行netdiag /q得到的输出结果:

  全球结果:

以下是引用片段:
  [警告]你没有一个单个的接口连接<00>'工作站服务',<03>'Messenger服务',<20>'WINS'名称定义。
  DClisttest...........:Failed
  FailedtoenumerateDCsbyusingthebrowser.[NERR_ServiceNotInstalled]
  4.当系统启动时活动目录中的这个系统的计算机账户关闭的时候运行netdiag /q得到的输出结果:

以下是引用片段:
  [警告]你没有一个单个的接口连接<00>'工作站服务',<03>'Messenger服务',<20>'WINS'名称定义。
  Trustrelationshiptest......:Failed
  Cannottestsecurechannelfordomain'CONTOSO'toDC'DC-1A'.[ERROR_NO_LOGON_SERVERS]
  Kerberostest...........:Failed[FATAL]CannotgetticketcachefromKerberos.
  Theerroroccurredwas:(null)
  结论:

  Netdiag.exe是诊断Windows网络上网络连接问题的一个强大工具。我们鼓励这篇文章的读者试验和思考与上述例子类似的情况,以帮助他们在理解这个工具的能力和如何使用这个工具方面得到更多的经验。

来源:TechTarget    作者:Mitch Tulloch    责编:豆豆技术应用

正在加载评论...