ping和tracert命令详解

Ping

这个应该你们都会用的吧,最主要的就是检测目标主机是否是可连通。Ping程序实际就是发送一个ICMP回显请求报文给目的主机,并等待回显的ICMP应答。而后打印出回显的报文。Ping不通一个地址,并不必定表示这个IP不存在或者没有链接在网络上,由于对方主机可能作了限制,好比安装了防火墙,所以Ping不通并不表示不能使用FTP或者TELNET链接。
PING获得的结果包括字节数、反应时间、以及生存时间。Ping程序经过在ICMP报文数据中存放发送请求的时间来计算返回时间。当应答返回时,根据如今时间减去报文中存放的发送时间就获得反应时间了。生存时间(TTL),原本就存放在IP数据报的头部,直接就可以获取。
上次和Dancefire说天网防火墙的时候,如今不是天网能识别哪些程序在进行网络链接么,结果试验用Ping的时候,天网就不知道了,呵呵,反正是没有警告。那ICMP木马天网能防么?

Tracert

一个探测路由的程序,可让咱们看见IP数据包到达目的地通过的路由。
Tracert利用ICMP数据报和IP数据报头部中的TTL值。TTL(Time To Live)是一个IP数据报的生存时间,当每一个IP数据报通过路由器的时候都回把TTL值减去1或者减去在路由器中停留的时间,可是大多数数据报在路由器中停留的时间都小于1秒种,所以实际上就是在TTL值减去了1。这样,TTL值就至关于一个路由器的计数器。
当路由器接收到一个TTL为0或者1的IP数据报的时候,路由器就再也不转发这个数据了,而直接丢弃,而且发送一个ICMP“超时”信息给源主机。Tracert程序的关键就是这个回显的ICMP报文的IP报头的信源地址就是这个路由器的IP地址。同时,若是到达了目的主机,咱们并不能知道,因而,Tracert还同时发送一个UDP信息给目的主机,而且选择一个很大的值做为UDP的端口,使主机的任何一个应用程序都不使用这个端口。因此,当达到目的主机的时候,UDP模块就产生一个“端口不可到达”的错误,这样就能判断是不是到达目的地了。
有说法是利用ping获得的TTL值来判断主机类型,这种办法能够大概地用来判断,有人问为何通常获得的都不是标准的TTL值。这个就是由于ICMP数据包走的路由器线路的缘由,因此,用ping 和 tracert 一块儿来用更容易判断主机类型(不过并不必定两次走的路线都同样,因此,仍是个大概值,不过更接近点,并且主机的默认TTL值是能够改变的)。
    C:\>ping 211.99.199.204
    Pinging 211.99.199.204 with 32 bytes of data:
    Reply from 211.99.199.204: bytes=32 time=20ms TTL=248
    Reply from 211.99.199.204: bytes=32 time〈10ms TTL=248
    Reply from 211.99.199.204: bytes=32 time=10ms TTL=248
    Reply from 211.99.199.204: bytes=32 time=10ms TTL=248
    Ping statistics for 211.99.199.204:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
    Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 20ms, Average = 10ms
    C:\>tracert 211.99.199.204
    Tracing route to 211.99.199.204 over a maximum of 30 hops
    1 10 ms 10 ms 20 ms 211.99.57.121
    2 10 ms 10 ms 10 ms 202.96.13.1
    3 〈10 ms 10 ms 20 ms 202.96.13.62
    4 20 ms 10 ms 10 ms 210.77.139.186
    5 〈10 ms 10 ms 20 ms 210.77.139.170
    6 〈10 ms 〈10 ms 10 ms 211.99.193.154
    7 〈10 ms 10 ms 〈10 ms 211.99.199.204
    Trace complete.
Ping获得的TTL=248,通过了7个路由器,减小了7,因此主机的TTL值是255。这样来判断吧。
下面是一些主机的默认TTL值。
LINUX Kernel 2.2.x & 2.4.x ICMP 回显应答的 TTL 字段值为 64
FreeBSD 4.1, 4.0, 3.4;
Sun Solaris 2.5.1, 2.6, 2.7, 2.8;
OpenBSD 2.6, 2.7,
NetBSD
HP UX 10.20
ICMP 回显应答的 TTL 字段值为 255
Windows 95/98/98SE
Windows ME
ICMP 回显应答的 TTL 字段值为 32
Windows NT
Windows 2000
ICMP 回显应答的 TTL 字段值为 128
03/3/12 23:03 oniontangping和tracert命令详解
ping只有在安装了TCP/IP协议之后才可使用:
ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [-j computer-list] | [-k computer-list] [-w timeout] destination-list
Options:
-t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C.
不停的ping地方主机,直到你按下Control-C。
此功能没有什么特别的技巧,不过能够配合其余参数使用,将在下面提到。
-a Resolve addresses to hostnames.
解析计算机NetBios名。
示例:
    C:\>ping -a 192.168.1.21
    Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data:
    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
    Ping statistics for 192.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
从上面就能够知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。
-n count Number of echo requests to send.
发送count指定的Echo数据包数。
在默认状况下,通常都只发送四个数据包,经过这个命令能够本身定义发送的个数,对衡量网络速度颇有帮助,好比我想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就能够经过如下获知:
    C:\>ping -n 50 202.103.96.68
    Pinging 202.103.96.68 with 32 bytes of data:
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
    Request timed out.
    ………………
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
    Ping statistics for 202.103.96.68:
    Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate round trip times in milli-seconds:
    Minimum = 40ms, Maximum = 51ms, Average = 46ms
从以上我就能够知道在给202.103.96.68发送50个数据包的过程中,返回了48个,其中有两个因为未知缘由丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。
-l size Send buffer size.
定义echo数据包大小。
在默认的状况下windows的ping发送的数据包大小为32byt,咱们也能够本身定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为何要限制到65500byt,由于Windows系列的系统都有一个安全漏洞(也许还包括其余系统)就是当向对方一次发送的数据包大于或等于65532时,对方就颇有可能挡机,因此微软公司为了解决这一安全漏洞因而限制了ping的数据包大小。虽然微软公司已经作了此限制,但这个参数配合其余参数之后危害依然很是强大,好比咱们就能够经过配合-t参数来实现一个带有攻击性的命令:(如下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,不然后果自负)
    C:\>ping -l 65500 -t 192.168.1.21
    Pinging 192.168.1.21 with 65500 bytes of data:
    Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
    Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
    ………………
这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,若是你只有一台计算机也许没有什么效果,但若是有不少计算机那么就可使对方彻底瘫痪,我曾经就作过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方的网络就已经彻底瘫痪,网络严重堵塞,HTTP和FTP服务彻底中止,因而可知威力非同小可。
-f Set Don<|>t Fragment flag in packet.
在数据包中发送“不要分段”标志。
在通常你所发送的数据包都会经过路由分段再发送给对方,加上此参数之后路由就不会再分段处理。

-i TTL Time To Live.
指定TTL值在对方的系统里停留的时间。
此参数一样是帮助你检查网络运转状况的。

-v TOS Type Of Service.
将“服务类型”字段设置为 tos 指定的值。
-r count Record route for count hops.
在“记录路由”字段中记录传出和返回数据包的路由。
在通常状况下你发送的数据包是经过一个个路由才到达对方的,但究竟是通过了哪些路由呢?经过此参数就能够设定你想探测通过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由,若是想探测更多,能够经过其余命令实现,我将在之后的文章中给你们讲解。如下为示例:
    C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由)
    Pinging 202.96.105.101 with 32 bytes of data:
    Reply from 202.96.105.101: bytes=32 time=10ms TTL=249
    Route: 202.107.208.187 ->
    202.107.210.214 ->
    61.153.112.70 ->
    61.153.112.89 ->
    202.96.105.149 ->
    202.96.105.97 ->
    202.96.105.101 ->
    202.96.105.150 ->
    61.153.112.90
    Ping statistics for 202.96.105.101:
    Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
    Approximate round trip times in milli-seconds:
    Minimum = 10ms, Maximum = 10ms, Average = 10ms
从上面我就能够知道从个人计算机到202.96.105.101一共经过了202.107.208.187 ,202.107.210.214 , 61.153.112.70 , 61.153.112.89 , 202.96.105.149 , 202.96.105.97这几个路由。
-s count Timestamp for count hops.
指定 count 指定的跃点数的时间戳。
此参数和-r差很少,只是这个参数不记录数据包返回所通过的路由,最多也只记录4个。
-j host-list Loose source route along host-list.
利用 computer-list 指定的计算机列表路由数据包。连续计算机能够被中间网关分隔(路由稀疏源)IP 容许的最大数量为 9。
-k host-list Strict source route along host-list.
利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 容许的最大数量为 9。
-w timeout Timeout in milliseconds to wait for each reply.
指定超时间隔,单位为毫秒。
此参数没有什么其余技巧。
ping命令的其余技巧:在通常状况下还能够经过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列仍是UNIX/Linux系列,通常状况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,固然TTL的值在对方的主机里是能够修改的,Windows系列的系统能够经过修改注册表如下键值实现:
[HKEY_LOCAL_MACHINE\sys tem\CurrentControlSet\Services\Tcpip\Parameters]
"DefaultTTL"=dword:000000ff
255---FF
  128---80
  64----40
  32----20
在路由器上-c能够指定发送的包数.
例如:ping -c 10000 x.x.x.x
就会ping 10000个数据包.并统计丢包率.

Tracert命令详解

该诊断实用程序将包含不一样生存时间 (TTL) 值的 Internet 控制消息协议 (ICMP) 回显数据包发送到目标,以决定到达目标采用的路由。要在转发数据包上的 TTL 以前至少递减 1,必需路径上的每一个路由器,因此 TTL 是有效的跃点计数。数据包上的 TTL 到达 0 时,路由器应该将“ICMP 已超时”的消息发送回源系统。Tracert 先发送 TTL 为 1 的回显数据包,并在随后的每次发送过程将 TTL 递增 1,直到目标响应或 TTL 达到最大值,从而肯定路由。路由经过检查中级路由器发送回的“ICMP 已超时”的消息来肯定路由。不过,有些路由器悄悄地下传包含过时 TTL 值的数据包,而 tracert 看不到。
tracert [-d] [-h maximum_hops] [-j computer-list] [-w timeout] target_name
使用 tracert 跟踪网络链接
Tracert(跟踪路由)是路由跟踪实用程序,用于肯定 IP 数据报访问目标所采起的路径。Tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来肯定从一个主机到网络上其它主机的路由。
Tracert 工做原理
经过向目标发送不一样 IP 生存时间 (TTL) 值的“Internet 控制消息协议 (ICMP)”回应数据包,Tracert 诊断程序肯定到目标所采起的路由。要求路径上的每一个路由器在转发数据包以前至少将数据包上的 TTL 递减 1。数据包上的 TTL 减为 0 时,路由器应该将“ICMP 已超时”的消息发回源系统。
Tracert 先发送 TTL 为 1 的回应数据包,并在随后的每次发送过程将 TTL 递增 1,直到目标响应或 TTL 达到最大值,从而肯定路由。经过检查中间路由器发回的“ICMP 已超时”的消息肯定路由。某些路由器不经询问直接丢弃 TTL 过时的数据包,这在 Tracert 实用程序中看不到。

Tracert 命令按顺序打印出返回“ICMP 已超时”消息的路径中的近端路由器接口列表。若是使用 -d 选项,则 Tracert 实用程序不在每一个 IP 地址上查询 DNS。 ios

在下例中,数据包必须经过两个路由器(10.0.0.1 和 192.168.0.1)才能到达主机 172.16.0.99。主机的默认网关是 10.0.0.1,192.168.0.0 网络上的路由器的 IP 地址是 192.168.0.1。
    C:\>tracert 172.16.0.99 -d
    Tracing route to 172.16.0.99 over a maximum of 30 hops
    1 2s 3s 2s 10,0.0,1
    2 75 ms 83 ms 88 ms 192.168.0.1
    3 73 ms 79 ms 93 ms 172.16.0.99
    Trace complete.
用 tracert 解决问题
可使用 tracert 命令肯定数据包在网络上的中止位置。下例中,默认网关肯定 192.168.10.99 主机没有有效路径。这多是路由器配置的问题,或者是 192.168.10.0 网络不存在(错误的 IP 地址)。
    C:\>tracert 192.168.10.99
    Tracing route to 192.168.10.99 over a maximum of 30 hops
    1 10.0.0.1 reports:Destination net unreachable.
    Trace complete.
Tracert 实用程序对于解决大网络问题很是有用,此时能够采起几条路径到达同一个点。

Tracert 命令行选项
Tracert 命令支持多种选项,以下表所示。
tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] target_name
-d 指定不将 IP 地址解析到主机名称。
-h maximum_hops 指定跃点数以跟踪到称为 target_name 的主机的路由。
-j host-list 指定 Tracert 实用程序数据包所采用路径中的路由器接口列表。
-w timeout 等待 timeout 为每次回复所指定的毫秒数。
target_name 目标主机的名称或 IP 地址。
使用 tracert 命令跟踪路径
打开 命令提示符,而后键入:
tracert host_name
或者键入 tracert ip_address
其中 host_name 或 ip_address 分别是远程计算机的主机名或 IP 地址。
例如,要跟踪从该计算机到 www.21andy.com 的链接路由,请在命令提示行键入:
    tracert www.21andy.com
注意 要打开“命令提示符”,请单击“开始”,指向“程序”、“附件”,而后单击“命令提示符”。 tracert 命令跟踪 TCP/IP 数据包从该计算机到其它远程计算机所采用的路径。tracert 命令使用 ICMP 响应请求并答复消息(和 ping 命令相似),产生关于通过的每一个路由器及每一个跃点的往返时间 (RTT) 的命令行报告输出。 若是 tracert 失败,可使用命令输出来帮助肯定哪一个中介路由器转发失败或耗时太多。 参数 /d 指定不将地址解析为计算机名。 -h maximum_hops 指定搜索目标的最大跃点数。 -j computer-list 指定沿 computer-list 的稀疏源路由。 -w timeout 每次应答等待 timeout 指定的微秒数。 target_name 目标主机的名称或 IP 地址。
相关文章
相关标签/搜索