讨鬼传pc中文版:网络故障判断-欣联工程师教你使用Ping命令-- ZDNET网络频道

来源:百度文库 编辑:九乡新闻网 时间:2024/04/28 01:27:11

网络故障判断-教你使用Ping命令(转)

  在我们的网络诊断测试过程中,Ping是个使用频率极高的实用程序,用于确定本地主机是否能与另一台主机交换(发送与接收)数据包。根据返回的信息,我们就可以推断TCP/IP参数是否设置得正确以及运行是否正常。需要注意的是:成功地与另一台主机进行一次或两次数据包的交换并不表示TCP/IP配置就是正确的,我们必须执行大量的本地主机与远程主机的数据包交换,才能确信TCP/IP的正确性。

  Ping是个使用频率极高的实用程序,用于确定本地主机是否能与另一台主机交换(发送与接收)数据包。根据返回的信息,我们就可以推断TCP/IP参数是否设置得正确以及运行是否正常。需要注意的是:成功地与另一台主机进行一次或两次数 据报交换并不表示TCP/IP配置就是正确的,我们必须执行大量的本地主机与远程主机的数据包交换,才能确信TCP/IP的正确性。

  简单的说,Ping就是一个测试程序,如果Ping运行正确,我们大体上就可以排除网络访问层、网卡、MODEM的输入输出线路、电缆和路由器等存在的故障,从而减小了问题的范围。但由于可以自定义所发数据包的大小及无休止的高速发送,Ping也被某些别有用心的人作为DDOS(拒绝服务攻击)的工具,例如许多大型的网站就是被黑客利用数百台可以高速接入互联网的电脑连续发送大量Ping数据包而瘫痪的。

  按照缺省设置,Windows上运行的ping命令发送4个ICMP(网间控制报文协议)回送请求,每个32字节数据,如果一切正常,我们应能得到4个回送应答。 Ping能够以毫秒为单位显示发送回送请求到返回回送应答之间的时间量。如果应答时间短,表示数据包不必通过太多的路由器或网络连接速度比较快。Ping还能显示TTL(Time To Live存在时间)值,我们可以通过TTL值推算一下数据包已经通过了多少个路由器:源地点TTL起始值(就是比返回TTL略大的一个2的乘方数)-返回时TTL值。

  例如,返回TTL值为119,那么可以推算数据包离开源地址的TTL起始值为128,而源地点到目标地点要通过9个路由器网段(128-119);如果返回TTL值为246,TTL起始值就是256,源地点到目标地点要通过9个路由器网段。

  1、通过Ping检测网络故障的典型次序

  正常情况下,当我们使用ping命令来查找问题所在或检验网络运行情况时,我们需要使用许多ping命令,如果所有都运行正确,我们就可以相信基本的连通性和配置参数没有问题;如果某些ping命令出现运行故障,它也可以指明到何处去查找问题。下面就给出一个典型的检测次序及对应的可能故障:

  ·ping 127.0.0.1

  这个ping命令被送到本地计算机的IP软件,该命令永不退出该计算机。如果没有做到这一点,就表示TCP/IP的安装或运行存在某些最基本的问题。

  ·ping 本机IP

  这个命令被送到我们计算机所配置的IP地址,我们的计算机始终都应该对该ping命令作出应答,如果没有,则表示本地配置或安装存在问题。出现此问题时,局域网用户请断开网络电缆,然后重新发送该命令。如果网线断开后本命令正确,则表示另一台计算机可能配置了相同的IP地址。

  ·ping 局域网内其他IP

  这个命令应该离开我们的计算机,经过网卡及网络电缆到达其他计算机,再返回。收到回送应答表明本地网络中的网卡和载体运行正确。但如果收到0个回送应答,那么表示子网掩码(进行子网分割时,将IP地址的网络部分与主机部分分开的代码)不正确或网卡配置错误或电缆系统有问题。

  ·ping 网关IP(欣联路由器的内网口地址)

  如果ping欣联路由器的命令如果应答正确,表示局域网中的网关路由器正在运行并能够作出应答。

  ·ping 远程IP

  如果收到4个应答,表示成功的使用了缺省网关。对于拨号上网用户则表示能够成功的访问Internet(但不排除ISP的DNS会有问题)。

  ·ping localhost

  localhost是个作系统的网络保留名,它是127.0.0.1的别名,每台计算机都应该能够将该名字转换成该地址。如果没有做到这,则表示主机文件(/Windows/host)中存在问题。

  ·ping www.xxx.com(如www.sina.com.cn新浪网)

  对这个域名执行Ping www.xxx.com地址,通常是通过DNS 服务器 如果这里出现故障,则表示DNS服务器的IP地址配置不正确或DNS服务器有故障(对于拨号上网用户,某些ISP已经不需要设置DNS服务器了)。顺便说一句:我们也可以利用该命令实现域名对IP地址的转换功能。

  如果上面所列出的所有ping命令都能正常运行,那么我们对自己的计算机进行本地和远程通信的功能基本上就可以放心了。但是,这些命令的成功并不表示我们所有的网络配置都没有问题,例如,某些子网掩码错误就可能无法用这些方法检测到。

  2、ping命令的常用参数选项

  -a 将目标的机器标识转换为ip地址

  -t 若使用者不人为中断会不断的ping下去

  -c count 要求ping命令连续发送数据包,直到发出并接收到count个请求

  -d 为使用的套接字打开调试状态

  -f 是一种快速方式ping。使得ping输出数据包的速度和数据包从远程主机返回一样快,或者更快,达到每秒100次。在这种方式下,每个请求用一个句点表示。对于每一个响应打印一个空格键。

  -i seconds 在两次数据包发送之间间隔一定的秒数。不能同-f一起使用。

  -n 只使用数字方式。在一般情况下ping会试图把IP地址转换成主机名。这个选项要求ping打印IP地址而不去查找用符号表示的名字。如果由于某种原因无法使用本地DNS服务器这个选项就很重要了。

  -p pattern 拥护可以通过这个选项标识16 pad字节,把这些字节加入数据包中。当在网络中诊断与数据有关的错误时这个选项就非常有用。

  -q 使ping只在开始和结束时打印一些概要信息。

  -R 把ICMP RECORD-ROUTE选项加入到ECHO_REQUEST数据包中,要求在数据包中记录路由,这样当数据返回时ping就可以把路由信息打印出来。每个数据包只能记录9个路由节点。许多主机忽略或者放弃这个选项。

  -r 使ping命令旁路掉用于发送数据包的正常路由表。

  -s packetsize 使用户能够标识出要发送数据的字节数。缺省是56个字符,再加上8个字节的ICMP数据头,共64个ICMP数据字节。

  -v 使ping处于verbose方式。它要ping命令除了打印ECHO-RESPONSE数据包之外,还打印其它所有返回的ICMP数据包。

  3、ping命令使用小技巧

  “.0”可以有条件省略

  大家常用“ping 127.0.0.1”命令在本机上做回路测试,用来验证本机的TCP/IP协议簇是否被正确安装。但你发现了吗?使用“ping 127.1”这个命令也能得到同样的测试结果(如图),其实“ping 127.1”和“ping 127.0.0.1”这两条命令是一样的,都是在进行回路测试。

  为什么会这样呢?这就是ping命令应用中IP地址的使用技巧。大家都知道,IP地址由32位二进制数字组成,为了方便大家记忆,将每8位二进制数字换算成十进制数字,因此就形成了容易记忆的由四部分十进制数字组成的IP地址(如127.0.0.1)。由于,Windows操作系统具有自动填充 “.0”的功能,因此我就可将“127.0.0.1”变为“127.1”。

  但是,这个“.0”的省略是有条件限制的,并不能任意省略。在ping命令的应用中,只能将在IP地址的最后一部分十进制数字前出现的一个或多个“.0”省略,如把“ping 127.0.0.1”命令改写成“ping 127.1”。

  如果这一个或多个 “.0”没有紧挨着最后一部分的十进制数字,而是在其他位置,则这个“.0”不能省略,如“ping 202.0.96.1”就不能写成“ping 202.96.1”。这是因为“ping 202.96.1”返回的结果是“202.96.0.1”的应答信息,而不是“202.0.96.1”的应答信息。

  数字串代替IP地址

  在ping命令中,还可以使用数字串代替IP地址,你相信吗?运行“ping 3658906394”命令,你会看到“218.22.123.26”这个IP地址的返回信息。

  为什么会这样呢?其实,“3658906394”就是IP地址“218.22.123.26”的另一种表示形式。当然,也可按同样的方法Ping其他的IP地址。

  字符串是如何转换而来的呢?其实并不复杂,以“218.22.123.26”这个IP地址为例,IP地址转换成数字串方法如下:先将 “218.22.123.26”转换为十六进制“DA.16.7B.1A”,然后去掉小数点后,变为“DA167B1A”,最后将这个十六进制数转换为十进制“3658906394”,那么“218.22.123.26”就变为“3658906394”了。其他IP地址转换为数字串也是使用同样的方法。

  提示:在某些局域网环境中,使用“Ping+数字串”命令可能会失败,出现提示信息“Unknown host数字串”,这是因为该数字串被解析成主机名了,而不是IP地址。

  因此,掌握了上述技巧后,网管在进行网络测试或维护时,可以熟练运用“省略”方式,减轻ping命令的字符输入量,提高工作效率。同时,使用数字串代替IP地址也可迷惑好奇心强的普通用户,以免他们胡乱设置。

  4、通过几个ping命令判断网络的故障详解

  局域网内电脑不能上网大致可分以下几个原因,系统的IP设置、网卡、路由器网关和线路故障。排除硬件及线路的故障问题,我们可以利用ping命令来快速检测网络状况。

  首先,我们点击系统中开始里的运行,在运行栏中输入cmd命令,操作系统中的DOS窗口就会弹出,在这里我们可以直观和方便地输入各种DOS命令。

  接着,我们可以在DOS里输入Ping 127.0.0.1,该地址是本地循环地址,如发现本地址无法Ping通,就表明本地机TCP/IP协议不能正常工作,此时应检查本机的操作系统安装设置。

  如果上面的操作成功,可Ping通的话,我们接下来可以输入IPConfig来查看本地的IP地址,然后Ping该IP(如192.168.0.100),通则表明网络适配器(网卡或MODEM)工作正常,不通则是网络适配器出现故障,可尝试更换网卡或驱动程序。

  然后Ping一台同网段计算机的IP,不通则表明网络线路出现故障;若网络中还包含有路由器,则应先Ping路由器在本网段端口的IP,不通则此段线路有问题,应检查网内交换机或网线故障。

  如果内网计算机能ping通则再Ping欣联的路由器(网关),(如192.168.0.1)如不通,则是路由器出现故障,可更换连接路由器的网线,或用网线将PC机直接连接至路由器,如能ping通,则应检查路由器至交换机的网线故障,如无法ping通,可尝试更换计算机再ping,若还不能ping通,则应检查路由器故障。

  最后,如果到路由器都正常,可再检测一个带DNS服务的网络,在上一步Ping通了目标计算机的IP地址后,仍无法连接到该机,则可Ping该机的网络名,正常情况下会出现该网址所指向的IP,这表明本机的DNS设置正确而且DNS服务器工作正常,反之就可能是其中之一出现了故障;同样也可通过Ping计算机名检测WINS解析的故障(WINS是将计算机名解析到IP地址的服务)。

  如果以上ping测试都没有问题,那么我们认为网络是正常的,如果出现某一应用无法正常连网,如网页打不开,则应检查相应的DNS服务器原因,如QQ、某一游戏等应用程序无法上网,则应检查相应的程序,或其服务器出现故障。

  当以上几个步骤执行完毕后,我们就可轻易判断出到底是某个环节出现了故障问题,该重新设置的设置,该换硬件的换硬件。另外,如果想检测网络的连接情况,我们还可以在Ping的地址后面加上-t,这样可不断地进行Ping的连接,可反映出网络的连接是否有中断或者丢包的现象出现。