第4讲网络故障诊断的常用命令4.1Windows98/2000/XP环境下的Ping命令4.2Ipconfig/Winipcfg命令4.3显示网络连接信息的Netstat命令4.4解决NetBIOS名称问题的Nbtstat4.5跟踪网络连接的Tracert命令4.6测试路由器的Pathping命令4.7显示和修改地址解析协议Arp命令4.8案例分析4.1Windows98/2000/XP环境下的Ping命令在网络中Ping是一个十分强大的TCP/IP工具。它主要的功能是用来检测网络的连通情况和分析网络速度。1.Ping的命令的语法格式Ping命令的完整的语法格式如下:Ping[-t][-a][-ncount][-lsize][-f][-iTTL][-vTOS][-rcount][-scount][[-jhost-list]|[-khost-list]][-wtimeout]目标地址(IP或主机名)Ping命令的使用2.Ping的参数介绍如图3-2所示,从命令格式中可以看出它的复杂程序,Ping命令后面是它的执行参数,下面对其参数作详细的介绍。图3-2查看ping命令帮助Ping命令的使用-t:不间断地Ping指定计算机,直到管理员中断。可以通过Ping对方让对方返回给您的TTL值大小,粗略地判断目标系统类型是Windows系列还是UNIX/Linux系列。一般情况下Windows系列的系统返回的TTL值在100~130之间,而UNIX/Linux系列的系统返回的TTL值在240~255之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现:[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]DefaultTTL=dword:000000ffTTL是生存时间的意思,就是说这个ping的数据包能在网络上存在多少时间。当对网络上的主机进行ping操作的时候,本地机器会发出一个数据包,数据包经过一定数量的路由器传送到目的主机,但是由于很多的原因,一些数据包不能正常传送到目的主机,那如果不给这些数据包一个生存时间的话,这些数据包会一直在网络上传送,导致网络开销的增大。当数据包传送到一个路由器之后,TTL就自动减1,如果减到0了还是没有传送到目的主机,那么就自动丢失。默认情况下,Linux系统的TTL值为64或255,WindowsNT/2000/XP系统的TTL值为128,Windows98系统的TTL值为32,UNIX主机的TTL值为255。当不知道目的主机的操作系统的时候我们可以根据TTL来猜测,但是不一定100%准确,如果目的主机是windows,但是经过了比如75个路由器,那么TTL的返回值是128-75=53,那么你可能认为这个目的主机是Linux系统,但是一般不会经过那么多的路由器,所以通过TTL来判断目的主机的操作系统还是有一定的依据的。Ping命令的使用-a:将地址解析为计算机名。例如:ping–a172.16.0.135和ping172.16.0.135的不同,如图3-3所示。图3-3参数-a的使用-ncount:发送count指定的Echo(空)数据包数。在默认情况下,Ping将发送四个数据包。通过这个参数,我们可以定义发送的个数,这对衡量网络平均速度很有帮助。例如:ping-n60202.102.224.25可以测试发送对主机60个数据包的返回平均时间为多少,最快时间为多少,最慢时间为多少-lsize:指定发送到目标主机的数据包的大小。在默认的情况下Windows的Ping发送的数据包大小为32byt,我们也可以自已定义它的大小,但有一个大小的限制,就是最大只能发送65500byt。因为Windows系列的系统都有一个安全漏洞。当一次发送的数据包大于或等于65532byt时,将可能导致接收方计算机宕机。微软公司为了解决这一安全漏洞,限制了Ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其它参数以后危害依然非常强大,比如攻击者可以通过-t参数实施Dos攻击。例如:ping-l65500-t172.16.0.88Ping命令的使用-f:在数据包中发送“不要分段”标志。一般您所发送的数据包都会通过路由分段再发送给对方,加上此参数以后,路由就不会再分段处理。-iTTL:指定TTL值在对方的系统里停留的时间。此参数同样是帮助您检查网络运转情况的。-vTos:将“服务类型”字段设置为TOS指定的值。-rcount:在“记录路由”字段中记录传出和返回数据包的路由,在一般情况下,您发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定您想探测的经过的路由个数,不过限制在了9个,也就是说您只能跟踪到9个路由。在下面一段数据中,您可以看出,从笔者的计算机到202.102.224.25地址,从上到下通过的9个路由器的IP地址,如图3-4所示。图3-4参数-r的使用Ping命令的使用-scount:count指定的跃点数的时间。此参数和-r差不多,只是这个参数几乎不记录数据包返回所经过的路由,最多也只记录4个。用txt文本文件记录ping命令结果。如:Ping127.0.0.1-td:\test.txt4.2Ipconfig/Winipcfg命令利用Ipconfig和Winipcfg命令可以查看和修改网络中与TCP/IP协议有关的配置。这两个工具在Windows9x中都能使用,功能基本相同,只是Ipconfig是以DOS的字符形式显示,在Windows9x/2000/Xp中都可以使用;而Winipcfg则用图形界面显示,只能在Windows9x中使用。这里只具体介绍Ipconfig命令。1.使用格式ipconfig[/?|/all|/renew[adapter]|/release[adapter]|/flushdns|/displaydns|/registerdns|/showclassidadapter|/setclassidadapter[classid]]例如:在本地主机执行不带参数的Ipconfig命令。2.参数介绍/?:显示Ipconfig和格式和参数的英文说明。/all:显示所有的IP地址的配置信息。/release:释放指定的网络适配卡的IP地址。/renew:刷新配置。/flushdns:刷新和重置客户机解析程序缓存。/displaydns:显示和查看客户机解析程序缓存。/registerdns:续订DNS客户注册。/showclassid:在客户机上显示DHCP类别ID信息。/setclassid:客户机上设置DHCP类别ID信息。4.使用/all查看配置使用带/all参数的Ipconfig命令时,将给出所有接口的详细配置报告,我们可以了解当前计算机使用的网卡类型、主机的IP地址、子网掩码、路由器的地址、甚至包括任何已配置的串行端口和网络适配器的物理地址,如图3-6所示。如果IP地址是从DHCP服务器租用的,IpConfig将显示DHCP服务器的IP地址和租用地址预计失效的日期。图3-6参数/all的使用配置不正确的IP地址或子网掩码是网络配置的常见故障。其中配置不正确的IP地址有两种情况:(1)网段部分不正确,此时计算机由于和局域网并不处在同一个子网中,所以无法和局域网进行通信。(2)主机部分不正确,这时候很可能与另一主机配置的IP地址是相同的。这种故障只有当两台主机同时工作时才会出现,而且后联网的计算机将得不到在原先配置中的IP地址。只要其中一台主机的IP地址,该问题即能排除。当主机系统能到达远程主机但不能到达本地子网中的其他主机时,这表示子网掩码设置有问题,我们只需要修改子网掩码即可解决问题。Ipconfig/Winipcfg命令的使用4.ipconfig/release和ipconfig/renew这是两个附加选项,只能在向DHCP服务器租用其IP地址的计算机上起作用。如果我们输入ipconfig/release,那么所有接口的租用IP地址便重新交付给DHCP服务器(归还IP地址)。如果我们输入ipconfig/renew,那么本地计算机便设法与DHCP服务器取得联系,并租用一个IP地址。请注意,大多数情况下网卡将被重新赋予和以前所赋予的相同的IP地址。5./flushdns刷新和重置客户机解析程序缓存6.使用/registerdns续订DNS客户注册7.使用/displaydns显示和查看客户机解析程序缓存8.在客户机上显示DHCP类别ID信息9.在客户机上设置DHCP类别ID信息Ipconfig/Winipcfg命令的使用4.3显示网络连接信息的Netstat命令该命令用于显示活动的TCP连接、计算机侦听的端口、以太网统计信息、IP路由表、IPv4(对于IP、ICMP、TCP和UDP协议)统计信息以及IPv6(对于IPv6、ICMPv6、通过IPv6的TCP以及通过IPv6的UDP协议)统计信息。使用时如果不带参数,Netstat显示活动的TCP连接。Netstat命令1.使用格式Netstat[-a][-e][-n][-s][-pproto][-r][interval]2.参数介绍-a:显示所有活动的TCP连接以及计算机侦听的TCP和UDP端口。-e:显示以太网统计信息,如发送和接收的字节数、数据包数。该参数可以与-s结合使用。-n:以数字表格形式显示地址和端口。-s:显示每个协议的使用状态(包括TCP协议、UDP协议、IP协议)。-pproto:显示通过proto参数指定的协议的连接。proto参数可以是TCP、UDP或IP协议。-r:显示本机路由表的内容。interval:每隔interval秒重新显示一次选定的信息。按Ctrl+C停止重新显示统计信息。如果省略该参数,Netstat将只打印一次选定的信息。Netstat提供下列统计信息:(1)Proto:协议的名称(TCP或UDP)。(2)LocalAddress:本地计算机的IP地址和正在使用的端口号。如果不指定-n参数,就显示与IP地址和端口的名称对应的本地计算机名称。如果端口尚未建立,端口以星号(*)显示。(3)ForeignAddress:连接该插槽的远程计算机的IP地址和端口号码。如果不指定-n参数,就显示与IP地址和端口对应的名称。如果端口尚未建立,端口以星号(*)显示。(4)(state)表明TCP连接的状态。下面给出可能的状态:CLOSE_WAITCLOSEDESTABLISHEDFIN_WAIT_1FIN_WAIT_2LAST_ACKLISTENSYN_RECEIVEDSYN_SENDTIMED_WAIT4.4解决NetBIOS名称问题的Nbtstat该命令用于显示本地计算机和远程计算机的基于TCP/IP(NetBT)协议的NetBIOS统计资料、NetBIOS名称表和NetBIOS名称缓存。Nbtstat可以刷新NetBIOS名称缓存和注册的WindowsInternet名称服务(WINS)名称。使用不带参数的Nbtstat显示帮助。1.使用格式nbtstat[-aremotename][-AIPaddress][-c][-n][-r][-R][-RR][-s][-S][Interval]2.参数介绍-aremotename:显示远程计算机的NetBIOS名称表,其中,remotename是远程计算机的NetBIOS计算机名称。NetBIOS名称表是运行在该计算机上的应用程序使用的NetBIOS名称列表。-aIPaddress:显示远程计算机的NetBIOS名称表,其名称由远程计算机的IP地址指定(以小数点分隔)。-c:显示NetBIOS名称缓存内容、NetBIOS名称表及其解析的各个地址。-n:显示本地计算机的NetBIOS名称表。Registered中的状态表明该名称是通过广播或WINS服务器注册的