分享

Windows下的命令行工具在网络故障检测中的应用

 LibraryOfKevin 2011-03-17
很多网络爱好者都知道,在Windows 2000和Windows 9x的命令提示符下可使用Windows系统自带的多种命令行网络故障检测工具,比如说我们最常用的ping。但大家在具体应用时,可能对这些命令行工具 的具体含义,以及命令行后面可以使用的种种参数还缺乏深入的了解。在本文中,笔者将采用实例分析的方式,对Windows 2000和Windows 9X的命令行工具的使用方法及其重要参数进行介绍。

    Windows 2000所包含的命令行网络故障检测工具有13个,分别是Ping、PathPing、tracert、nbtstat、netstat、 nslookup、 ipconfig、lpq、lpq、route、arp、netsh和shutdown。本文中,一些大家耳熟能详的工具就只简单地做一下介绍,应用比较 深一点的我们将采用实例剖析的方式来给大家讲解。

    1、ping

    作用:验证IP的配置情况并测试IP的连通性。该命令只有在安装了下CP/IP协议后才可使用。
    主要参数:Ping[-t][-a][-r count][-f][-i ttl][-w timeout]
    远程计算机的IP地址或主机名(如192.168.0.1或hero)
    说明:-t Ping指定的计算机直至中断。
    -a ping目的主机的IP地址,并将IP地址解析成主机名。
    -f ping所发送的数据包中加入了“不要分段”的标志,使数据包不能被网关分段。
    -r count Ping目的主机时设立“记录路由”字段,用来记录传出和返回数据包的路由,count的值可在1—9中选择, 即最多可以记录9台路由器的IP地址。
    -i ttl ping目的主机时指定所发送数据包的“生存时间”,即所发送的数据包经过多长时间后若无响应就被网络自动抛弃。
    -w timeout 默认情况下,在显示“请求超时”之前,ping等待数据包返回的时间为1000毫秒。若Ping特殊的远程地址,可用此参数适当延长等待时间。
      Ping命令在Windows 9X,Windows 2000, Windows XP下均可使用。

    2、pathping

    作用:跟踪数据包到达目标所采用的路由,并显示路径中每个路由器的数据包损失的信息。该命令只有在安装了TCP/IP协议后才可使用。
    主要参数:PathPing[-n][-h][-P][-q][-w]远程计算机的IP地址或主机名
    说明:-n 不将IP地址解析成主机名。
    -h 指定与目的主机之间需要统计的最大跃点数。跃点就是每一台路由器的IP地址。
    -p 指定发送数据包之间等待的毫秒数。
    -q 指定在每一个跃点进行多少次查询以便于统计。
    -w 与ping的-w功能类似。
    PathPing在Windows 9x中还没提供,是Windows 2000中新加入的。它结合了Ping和tracert所共有的一些功能,可以对数据包进行跟踪,并且在一段时间内探测路由上每个跃点,可以显示数据包的延迟与丢失。

    3、tracert

    作用:跟踪数据包到达目标所采用的路由,功能与Pathping类似。但tracert亦可在Windows 9X下使用,而pathping则只适用于Windows 2000。
    主要参数:trscert[-h][-W][-j]远程计算机的IP地址或主机名
    说明:-h和-w的作用与psthping中的参数类似。
    -i 可用来指定发送的数据包所采用的路径中要经过的路由器的列表。在解决网络问题时常常指定多条路径使数据包到达同一个点从而判断究竟是哪一个路由器出了问题。

    下面我们来看一个使用trscert来追踪路由转发数据包,解决网络故障的实例。
    网络情况如图1所示.

    有两个网段 一个IP地址为10.0.0.1—10.0.0.6,子网掩码为255.0.0.0;另一个为192.168.0.1—192.168.0.5,子网掩码 为255.255.255.0;均为手动指定静态IP地址,主机与主机之间均为对等关系。很明显两个网段不在同一个子网中,必须使用路由器实现两网段中不 同主机之间的通信。现采用一台高性能的PC机,装上Windows 2000 Server,配置成独立的服务器,利用Windows 2000 Server自带的路由服务,安装两块网卡,绑定不同的IP地址,提供两个子网接口,一个为10. 0.0.1,用来转发10.0.0.2—10.0.0.6的数据包 一个为192.168.0.1,用来转发192.168.0.2—192.168.0.5的数据包。

    故障表现:10.0.0.2与192.168.0.2不能互相通信。

    解决方法:首先检查这两台计算机有天配置TCP/IP,只有TCP/IP才具有路由功能。随后看两台主机的TCP/IP是否安装正确,使用本文介绍的 Ping命令,键入Ping 127.0.0.1(127.0.0.1为TCP/IP所特有的自环地址),得到“repiy from1x 0.0.1 ……”的回应,收到回应的数据包,说明TCP/IP安装正确;再ping本机的网卡IP,收到回应的数据包,说明TCP/IP已绑定到网卡;然后在 10.0.0. 2上Ping192.168.0.2,此时显示“destination host unreachable”,这说明此网络地址不可到达,而ping本网段的其他主机均有回应。由此可见,问题集中在主机与路由器的通信上 路由器没有把来自10.0. 0.2的数据包转发到另一个子网中去。这种情况有可能是传输介质的故障,但可能性更大的是路由器配置不当。如果是路由器配置不当,那问题又出在哪一个网络 接口呢?或者两个网络接口都有问题7为了进一步检测,使用我们刚刚提到的tracert命令,对发送至路由器的数据包进行跟踪,在10.0.0. 2的命令提示符下键入trscert192.168.0.2,得到结果为:

    Tracing route to 192.168.0.2
    Over a maximum over 5 of 30 hops:
    0 10.0.0.2
    1 10.0.0.1
    Destination net unreachable

    由此可见,数据包到达了第一个网络接口10.0.0.1,但没有被第二个网络接口192.168.0.2转发,至少可以断定第二个网络接口存在问题。通过更换第二块网卡,重新绑定192.168.0.1,再次跟踪数据包,得到结果为:

    Tracing route to 192.168.0.2
    Over a maximum over 5 of 30 hops:
    0 10.0.0.2
    1 10.0.0.1
    2 192.168.0.1
    3 192.168.0.2
    Trace complete

    数据包成功地经过两个跃点,到达目的地,随后两机之间再用PathPing检验,结果如下:

    Pathping 192.168.0.2 over a maximum over 5 of 30 hops:
    0 10.0.0.2
    1 10.0.0.1
    2 192.168.0.1
    3 192.168.0.2
    computing statiatcs for 450 seconds:
    Source to Here This Node/Link
    Hop RTT Lost/Sent=Pct Lost/Sent=Pct Address
    0 10.0.0.2 0/100=0%
    1 101ms 0/100=0% 0/100% 10.0.0.1 0/100=0%
    2 121ms 0/100=0% 0/100% 192.168.0.1 0/100=0%
    3 130ms 0/100=0% 0/100% 192.168.0.2 0/100=0%
    Trace complete

    Pathping首先显示出路由器正常工作的情况,均能收到回应。随后给出数据包一路上经过节点的时间统计,没有明显的延迟或数据包的丢失,证明两机之间已可互传数据,网络故障排除。

    4、nbtstat

    作用:显示本地NetBIOS名称表与NeIBIOS名称缓存, 该命令只有在安装了TCP/IP协议后才可使用。
    主要参数:nbtstat[-n][-c][-s][-a]
    说明:-n 列出本地NetBIOS名称, 给出信息中的“已注册就是指该名称已被广播或已被WINS注册。
    -c 列出NetBIOS名称缓存的内容并指出每个名称的IP地址。NetBIOS名称高速缓存用于存放与本计算机最近进行通信的其他计算机的NetBIOS名 称和IP地址。实际上,如果想通过nbtstat查看最近有谁通过“网络邻居”的方式访问了万机上的资源,这个参数就变得尤为有用。
    s 显示客户端与服务端的对话并列出双方NlP地址:
    -s 通过IP显示另一台计算机的物理地址和名字列表你所显示纳内容就像对方计算机自己运行nbtstat -n —样。
    nbtstat除了可以统计出计算机的NetBIOS名称和计算机所属的工作组之外,还可以显示计算机网卡的MAC地址。如果我们的计算机IP地址是192.168.0.1,键入nbtstat —a192.168.0.1 可以看到结果如下:

    NetBIOS Remote Machine Name Table
    Name                   Type            Status
    HERO               <00> UNQUE      Registered
    WORKGROUP        <00> GROU       Registered
    HERO               <03> UNIQUP      Registered
    HERO               <20> UNQUE      Registered
    WORKGROUP       <1E> GROUP       Registered
    WORKGROUP       <1D> UNIQUE      Registered
    _MSBROWSE_       <01> GROUP       Registered
    MAC Address=52-54-AB-10-CA-B3

    可以看到,前两行就是本地计算机的NetBIOS名称以及所届的工作组,最后一行就是计算机网卡纳MAC地址。而MAC地址在某些网络应用方面,如使用交 换机在同一IP网段内划分VLAN、创建无盘网络终端的远程启动数据库等等,就显得尤为重要。此时,获取MAC地址就成为必不可少的步骤。

    接下来,我们再通过一个网络检测实例看看nbtstat在其他方面的应用。
    网络情况如图2所示:

    在一个局域网中,共有三台工作站与一台服务器,IP地址为10.0.0.1—10. 0.0.4,服务器可以提供局域网内的Web服务,通过键入服务器的IP地址10.0.0.1可以看到服务器所提供的局域网内部网站的网页。同时,局域网 采用一个全向QLl680(自带路由功能)的ADSL Modem共享Internet出口带宽。由这一个AOSL Modem负责Intsrnet与内网边界的数据包转发工作。

    故障表现:现在局域网内所有计算机共享ADSL Modem出口带宽,连接到Internet正常,而且局域网内各台计算机之间的连接也正常,可以互传文件。但是从浏览器在地址栏中输入 httP://10.0.0.1企图浏览局域网Web服务器网页时,要求输入用户名和密码,而我们设定的Web服务是允许匿名访问的。键入Web服务器管 理员的账号与密码, 系统提示无效,浏览不到服务器的Web页面。

    解决方法:在确定了Web服务器权限设置无误的情况下,查看服务器事件日志,发现有一条警告信息:系统检测到网络中IP地址10.0.0.1与网络硬件地 址00:90:04.E2:28:78有冲突,本机接口已经禁用。然而键入Pingl0.0.0.1,却能收到正常的返回数据包。很明显,根据服务器的日 志判断,说明网络上某台设备的IP地址与服务器的IP地址有;中突,然而通过ping无法检测到此台设备究竟在网络中哪一个位置。使用我们刚刚介绍的 nbtstat,键入nbtstat —a 10.0.0.1看看网络上这一台IP地址;中突的设备究竟主机名是什么,属于哪一个工作组。然而得到的回答却是host not found。

    由以上结果,故障已经逐步缩小了范围。对于冲突的网络设备,由于检测不到它的NetBIOS名与所届的工作组,而网络中各台计算机又确定连接无故障的情况 下,问题就集中在了ADSL Modem上。查阅全向QL 1680的设置资料,发现这一款ADSL Modem提供了Web页面的管理方式, 我们可以通过浏览器来设置QLl680的参数,但是这个Web服务器却不能匿名访问,同时,这一台QL 1680内置的IP地址也是10.0.0.1,因此,当我们在浏览器的地址栏中输入http://10.0.0.1时QLl680默认给出了它的管理界 面,导致我们局域网内部的Web服务器不能发挥作用,在把QL 1680的内置IP地址改为10.0.0.220之后,网络故障排除。    nbtstat命令在Windows 9x,Windows 2000,Windows XP下均可使用。

    5、netstat

    作用:显示当前TCP/IP网络连接,并统计会话信息。该命令只有在安装了TCP/IP协议后才可使用。
    主要参数:netstat[-s][-s][P协议名][-r]
    说明:-s显示所有连接与侦听端口。
    -s显示每个协议的统计。默认情况下显示TCP.UDP,ICMP,IP的统计。
    -P协议名 显示由“协议名“指定的协议的连接,可与—s配合使用。
    -r显示路由表的内容。
    -n以数字格式显示地址和端口号(而不是尝试查找目标主机名称)。
    netstat可以用来查看目前主机与网络的连接情况,防止不安全的外部网络连接。我们可以键入netstat—an同时使用“a”和“n”两个参数来查看端口的统计信息。
    举例来说,网络中一台主机使用。etstst—an统计出的结果如下
    Active Connections
    Proto local Address          Foreign Address         State
    TCP   hero:nbsession          HERO:0                 LISTENING
    TCP   hero:1158              HERO:0                 LISTENING
    TCP   hero:1071    msgr—cs158.msgr.hotmail.com.1863    ESTABLISHED      
    TCP   hero:15951             HERO:0                 LISTENING
    TCP   hero:1399         207.188.24.150.80              CLOSE_WAIT
    TCP   hero:138               HERO:0                 LISTENING
    TCP   hero:nbsession          HERO:0                 LISTENING
    TCP   hero:10385             HERO:0                 LISTENING
    UDP   hero:4000              *: *
    UDP   hero:nbdatagram         *: *
    UDP   hero:1072              *: *

    由这个统计列表,计算机与外部网络连接的端口开放情况就可一目了然。其中Active Connections是指当前本机活动连接,Proto是指连接使用的协议名称,Local Address是本地计算机的IP地址和连接正在使用的端口号,Foreign Address是连接该端口的远程计算机的IP地址和端口号,State则是表明TCP连接的状态UDP连接则没有。ESTABLlSHED表示端口与网 络外部的连接已经建立,CLOSE_WAIT表示端口暂时关闭,而LISTENING则表示此端口已经准备就绪,正在监听外部网络发出的连接请求 等待与外部网络连接。如果我们发现自己的计算机上打开了值得怀疑的端口,就要当心。就事我们看到的这台计算机端口统计来说它的138端口处在监听状态,很 容易被不怀好意的人利用网络共享的工具来入侵计算机的共享资源。
    netstat命令在Windows 9x,Windows 2000,Windows XP下均可使用。

    6、nslookup

    作用:诊断域名服务器是否能正常工作。该命令只有在安装了TCP/IP协议后才可使用。
    说明:nslookup后若键入IP地址,则向默认的域名服务器查找此主机的信息,若此主机记录为A或PTR则返回主机名;若键入主机名(如hero)则 在当前域中向域名服务器要求解析此主机的IP地址;若要解析不在当前域的计算机,则须键入域名(如hero.com.cn)。
    具体如何应用nslookup呢?我们来看一个利用nslookup来检测DNS服务器的实例。

    网络情况如图3所示:

    在此局域网中,已经架设好了一个DNS服务器,主要为网络中各台主机提供公司内部网站域名www.的解析。网站Web服务器的IP地址为192.168.0.1,这是我们平时用得比较多的正向解析功能。
    检测过程 :在命令提示符下键入nslookup www. ,回车之后即可看到如下结果:
    Server: linlin
    Address: 192.168.0.5
    Name: http://www./
    Address: 192.168.0.1
    以上结果显示,正在工作的DNS服务器的主机名为linlin它的IP地址是192.168.0.5,而域名www.所对应的IP 地址为192.168.0.1。那么,在检测到DNS服务器linlin已经能顺利实现正向解析的情况下,我们往往还要进一步测试它的反向解析功能,反向 解析就是把IP地址解析为域名的一种服务。在本例中,我们就是要检测DNS服务器能否把IP地址192.168.0.1反向解析为域名 www.。在命令提示下键入,nslookup 192.168.0.1得到结果如下:

    Server: linlin
    Address: 192.168.0.5
    Name: http://www./
    Address: 192.168.0.1

    这说明,DNS服务器linlin的反向解析功能也正常。
    然而,有的时候我们键入nslookup www.却出现如下结果:

    Server: linlin
    Address: 192.168.0.5
    ***linlin can’t find http://www./; Non-existent domain

    这种情况说明网络中DNS服务器linlin在工作,却不能实现域名www.的正确解析。此时, 要分析DNS服务器的配置情况,看看是否www.这一条域名对应的IP地址记录已经添加到了DNS的数据库中。
    还有的时候,我们键入nslookup www.,会出现如下结果:
    ***Can’t find server name for domain: No response from server
    ***Can’t find http://www./; Non-existent domain

    这时,说明测试主机在目前的网络中,根本没有找到可以使用的DNS服务器。此时,我们要对整个网络的连通性作全面的检测,看看当前主机是否可以与DNS服 务器正常连通。还要检查DNS服务器是否处于正常工作状态采用逐步排错的方法,找出DNS服务不能启动的根源。
    nslookup命令只能在Windows 2000/XP下使用。

    7、ipconfig

    作用:显示本地主机的IP地址配置。该命令只有在安装了TCP/IP协议才可使用。
    主要参数:ipconfig[/all][/ernew适配器名称][/release网络适配器名称]
    说明:/all 显示IP配置的完整信息。
    /renew网络配器名称,此命令只在DHCP的客户机上可用,作用是更新DHCP服务器分配给客户机的配置参数。适配器名称可由ipconfig/all获得。
    /release适配器名称 此命令只在DHCP的客户机上可用,作用是禁用客户机所得到的DHCP配置参数,这样一来,客户机就不受DHCP服务器所分配的网络参数的约束了。
    ipoconfig常用来检测DHCP工作站的IP地址分配是否正确当服务器上的DHCP服务开始启动,要看一下工作站是否接受到了DHCP地址池中分配过来的IP地址,只需在命令行下键入ipoconfig/all就全清楚了。
    poconfig命令在Windows 9x、Windows 2000、WindowXP下均可使用。

    8、lpq

    作用:获得连接到网络中的打印机的信息。
    主要参数:[-s][-P][-I]
    说明:-s 连接打印机的主机名称或者IP地址
    -P 打印机名称
    -I 所指定的打印机的完整信息。

     9、lpr

    作用:把打印任务发送到网络中的打印机。
    主要参数:[-S][-P][-J]
    说明:-S 连接打印机的主机名称或者IP地址
    -P 打印机名称
    -J 确定打印任务的名称
    显而易见,lpq与lpr是关联使用的两个命令。可以用在需要使用网络打印机的场合。下面,我们来看一个运用这两个命令来使用网络打印机的实例。

    网络情况,如图4所示:

    在此局域网中,打印服务器的主机名为linlin,IP地址为10.0.0.5,客户机需要将自己的两个文本文件a.txt与b.txt提交到网络打印机去打印。
    键入以下命令:
    Ipr-S IinIin -P Canon priner -J task a.txt b.txt 这个命令的含义是什么呢?把打印任务命名为tesk 送到打印服务器linlin,与之相连的打印机名称为Canon printer在这一个打印队列中将要打印两个文档,分别是a.txt与b.txt。
    由以上可见, 在把文件送到打印服务器打印之前,必须了解足够的打印服务器相关信息。如果不清楚打印服务器的相关信息,甚至不知道打印机是否已经启用。那么,可以用lpq命令来查询。命令实例如下:
    Ipr -S 10.O.O.5 -P Canon printer
    在使用lpq与lpr的时候要注意-s, -P均为大写, 然而附带的参数-1却是小写。
    lpq与lpr命令只能在Windows 2000/×P下使用。

    10、route

    作用:显示或修改本地路由表。该命令只有在安装了TCP/IP协议后才可使用。
    主要参数:route[-f][-p]操作符目的主机IP地址子网掩码网关
    说明:-f 将路由表清零
-    P 此参数与add操作符一起使用,使路由在系统引导程序之间长久存在。而在默认情况下,系统重新启动时不保留路由。
    操作符:add    添加路由
    delete 删除路由
    change 更改路由
    print 打印路由
    route在Windows中用得最多的场合就是用来管理静态路由。出于Windows 2000 Server自带了路由功能的服务,因此可以用route来设置路由表。我们用一个管理路由的实例来看看route的应用。

    网络情况如图5所示:

    有三个网段,IP地址分别是10.0.0.1—10.0. 0.5 192.168.0.1—192.168.0.10 172.16.0.1—172.16.0.5。网段之间采用Windows 2000 Server架设的软件路由器互联。我们知道 路由器可以实现网段之间的寻址功能,当下一个网段仍然没有包含数据包的目的地址,路由器可以把数据包转发到下一个网段的网关,由以后的路由器继续寻址并转 发数据包。如图中所示的那样,如果我们要让10.0.0.2的计算机向172.16.0.2的计算机取得联系。就要告诉第一台路由器第三个网段的地址,也 要告诉第二台路由器第—个网段的地址。这就是“静态路由器”路径由我们事先设计好路由表也由我们手动来更新。而route命令此时就派上了用场。

    解决方案:在第一台路由器中可以找到第一个网段的网关IP地址是10. 0. 0.1我们要在路由表中加入第三个网段的网络地址172.16.0.0(注意:这是网络号,不是主机IP地址,因此最后一位是0)。按照前文所述的 route命令规则。我们键入如下命令

    route add l72.16.0.0mask255.255.10.0.0.1 metric 1
    最后一位metric是跃点数, 我们在此选取跃点数1。
    同理,在第二台路由器中也要找到第三个网段的网关172.168.0.1,添加第一个网段的网络地址10.0.0.0键入命令:
    route add l0.0.0.0 mask 255.0.0.0 172.16.0.1 metric 1
    然后可以键入route print命令查看蹈由表的更新情况能够发现路出表中已经添加了新的网络路径。加入要删除这一条路径的话,只需键入
    route delete 172.16.0.0
    route delete 10.0.0.0
    这样一来,三个网段已经互相连通,两台路由器已经被我们手动指定好网络路径。那就是10.0.0.0-192.168.0.0 172.16.0.0,而且这一条网络路径是双向的无论数据包要到达三个网段中任何一个网段路由器都可以将它们转发必要时,可以一个路由器接一个路由器地 传送数据包。
    route命令只能在Windows 2000/XP下使用。

11、arp
    作用:显示并修改地址解析协议(arp)的缓存表,也就是所用到的将IP地址解析成本地主机物理地址的翻译表。
    主要参数:arp [-a] [-d] [-s]
    说明:-a  显示arp翻译表
    -d  目的主机IP地址  删除指定的arp项
    -s  目的主机IP地址  指定物理地址  指定物理地址与IP地址关联
    arp命令相对而言比上期介绍的命令要难懂,为了便于理解,我们先来看一看网络通信过程的一些细节问题。
    在以太网(Ethernet)中,一个网络设备要和另一个网络设备进行直接通信,除了知道目标设备的网络层逻辑地址(如IP地址)外,还要知道目标设备的 第二层物理地址(MAC地址)。arp协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。网络设备通过arp 表在缓存中保存IP与MAC地址的映射信息。在一次arp的请求与响应过程中,通信双方都把对方的MAC地址与IP地址的对应关系保存在各自的arp表 中,以在后续的通信中使用。arp表使用老化机制,删除在一段时间内没有使用过的IP与MAC地址的映射关系。那么,arp命令如何管理arp协议的缓存 表呢?我们还是由一个具体的实例入手来看一看。
网络情况如图6所示:

图6

    在局域网中两台计算机要实现互相访问,并且还要通过网关同Internet保持联系。
检测步骤:判断两台主机是否可以保持联系,我们已经知道可以利用ping来检测,看看是否有数据包回复。同时也可以在命令行中键入arp -a,结果如下:
    Interface: 10.0.0.220 on Interface 0x2000003
    Internet Address   Physical Address        Type
    10.0.0.2        00-07-53-00-bf-82   dynamic
    10.0.0.5        00-76-17-00-ad-66   dynamic
    显然,双方主机的MAC地址已经互相交换了arp的缓存表,并且可以互相通信。如果只能看到自己的MAC地址,则说明网络存在连通问题,数据包不可到达。 但还有一种情况,那就是一方可以看到自己的arp缓存表保存了通信双方的MAC地址,而另一方的arp缓存表却没有保存,双方也不能够通信。
    例如我们在A主机上键入 arp -a ,结果如下:
    Interface: 10.0.0.220 on Interface 0x2000003
    Internet Address   Physical Address         Type
    10.0.0.2        00-07-53-00-bf-82    dynamic
    10.0.0.5        00-76-17-00-ad-66    dynamic
    在A主机上ping一下B主机,显示结果是“Request timed out”(请求超时)。
    随后我们在B主机上键入 arp -a ,结果如下:
    Interface: 10.0.0.220 on Interface 0x2000003
    Internet Address      Physical Address        Type
    10.0.0.5           00-76-17-00-ad-66    dynamic
    在A主机上ping一下B主机,显示结果是“Destination host unreachable”(目标不可到达)。
    跟据前文我们对arp协议在双机通信中所起作用的分析,可以断定B数据包无法到达A,而A的数据包却可以到B,同时A通过arp协议获得了B的MAC地 址,然而却收不到B发回的Echo Reply报文,所以显示网络超时。毫无疑问,双方的网络连通性不存在问题,因为已经有一方获得了对方的MAC地址;有问题的是B的子网掩码,由于B的子 网掩码设置错误,使得B误以为A不在自己的网段中。将B的子网掩码改正之后,网络故障即可排除。
    还要提到的一点是,当我们利用缺省网关同远程主机通信时,我们不会获得远程主机的MAC地址,而是把IP包发向缺省网关,由网关对IP包完成转发过程。如 果源主机没有缺省网关MAC地址的缓存记录,它就会通过arp协议获取网关的MAC地址,因此arp协议的工作范围只局限于我们所在的网段。
    arp命令在Windows 9x、Windows 2000、Windows XP下均可使用。

    12、netsh
    从Windows 2000开始,netsh提供了一系列脚本配置实用工具,本文在此仅通过一个实例来提示读者如何通过netsh命令来快速切换不同网络环境的配置参数。
    作为网络管理员或者移动办公的用户,我们都会有这样的经验,自己的电脑往往要在不同的网络环境下使用,如此一来,IP地址、子网掩码、网关、DNS等重要 的网络参数都要不定期地调整,很是令人心烦。到了Windows 2000/XP的环境下,不论检测网络情况还是切换网络配置,都可以利用netsh命令行工具方便快捷地实现。
    网络检测的实例如下:我们有一台计算机,IP为192.168.0.2,子网掩码为255.255.255.0,默认网关为192.168.0.1, DNS服务器为192.168.0.254,由于工作的需要,我们必须使用netsh命令把它切换到另一个网络环境中,相应的IP为10.0.0.2,子 网掩码为255.0.0.0,默认网关是10.0.0.1,DNS服务器为10.0.0.254。
    首先我们打开“程序”→“附件”→“命令提示符”,在C:>后面键入netsh,切换到netsh的脚本执行环境。随后执行以下命令(括号内为命令执行的含义注释):
    C:>netsh
    netsh>interface       (进入网络配置的脚本环境)
    interface>ip          (查看ip的配置)
    interface ip>dump     (检测ip配置的详细情况)
    # --------------------------------
    # 接口IP配置
    # -------------------------------
    pushd interface ip
    # “本地连接”的接口IP配置
    set address name = “本地连接” source = static addr = 192.168.0.2 mask = 255.255.255.0
    set address name = “本地连接” gateway = 192.168.0.1 gwmetric = 1
    set dns name = “本地连接” source = static addr = 192.168.0.254
    set wins name = “本地连接” source = static addr = none
    popd
    # 接口 ip 配置结束
    从显示结果我们可以看出,网络配置无误。假如我们由于工作的需要,譬如说,要在网络中设置不同IP地址的虚拟主机,这样就需要在这个网卡上再绑定一个IP地址,如 192.168.0.10,此时该如何操作呢?只需接着键入以下命令:
    interface ip>add address "Local Area Connection" 192.168.0.10  255.255.255.0
    即可回到我们前文所提出的要求,现在我们要用netsh实现在两种不同网络条件下的网络参数的切换。
    第一步,我们要保存当前的网络设置情况,把它保存为一个文本文件:
    interface ip>exit (退出网络检侧)
    C:>netsh -c interface ip dump >c:interface.txt
    这条命令的功能是把网络配置保存在c:interface.txt文件中。这个文件非常重要,待会儿我们还会用得着。
    第二步,打开interface.txt,修改其中的IP地址、子网掩码、网关、DNS(如图7所示)。


 图7

    修改的时候注意保持原文件的格式,不要随意空格或者回车。然后将修改过的文件保存为interface2.txt
    第三步,导入符合新的网络环境的配置文件,即可实现网络配置的切换:
    C:>netsh -f interface2.txt
    这样一来,只需一行命令,我们已经把网络设置整个改变了。同理,如果想变回原来的网络设置,只需执行:
    C:>netsh -f interface.txt
    由此可见,只要网络配置的文本文件不丢失,我们就可以轻易地实现在网络环境中修改网络配置参数,netsh的高效便捷在这里得到了充分的体现。
    netsh命令只能在Windows 2000/XP下使用。

    13、shutdown
    shutdown是Windows XP中所独有的无人值守自动关机命令。
    主要参数:shutdown [-i] [-l] [-s] [-r] [-a] [-f] [-m] [ComputerName] [-t xx] [-c "message"] [-d[u][p]:xx:yy]
    说明:
    -i:显示图形界面的关机选项,默认关闭的计算机为本地计算机,但如果Windows XP开启了活动目录服务,就可以使用“浏览”功能来指定域中需要关闭的远程计算机。
    -l:注销本地计算机的当前用户。
    -s:关闭本地计算机,默认等待时间为30秒。
    -r:关闭之后重新启动本地计算机。
    -a:撤销关闭命令。
    -f:制关闭正在运行的应用程序而不显示警告。
    -m [ComputerName]:指定局域网内要进行操作的远程计算机,这个参数必须和-s或-r配合使用。举例来说,在局域网内有一台名字为 “linlin”的计算机,我们在本地机上键入shutdown -s -m linlin 即可实现对“linlin”的远程关机,无论“linlin”是工作组的成员还是域成员均可。但是,“linlin”的操作系统必须是Windows 2000/XP,我们才能在本地机上对其进行远程关机,若是Windows 9x则无效。
    -t xx:将用于系统关闭的定时器设置为 xx 秒。
    -c "message":指定将在“系统关闭”窗口中的“消息”区域显示的消息。最多可以使用 127 个字符。引号中必须包含消息。
    -d[u][p]:xx:yy:列出系统关闭的原因代码,这个参数一般用户很少使用。
要 提醒大家注意的是,当我们在使用shutdown -s -m linlin这样的办法来关闭远程计算机时,往往会得到“拒绝访问”这样的警告。这是因为shutdown向“linlin”发出关机命令时,采用的是 Guest权限对“linlin”进行操作,要使得操作有效,我们必须:
    1、在“linlin”上打开“管理工具”→“计算机管理”→“本地用户和组”→“用户”,启动Guest帐户,使之有效(如图8所示)。


 图8

    2、单击“开始”按钮,选择“运行”,在对话框中输入“gpedit.msc”,打开“组策略编辑器”。随后在组策略窗口的左窗格中打开“计算机配置”→ “Windows设置”→“安全设置”→“本地策略”→“用户权力指派”,找到“从远端强制关机”,选择“属性”,可以看到默认只有 “Administrators”组的成员才有权从远程关机;单击对话框下方的“添加用户或组”按钮,然后在新弹出的对话框中输入“Guest”,确定以 后即可使得Guest也可以对计算机进行远程操作(如图9所示)。


 图9

    shutdown只在Windows XP中才具有,但它是一个外部命令(其对应文件为Windowssystem32shutdown.exe),我们只要把它复制到Windows 2000的机器上,在装有Windows 2000系统的机器之间便也能相互实现远程关机。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多