转贴自:不详
作为一个网管,肯定会遇到各种各样的网络故障的困扰,然而一个庞大的网络,节点有时是四处分布,遍布整栋甚至于几栋或几个不同的地方,如没有网络测试工具那困难是可想而知的。当然肯定有专门的测试工具,一般是硬件,价格也相当昂贵,一个中小型企业或家庭一般是不太可能花如此巨资就为了解决这些网络故障。其实在我的操作系统中也内置了一些非常有用的软件网络测试工具,如果能使用得当,并掌握一定的测试技巧一般来说是完全可以满足一般需求的,有的甚至被黑客作为黑客工具哩!这些工具虽然不能秒之为专业的黑客工具,修正有许多黑客工具软件也是基于这些内置的网络测试软件而编制、改写的。下面就这几个工具结合实例作一简介,希望对那些还未掌握这几种工具的朋友有一些帮助!
一、Ping
相信玩过网络的人都会对“Ping”这个命令有所了解或耳闻。Ping命令是Windows9X/NT中集成的一个专用于TCP/IP协议的测试工具,ping命令是用于查看网络上的主机是否在工作,它是通过向该主机发送ICMP ECHO_REQUEST包进行测试而达到目的的。一般凡是应用TCP/IP协议的局域或广域网络,不管你是内部只有几台电脑的家庭、办公室局域网,还是校园网、企业网甚至Internet国际互联网络,当客户端与客户端之间无法正常进行访问或者网络工作出现各种不稳定的情况时,建议大家一定要先试试用Ping这个命令来测试一下网络的通信是否正常,多数时候是可以一次奏效的。
Ping是测试网络联接状况以及信息包发送和接收状况非常有用的工具,是网络测试最常用的命令。Ping向目标主机(地址)发送一个回送请求数据包,要求目标主机收到请求后给予答复,从而判断网络的响应时间和本机是否与目标主机(地址)联通。如果执行Ping不成功,则可以预测故障出现在以下几个方面:网线故障,网络适配器配置不正确,IP地址不正确。如果执行Ping成功而网络仍无法使用,那么问题很可能出在网络系统的软件配置方面,Ping成功只能保证本机与目标主机间存在一条连通的物理路径。
1.Ping命令的语法格式
ping命令看似小小的一个工具,但它带有许多参数,要完全掌握它的使用方法还真不容易,要达到熟练使用则更是难下加难,但不管怎样我们还得来看看它的真面目,首先我们还是从最基本的命令格式入手吧!
ping命令的完整格式如下:
ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [[-j -Host list] | [-k Host-list]] [-w timeout] destination-list
从这个命令式中可以看出它的复杂程度,ping命令本身后面都是它的执行参数,现对其参数作一下详细讲解吧!
-t—— 有这个参数时,当你ping一个主机时系统就不停的运行ping这个命令,直到你按下Control-C。
-a——解析主机的NETBIOS主机名,如果你想知道你所ping的要机计算机名则要加上这个参数了,一般是在运用ping命令后的第一行就显示出来。
-n count——定义用来测试所发出的测试包的个数,缺省值为4。通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送20个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过执行带有这个参数的命令获知。
-l length——定义所发送缓冲区的数据包的大小,在默认的情况下windows的ping发送的数据包大小为32byt,也可以自己定义,但有一个限制,就是最大只能发送65500byt,超过这个数时,对方就很有可能因接收的数据包太大而死机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。
-f—— 在数据包中发送“不要分段”标志,一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。
-i ttl—— 指定TTL值在对方的系统里停留的时间,此参数同样是帮助你检查网络运转情况的。
-v tos—— 将“服务类型”字段设置为 “tos” 指定的值。
-r count—— 在“记录路由”字段中记录传出和返回数据包的路由。一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由。
-s count——指定“count” 指定的跃点数的时间戳,此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。
-j host-list ——利用“ computer-list” 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔IP 允许的最大数量为 9。
-k host-list ——利用 “computer-list” 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔IP 允许的最大数量为 9。
-w timeout——指定超时间隔,单位为毫秒。
destination-list ——是指要测试的主机名或IP地址
2.Ping命令的应用
(1)、测试网络的通畅
我们知道可以用ping命令来测试一下网络是否通畅,这在局域网的维护中经常用到,方法很简单,只需要在DOS或Windows的开始菜单下的“运行”子项中用ping命令加上所要测试的目标计算机的IP地址或主机名即可(目标计算机要与你所运行ping命令的计算机在同一网络或通过电话线或其它专线方式已连接成一个网络),其它参数可全不加。如要测试台IP地址为196.168.1.21的工作站与服务器是否已连网成功,就可以在服务器上运行:ping -a 196.68.123.56 即可,如果工作站上TCP/IP协议工作正常,即会以DOS屏幕方式显示如下所示的信息:
Pinging cindy[196.168.1.21] with 32 bytes of data:
Reply from 196.168.1.21: bytes=32 time<10ms TTL=254
Reply from 196.168.1.21: bytes=32 time<10ms TTL=254
Reply from 196.168.1.21: bytes=32 time<10ms TTL=254
Reply from 196.168.1.21: bytes=32 time<10ms TTL=254
Ping statistics for 196.168.1.21:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
从上面我们就可以看出目标计算机与服务器连接成功,TCP/IP协议工作正常,因为加了“-a”这个参数所以还可以知道IP为196.168.1.21的计算机的NetBIOS名为cindy。
如果网络未连成功则显示如下错误信息:
Pinging[196.168.1.21 ] with 32 bytes of data
Request timed out.
Request timed out.
Request timed out.
Request timed out.
Ping statistice for 196.168.1.21:
Packets:Sent=4,Received =0,Lost=4(100% loss),
Approximate round trip times in milli-seconds
Minimum=0ms,Maximum=0ms,Average=0ms
为什么不管网络是否连通在提示信息中都会有重复四次一样的信息呢(如上的“Reply from 196.168.1.21: bytes=32 time<10ms TTL=254 ”和“Request timed out”),那是因为一般系统默认每次用ping测试时是发送四个数据包,这些提示就是告诉你所发送的四个数据包的发送情况。
出现以上错误提示的情况时,就要仔细分析一下网络故障出现的原因和可能有问题的网上结点了,一般首先不要急着检查物理线路,先从以下几个方面来着手检查:一是看一下被测试计算机是否已安装了TCP/IP协议;二是检查一下被测试计算机的网卡安装是否正确且是否已经连通;三是看一下被测试计算机的TCP/IP协议是否与网卡有效的绑定(具体方法是通过选择“开始→设置→控制面板→网络”来查看);四是检查一下Windows NT服务器的网络服务功能是否已启动(可通过选择“开始→设置→控制面板→服务”,在出现的对话框中找到“Server”一项,看“状态”下所显示的是否为“已启动”)。如果通过以上四个步骤的检查还没有发现问题的症结,这时再查物理连接了,我们可以借助查看目标计算机所接HUB或交换机端口的批示灯状态来判断目标计算机现网络的连通情况。
(2)、获取计算机的IP地址
利用ping这个工具我们可以获取对方计算机的IP地址,特别是在局域网中,我们经常是利用NT或WIN2K的DHCP动态IP地址服务自动为各工作站分配动态IP地址,这时当然我们要知道所要测试的计算机的NETBIOS名,也即我们通常在“网络邻居”中看到的“计算机名”。使用ping命令时我们只要用ping命令加上目标计算机名即可,如果网络连接正常,则会显示所ping的这台机的动态IP地址。其实我们完全可以在互联网使用,以获取对方的动态IP地址,这一点对于黑客来说是比较有用的,当然首先的一点就是你先要知道对方的计算机名。
(3)、上述应用技巧其实重点是Ping 命令在局域网中的应用,其实Ping命令不仅在局域网中广泛使用,在Internet互联网中也经常使用它来探测网络的远程连接情况。平时,当我们遇到以下两种情况时,需要利用Ping工具对网络的连通性进行测试。比如当某一网站的网页无法访问时,可使用Ping命令进行检测。另外,我们在发送E-mail之前也可以先测试一下网络的连通性。许多因特网用户在发送E-mail后经常收到诸如“Returned mail:User unknown”的信息,这说明您的邮件未发送到目的地。为了避免此类事件再次发生,所以建议大家在发送E-mail 之前先养成Ping对方邮件服务器地址的习惯。例如,当您给163网站邮件用户发邮件时,可先键入“ping 163.com”(其实163.com就是网易的其中一台服务器名)进行测试,如果返回类似于“Bad IP address 163.com”或“Request times out”或“Unknow host 163.com”等的信息,说明对方邮件服务器的主机未打开或网络未连通。这时即使将邮件发出去,对方也无法收到。
二、Ipconfig/Winipcfg
与Ping 命有所区别,利用Ipconfig和Winipcfg工具可以查看和修改网络中的TCP/IP协议的有关配置,如IP地址、网关、子网掩码等。这两个工具在Windows 95/98中都能使用,功能基本相同,只是Ipconfig 是以 DOS的字符形式显示,而Winipcfg则用图形界面显示,也就是其实两个工具是一个工具,只不过一个是DOS下的版本,另一个为WINDWOS下的版本,但要注意,在Windows NT中只能运行于DOS方式下的Ipconfig工具。
1.Ipconfig命令的语法格式
Ipconfig[/all][/batch file][/renew all][/release all][/renew n][/release n]
all——显示与TCP/IP协议相关的所有细节信息,其中包括测试的主机名、IP地址、子网掩码、节点类型、是否启用IP路由、网卡的物理地址、默认网关等。
Batch file——将测试的结果存入指定的“file“文件名中,以便于逐项查看,如果省略file文件名,则系统会把这测试的结果保存在系统的“winipcfg.out”文件中。
renew all——更新全部适配器的通信配置情况,所有测试重新开始。
release all——释放全部适配器的通信配置情况,
renew n——更新第n号适配器的通信配置情况,所有测试重新开始。
release n——释放第n号适配器的通信配置情况,
2.Winipcfg命令
Winipcfg工具的功能与Ipconfig基本相同,只是Winipcfg是以图形界面的方式显示,如图1所示。在操作上更加方便,同时能够以WINDOWS的32位图形界面方式显示。当用户需要查看任何一台机器上TCP/IP协议的配置情况时,只需在Windows 95/98上选择“开始→运行”,在出现的对话框中输入命令“winipcfg”,将出现测试结果。单击“详细信息”按钮,在随后出现的对话框中可以查看和改变TCP/IP的有关配置参灵敏,当一台机器上安装有多个网卡时,可以查找到每个网卡的物理地址和有关协议的绑定情况,这在某些时候对我们是特别有用的。如果要获取更多的信息,可单击图中的“详细信息”按钮,在出现的对话框中可以相看到比较全面的信息。
3、ipconfig/winipcfg的应用
上面我讲了一下这两姊妹TCP/IP测试工具的一些用法,下面我就来谈她们的一些用途。
(1)、查找目标主机的IP地址及其它有关TCP/IP协议的信息,方法如下:按「开始」菜单执行「运行」菜单项,输入 winipcfg,就会出现一个 IP 组态窗口,这里会显示有关于你目前网络 IP 的一些详细设置数据。或者,你也可以在 MS-DOS 模式下,输入 ipconfig,也是一样可以显示详细的 IP 信息,只不过此画面是在 DOS 下而已。
(2)、ipconfig/winipcfg应该说是一款网络侦察的利器,尤其当用户的网络中设置的是DHCP(动态IP地址配置协议)时,利用Ipconfig/winipcfg可以让用户很方便地了解到所用IPconfig/winipcfg机的IP地址的实际配置情况。因为它有一个“/all”这个参数,所以它可侦查到本机上所有网络适配的IP地址分配情况,比ping命令更为详细。如果我们在机房winda客户端上运行“Ipconfig/all/batch winda.txt”后,打开winda.txt文件,将显示如下所示的内容,非常详细地显示了所有与TCP/IP协议有关的配置情况 。当然与ping相比也有它的不足之处就是它只能在本机上测试,不能运用网络功能来测试。
三、Netstat
与上述几个网络检测软件类似,Netstat命令也是可以运行于Windows 95/98/NT的DOS提示符下的工具,利用该工具可以显示有关统计信息和当前TCP/IP网络连接的情况 ,用户或网络管理人员可以得到非常详尽的统计结果。当网络中没有安装特殊的网管软件,但要对整个网络的使用状况作个详细地了解时,就是Netstat大显身手的时候了。
它可以用来获得你的系统网络连接的信息(使用的端口和在使用的协议等),收到和发出的数据,被连接的远程系统的端口等。
1、Netstat命令的语法格式
Nbtstat 格式:netstat [-a] [-e] [-n] [-s] [-p protocol] [-r] [interval]
参数解释如下:
-a——用来显示在本地机上的外部连接,它也显示我们远程所连接的系统,本地和远程系统连接时使用和开放的端口,以及本地和远程系统连接的状态。这个参数通常用于获得你的本地系统开放的端口,用它您可以自己检查你的系统上有没有被安装木马,如果您在你的机器上运行Netstat的話,如发現诸如:Port 12345(TCP) Netbus、Port 31337(UDP) Back Orifice之类的信息,则你的机器上就很有可能感染了木马。
-n——这个参数基本上是-a参数的数字形式,它是用数字的形式显示以上信息,这个参数通常用于检查自己的IP时使用,也有些人使用他是因为更喜欢用数字的形式來显示主机名。
-e——显示静态太网统计,该参数可以与 -s 选项结合使用。
-p protocol——用来显示特定的协议配置信息,它的格式为:Netstat -p xxx,xxx可以是UDP、IP、ICMP或TCP,如要显示机器上的TCP协议配置情况则我们可以用:Netstat -p tcp。
-s——显示机器的缺省情况下每个协议的配置统计,缺省情况下包括TCP、IP、UDP、ICMP等协议。
-r——用来显示路由分配表。
interval——每隔“interval”秒重复显示所选协议的配置情况,直到按“CTRL+C”中断。
2、netstat的应用
从以上各参数的功能我们可以看出netstat工具至少有以下向方面的应用:
(1)、显示本地或与之相连的远程机器的连接状态,包括TCP、IP、UDP、ICMP协议的使用情况,了解本地机开放的端口情况;
(2)、检查网络接口是否已正确安装,如果在用netstat这个命令后仍不能显示某些网络接口的信息,则说明这个网络接口没有正确连接,需要重新查找原因。
(3)、通过加入“-r”参数查询与本机相连的路由器地址分配情况;
(4)、还可以检查一些常见的木马等黑客程序,因为任何黑客程序都需要通过打开一个端口来达到与其服务器进行通信的目的,不过这首先要使你的这台机连入互联网才行,不然这些端口是不可能打开的,而且这些黑客程序也不会起到入侵的本来目的。
四、nbtstat
NBTSTAT命令:用于查看当前基于NETBIOS的TCP/IP连接状态,通过该工具你可以获得远程或本地机器的组名和机器名 。虽然用户使用ipconfig/winipcfg工具可以准确地得到主机的网卡地址,但对于一个已建成的比较大型的局域网,要去每台机器上进行这样的操作就显得过于费事了。网管人员通过在自己上网的机器上使用DOS命令nbtstat,可以获取另一台上网主机的网卡地址。我们还是先来看看它的语法格式吧:
NBTSTAT [ [-a RemoteName] [-A IP address] [-c] [-n] [-r] [-R] [-RR] [-s] [-S] [interval] ]
参数说明:
-a Remotename——说明使用远程计算机的名称列出其名称表,此参数可以通过远程计算机的NetBios名来查看他的当前状态。
-A IP address——说明使用远程计算机的 IP 地址并列出名称表,这个和-a不同的是就是这个只能使用IP,其实-a就包括了-A的功能了。
-c——列出远程计算机的NetBIOS 名称的缓存和每个名称的 IP 地址 这个参数就是用来列出在你的NetBIOS里缓存的你连接过的计算机的IP。
-n——列出本地机的 NetBIOS 名称,此参数与上面所介绍的一个工具软件“netstat”中加“ -a”参数功能类似,只是这个是检查本地的,如果把netstat -a后面的IP换为自己的就和nbtstat -n的效果是一样的了。
-r——列出 Windows 网络名称解析的名称解析统计。在配置使用 WINS 的 Windows 2000 计算机上,此选项返回要通过广播或 WINS 来解析和注册的名称数。
-R——清除 NetBIOS 名称缓存中的所有名称后,重新装入 Lmhosts 文件,这个参数就是清除nbtstat -c所能看见的缓存里的IP。
-S—— 在客户端和服务器会话表中只显示远程计算机的IP地址。
-s—— 显示客户端和服务器会话,并将远程计算机 IP 地址转换成NETBIOS名称。此参数和-S差不多,只是这个会把对方的NetBIOS名给解析出来。
-RR——释放在 WINS 服务器上注册的 NetBIOS 名称,然后刷新它们的注册。
interval——每隔interval 秒重新显示所选的统计,直到按“ CTRL+C”键停止重新显示统计。如果省略该参数,nbtstat 将打印一次当前的配置信息。此参数和netstat的一样,nbtstat中的“interval”参数是配合-s和-S一起使用的。
好了,关于nbtstat的应用就不多讲了,相信看了它的一些参数功能也就明白了它的功能了,只是要特别注意这个工具中的一些参数是区分大、小写的,使用时要特别留心!另外在系统中还人置有许多这方面的工具,如ARP命令是用于显示并修改Internet到以太网的地址转换表;nslookup命令的功能是查询一台机器的IP地址和其对应的域名,它通常需要一台域名服务器来提供域名服务,如果用户已经设置好域名服务器,就可以用这个命令查看不同主机的IP地址对应的域名……在此就不多讲了,另外还要说明的一点就是不同的系统中的相应命令参数设置可能有不同之处,但大体功能是一致的,希望大家在应用时稍加注意,本文所列的这些工具软件参数用法全是针对Win9xWinMe,在NT和UNIX、LINUX系统中有一些不同之处。
五、Tracert
Tracert命令用来显示数据包到达目标主机所经过的路径,并显示到达每个节点的时间。命令功能同Ping类似,但它所获得的信息要比Ping命令详细得多,它把数据包所走的全部路径、节点的IP以及花费的时间都显示出来。该命令比较适用于大型网络。
命令格式:
tracert IP地址或主机名 [-d][-h maximumhops][-j host_list] [-w timeout]
参数含义:
-d 不解析目标主机的名字;
-h maximum_hops 指定搜索到目标地址的最大跳跃数;
-j host_list 按照主机列表中的地址释放源路由;
-w timeout 指定超时时间间隔,程序默认的时间单位是毫秒。
例如大家想要了解自己的计算机与目标主机www.cce.com.cn之间详细的传输路径信息,可以在MS-DOS方式输入tracert www.cce.com.cn。
如果我们在Tracert命令后面加上一些参数,还可以检测到其他更详细的信息,例如使用参数-d,可以指定程序在跟踪主机的路径信息时,同时也解析目标主机的域名。
附录:
一、命令ARP
显示和修改“地址解析协议”(ARP) 所使用的到以太网的 IP 或令牌环物理地址翻译表。该命令只有在安装了 TCP/IP
协议之后才可用。
arp -a [inet_addr] [-N [if_addr]]
arp -d inet_addr [if_addr]
arp -s inet_addr ether_addr [if_addr]
例1、怎样知道谁正在连接我的计算机?
arp -a
例2、利用捆绑IP和MAC解决局域网内盗用IP的问题。
查看网卡MAC地址,用ipconfig。记录网卡MAC地址,再到代理服务器端让网络管理员把您上网的静态IP地址与所记录计算机的网卡地址进行捆绑。具体命令是:
ARP -s 192.168.0.16 00-EO-4C-6C-08-75
这样,就将您上网的静态IP地址192.168.0.16与网卡地址为44-55-43-54-00-00的计算机绑定在一起了,即使别人盗用您的IP地址192.168.0.4也无法通过代理服务器上网。其中应注意的是此项命令仅在局域网中上网的代理服务器端有用,还要是静态IP地址。
二、route命令
该命令管理路由表。
例1、显示本机路由信息,帮助解决网络路由问题。
route print /netstat -r
例2、用ROUTE命令实现跨网段访问
一台计算机有两块网卡(IP分别为192.168.0.6和10.41.0.14),分别连接不同网段的局域网。在win98下利用ROUTE命令实现跨网段访问。
route delete 0.0.0.0
route add 192.168.0.0 mask 255.255.255.0 10.41.0.14 metric 1
route add 0.0.0.0 mask 255.255.255.0 10.41.0.254 metric 1
其中10.41.0.254为局域网网关。
例3、解决拨号上网后不能访问局域网的问题。
一台计算机(10.41.221.17)属于局域网,通过路由器10.41.221.254连接其它网络(10.41.220.0)。现通过10.41.221.17拨号上Internet后,出现无法通过路由器连接其它网络的现象。原因当然是默认网关被修改了。解决的办法是:
route add 10.41.220.0 mask 255.255.255.0 10.41.221.254