tracert 格式:tracert ip
中间会列出所有经过的路由器列表!这些路由器如果是暴露再防火墙外面的话,还可以看到路由的IP哦~呵呵(这里又涉及到了另外一个问题:为什么要把路由放在防火墙后面?原因呢,主要有两点:1)保护路由器!因为现在越来越多的攻击和入侵已经开始瞄准路由器了~如果直接把路由暴露在外面,呵呵,是非常危险的!被DoS了就不好了啊~呵呵,所以要放在防火墙里面;2)为路由器减少负担!如果所有的过滤功能统统都压在路由器上面,呵呵,路由器的负担就太大了!)
当然,利用pathping也可以达到同样效果!格式与tracert一样!
首先介绍下什么是路由追踪,路由器追踪功能
,能够帮网络管理员了解网络通行情况,同时也是网络管理人员很好的辅助工具!通过路由器追踪可以轻松的查处从我们电脑所在地到目标地之间所经常的网络节点,并可以看到通过各个节点所花费的时间。
路由追踪命令是什么
路由跟踪命令
tracert
ip地址
我们在运行框中输入
tracert
ip地址
即可跟踪我们本机ip地址到达对方电脑或者服务器之间的路由节点和所花费的时间了,下面以笔者测试笔者电脑到比克尔网站的路由跟踪。
进入电脑桌面
开始
--
运行
-输入cmd
命令
如下图:
进入cmd命令窗口
windows7运行在哪?3种方法轻松找到windows7运行窗口
点确认或回车后即可进入命令模式窗口,我们在里面输入tracert
-d
www.bkill.com
之后按下回车键确认即可追踪到本地电脑到比克尔网站所在地的路由器线路。如下图:
路由器追踪命令应用
如上图,我们可以看到从笔者电脑所在地到目标网站服务器所在地要经过不少网络节点,从以上数据看速度都还比较快的,虽然存在一定的网络堵塞的情况,有兴趣的朋友可以去研究下,便于理解大家可以将每个路由节点看做一个车站,车子到目的地需要经过各个省份站点类似,如果到达某地时间很长,即可知道当地有堵塞情况,通过查对应ip地址所在地即可知道哪个地方堵塞了。
希望以下对你有帮助1 IP查询:用法: ipconfig [/allcompartments] [/? | /all | /renew [adapter] | /release [adapter] | /renew6 [adapter] | /release6 [adapter] | /flushdns | /displaydns | /registerdns | /showclassid adapter | /setclassid adapter [classid] | /showclassid6 adapter | /setclassid6 adapter [classid] ]其中 adapter 连接名称 (允许使用通配符 * 和 ?,参见示例) 选项: /? 显示此帮助消息 /all 显示完整配置信息。 /release 释放指定适配器的 IPv4 地址。 /release6 释放指定适配器的 IPv6 地址。 /renew 更新指定适配器的 IPv4 地址。 /renew6 更新指定适配器的 IPv6 地址。 /flushdns 清除 DNS 解析程序缓存。 /registerdns 刷新所有 DHCP 租约并重新注册 DNS 名称 /displaydns 显示 DNS 解析程序缓存的内容。 /showclassid 显示适配器的所有允许的 DHCP 类 ID。 /setclassid 修改 DHCP 类 ID。 /showclassid6 显示适配器允许的所有 IPv6 DHCP 类 ID。 /setclassid6 修改 IPv6 DHCP 类 ID。默认情况下,仅显示绑定到 TCP/IP 的适配器的 IP 地址、子网掩码和默认网关。对于 Release 和 Renew,如果未指定适配器名称,则会释放或更新所有绑定到 TCP/IP 的适配器的 IP 地址租约。对于 Setclassid 和 Setclassid6,如果未指定 ClassId,则会删除 ClassId。示例: > ipconfig ... 显示信息 > ipconfig /all ... 显示详细信息 > ipconfig /renew ... 更新所有适配器 > ipconfig /renew EL* ... 更新所有名称以 EL 开头 的连接 > ipconfig /release *Con* ... 释放所有匹配的连接, 例如 "Local Area Connection 1" 或 "Local Area Connection 2" > ipconfig /allcompartments ... 显示有关所有分段的 信息 > ipconfig /allcompartments /all ... 显示有关所有分段的 详细信息2 路由追踪:用法: tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] [-R] [-S srcaddr] [-4] [-6] target_name选项: -d 不将地址解析成主机名。 -h maximum_hops 搜索目标的最大跃点数。 -j host-list 与主机列表一起的松散源路由(仅适用于 IPv4)。 -w timeout 等待每个回复的超时时间(以毫秒为单位)。 -R 跟踪往返行程路径(仅适用于 IPv6)。 -S srcaddr 要使用的源地址(仅适用于 IPv6)。 -4 强制使用 IPv4。 -6 强制使用 IPv6。
1. 路由跟踪在线Tracert工具说明
Tracert(跟踪路由)是路由跟踪实用程序,用于确定 IP 数据报访问目标所采取的路径。Tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由。
2. Tracert 工作原理
通过向目标发送不同 IP 生存时间 (TTL) 值的“Internet 控制消息协议 (ICMP)”回应数据包,Tracert 诊断程序确定到目标所采取的路由。要求路径上的每个路由器在转发数据包之前至少将数据包上的 TTL 递减 1。数据包上的 TTL 减为 0 时,路由器应该将“ICMP 已超时”的消息发回源系统。
Tracert 先发送 TTL 为 1 的回应数据包,并在随后的每次发送过程将 TTL 递增 1,直到目标响应或 TTL 达到最大值,从而确定路由。通过检查中间路由器发回的“ICMP 已超时”的消息确定路由。某些路由器不经询问直接丢弃 TTL 过期的数据包,这在 Tracert 实用程序中看不到。
跟踪路由器的命令是tracert。Tracert(跟踪路由)是路由跟踪实用程序,用于确定 IP 数据包访问目标所采取的路径。Tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由。通过向目标发送不同IP生存时间 (TTL) 值的“Internet控制消息协议 (ICMP)”回应数据包,Tracert诊断程序确定到目标所采取的路由。要求路径上的每个路由器在转发数据包之前至少将数据包上的 TTL 递减 1。数据包上的 TTL 减为 0 时,路由器应该将“ICMP 已超时”的消息发回源系统。Tracert 先发送 TTL 为 1 的回应数据包,并在随后的每次发送过程将TTL递增 1,直到目标响应或 TTL 达到最大值,从而确定路由。通过检查中间路由器发回的“ICMP 已超时”的消息确定路由。某些路由器不经询问直接丢弃 TTL 过期的数据包,这在 Tracert 实用程序中看不到。
一、Ping 相信玩过网络的人都会对“Ping”这个命令有所了解或耳闻。Ping命令是 Windows9X/NT中集成的一个专用于TCP/IP协议的测试工具,ping命令是用于查看网络上 的主机是否在工作,它是通过向该主机发送ICMPECHO_REQUEST包进行测试而达到目的 的。一般凡是应用TCP/IP协议的局域或广域网络,不管你是内部只有几台电脑的家庭、 公室局域网,还是校园网、企业网甚至Internet国际互联网络,当客户端与客户端之 间无法正常进行访问或者网络工作出现各种不稳定的情况时,建议大家一定要先试试用 Ping这个命令来测试一下网络的通信是否正常,多数时候是可以一次奏效的。 1.Ping命令的语法格式 ping命令看似小小的一个工具,但它带有许多参数,要完全掌握它的使用方法还真 不容易,要达到熟练使用则更是难下加难,但不管怎样我们还得来看看它的真面目,首 先我们还是从最基本的命令格式入手吧! ping命令的完整格式如下: ping[-t][-a][-ncount][-llength][-f][-ittl][-vtos][-rcount][-scount][[-j-Hostlist]|[-kHost-list]][-wtimeout]destination-list 从这个命令式中可以看出它的复杂程度,ping命令本身后面都是它的执行参数,现 对其参数作一下详细讲解吧! -t——有这个参数时,当你ping一个主机时系统就不停的运行ping这个命令,直 到你按下Control-C。 -a——解析主机的NETBIOS主机名,如果你想知道你所ping的要机计算机名则要加 上这个参数了,一般是在运用ping命令后的第一行就显示出来。 -ncount——定义用来测试所发出的测试包的个数,缺省值为4。通过这个命令可 以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送20个数据包的返 回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过执行带有这个参数 的命令获知。 -llength——定义所发送缓冲区的数据包的大小,在默认的情况下windows的ping 发送的数据包大小为32byt,也可以自己定义,但有一个限制,就是最大只能发送 65500byt,超过这个数时,对方就很有可能因接收的数据包太大而死机,所以微软公司 为了解决这一安全漏洞于是限制了ping的数据包大小。 -f——在数据包中发送“不要分段”标志,一般你所发送的数据包都会通过路由 分段再发送给对方,加上此参数以后路由就不会再分段处理。 -ittl——指定TTL值在对方的系统里停留的时间,此参数同样是帮助你检查网络 运转情况的。 -vtos——将“服务类型”字段设置为“tos”指定的值。 -rcount——在“记录路由”字段中记录传出和返回数据包的路由。一般情况下 你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此 参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪 到9个路由。 -scount——指定“count”指定的跃点数的时间戳,此参数和-r差不多,只是这 个参数不记录数据包返回所经过的路由,最多也只记录4个。 -jhost-list——利用“computer-list”指定的计算机列表路由数据包。连续 计算机可以被中间网关分隔IP允许的最大数量为9。 -khost-list——利用“computer-list”指定的计算机列表路由数据包。连续 计算机不能被中间网关分隔IP允许的最大数量为9。 -wtimeout——指定超时间隔,单位为毫秒。 destination-list——是指要测试的主机名或IP地址 2.Ping命令的应用 (1)、测试网络的通畅 我们知道可以用ping命令来测试一下网络是否通畅,这在局域网的维护中经常用到, 方法很简单,只需要在DOS或Windows的开始菜单下的“运行”子项中用ping命令加上所 要测试的目标计算机的IP地址或主机名即可(目标计算机要与你所运行ping命令的计算 机在同一网络或通过电话线或其它专线方式已连接成一个网络),其它参数可全不加。 如要测试台IP地址为196.168.1.21的工作站与服务器是否已连网成功,就可以在服务器 上运行:ping-a196.`68.123.56即可,如果工作站上TCP/IP协议工作正常,即会以 DOS屏幕方式显示如下所示的信息: Pingingcindy[196.168.1.21]with32bytesofdata: Replyfrom196.168.1.21:bytes=32time<10msTTL=254 Replyfrom196.168.1.21:bytes=32time<10msTTL=254 Replyfrom196.168.1.21:bytes=32time<10msTTL=254 Replyfrom196.168.1.21:bytes=32time<10msTTL=254 Pingstatisticsfor196.168.1.21: Packets:Sent=4,Received=4,Lost=0(0%loss),Approximateround triptimesinmilli-seconds: Minimum=0ms,Maximum=0ms,Average=0ms 从上面我们就可以看出目标计算机与服务器连接成功,TCP/IP协议工作正常,因为 加了“-a”这个参数所以还可以知道IP为196.168.1.21的计算机的NetBIOS名为cindy。 如果网络未连成功则显示如下错误信息: Pinging[196.168.1.21]with32bytesofdata Requesttimedout. Requesttimedout. Requesttimedout. Requesttimedout. Pingstatisticefor196.168.1.21: PacketsTongueTiedent=4,Received=0,Lost=4(100%loss), Approximateroundtriptimesinmilli-seconds Minimum=0ms,Maximum=0ms,Average=0ms 为什么不管网络是否连通在提示信息中都会有重复四次一样的信息呢(如上的 “Replyfrom196.168.1.21:bytes=32time<10msTTL=254”和“Requesttimed out”),那是因为一般系统默认每次用ping测试时是发送四个数据包,这些提示就是 告诉你所发送的四个数据包的发送情况。 出现以上错误提示的情况时,就要仔细分析一下网络故障出现的原因和可能有问题 的网上结点了,一般首先不要急着检查物理线路,先从以下几个方面来着手检查:一是 看一下被测试计算机是否已安装了TCP/IP协议;二是检查一下被测试计算机的网卡安装 是否正确且是否已经连通;三是看一下被测试计算机的TCP/IP协议是否与网卡有效的绑 定(具体方法是通过选择“开始→设置→控制面板→网络”来查看);四是检查一下 WindowsNT服务器的网络服务功能是否已启动(可通过选择“开始→设置→控制面板→ 服务”,在出现的对话框中找到“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后经常收到诸如 “Returnedmail:Userunknown”的信息,这说明您的邮件未发送到目的地。为了避免 此类事件再次发生,所以建议大家在发送E-mail之前先养成Ping对方邮件服务器地址 的习惯。例如,当您给163网站邮件用户发邮件时,可先键入“ping163.com”(其实 163.com就是网易的其中一台服务器名)进行测试,如果返回类似于“BadIPaddress 163.com”或“Requesttimesout”或“Unknowhost163.com”等的信息,说明对方 邮件服务器的主机未打开或网络未连通。这时即使将邮件发出去,对方也无法收到。 二、Ipconfig/Winipcfg 与Ping命有所区别,利用Ipconfig和Winipcfg工具可以查看和修改网络中的 TCP/IP协议的有关配置,如IP地址、网关、子网掩码等。这两个工具在Windows95/98 中都能使用,功能基本相同,只是Ipconfig是以DOS的字符形式显示,而Winipcfg则 用图形界面显示,也就是其实两个工具是一个工具,只不过一个是DOS下的版本,另一 个为WINDWOS下的版本,但要注意,在WindowsNT中只能运行于DOS方式下的Ipconfig工 具。 1.Ipconfig命令的语法格式 Ipconfig[/all][/batchfile][/renewall][/releaseall][/renewn][/release n] all——显示与TCP/IP协议相关的所有细节信息,其中包括测试的主机名、IP地 址、子网掩码、节点类型、是否启用IP路由、网卡的物理地址、默认网关等。 Batchfile——将测试的结果存入指定的“file“文件名中,以便于逐项查看,如 果省略file文件名,则系统会把这测试的结果保存在系统的“winipcfg.out”文件中。 renewall——更新全部适配器的通信配置情况,所有测试重新开始。 releaseall——释放全部适配器的通信配置情况, renewn——更新第n号适配器的通信配置情况,所有测试重新开始。 releasen——释放第n号适配器的通信配置情况, 2.Winipcfg命令 Winipcfg工具的功能与Ipconfig基本相同,只是Winipcfg是以图形界面的方式显 示,如图1所示。在操作上更加方便,同时能够以WINDOWS的32位图形界面方式显示。当 用户需要查看任何一台机器上TCP/IP协议的配置情况时,只需在Windows95/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/batchwinda.txt”后,打开 winda.txt文件,将显示如下所示的内容,非常详细地显示了所有与TCP/IP协议有关的 配置情况。当然与ping相比也有它的不足之处就是它只能在本机上测试,不能运用网 络功能来测试。 三、Netstat 与上述几个网络检测软件类似,Netstat命令也是可以运行于Windows95/98/NT的 DOS提示符下的工具,利用该工具可以显示有关统计信息和当前TCP/IP网络连接的情 ,用户或网络管理人员可以得到非常详尽的统计结果。当网络中没有安装特殊的网管 软件,但要对整个网络的使用状况作个详细地了解时,就是Netstat大显身手的时候 了。 它可以用来获得你的系统网络连接的信息(使用的端口和在使用的协议等),收到 和发出的数据,被连接的远程系统的端口等。 1、Netstat命令的语法格式 Nbtstat格式:netstat[-a][-e][-n][-s][-pprotocol][-r][interval] 参数解释如下: -a——用来显示在本地机上的外部连接,它也显示我们远程所连接的系统,本地和 远程系统连接时使用和开放的端口,以及本地和远程系统连接的状态。这个参数通常用 于获得你的本地系统开放的端口,用它您可以自己检查你的系统上有没有被安装木马, 如果您在你的机器上运行Netstat的话,如发现诸如:Port12345(TCP)Netbus、Port 31337(UDP)BackOrifice之类的信息,则你的机器上就很有可能感染了木马。 -n——这个参数基本上是-a参数的数字形式,它是用数字的形式显示以上信息,这 个参数通常用于检查自己的IP时使用,也有些人使用他是因为更喜欢用数字的形式来显 示主机名。 -e——显示静态太网统计,该参数可以与-s选项结合使用。 -pprotocol——用来显示特定的协议配置信息,它的格式为:Netstat-p***, ***可以是UDP、IP、ICMP或TCP,如要显示机器上的TCP协议配置情况则我们可以用: Netstat-ptcp。 -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[[-aRemoteName][-AIPaddress][-c][-n][-r][-R][-RR][-s][-S][interval]] 参数说明: -aRemotename——说明使用远程计算机的名称列出其名称表,此参数可以通过远 程计算机的NetBios名来查看他的当前状态。 -AIPaddress——说明使用远程计算机的IP地址并列出名称表,这个和-a不同 的是就是这个只能使用IP,其实-a就包括了-A的功能了。 -c——列出远程计算机的NetBIOS名称的缓存和每个名称的IP地址这个参数就 是用来列出在你的NetBIOS里缓存的你连接过的计算机的IP。 -n——列出本地机的NetBIOS名称,此参数与上面所介绍的一个工具软件 “netstat”中加“-a”参数功能类似,只是这个是检查本地的,如果把netstat-a后 面的IP换为自己的就和nbtstat-n的效果是一样的了。 -r——列出Windows网络名称解析的名称解析统计。在配置使用WINS的 Windows2000计算机上,此选项返回要通过广播或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一起使用的。
对ISP而言,设立Traceroute网关,将使网络服务提供商帮助用户建立并维持对服务商服务质量的信心。服务质量高的ISP可以通过设立Traceroute网关,使用户了解其与网络连接以及数据传输的效率。当然,基础设施差,服务质量低的ISP是比较害怕提供这种服务。因为,这样用户可以使用这一工具了解服务商网络连接情况。在一台主机安装了相关的Traceroute的CGI程序后,您可以输入相应的目的主机的IP地址或者名字,就可以得到相关的数据。应用Traceroute是用来侦测主机到目的主机之间所经路由情况的重要工具,也是最便利的工具。前面说到,尽管ping工具也可以进行侦测,但是,因为ip头的限制,ping不能完全的记录下所经过的路由器。所以Traceroute正好就填补了这个缺憾。Traceroute收到目的主机的IP后,首先给目的主机发送一个TTL=1的UDP数据包,而经过的第一个路由器收到这个数据包以后,就自动把TTL减1,而TTL变为0以后,路由器就把这个包给抛弃了,并同时产生 一个主机不可达的ICMP数据报给主机。主机收到这个数据报以后再发一个TTL=2的UDP数据报给目的主机,然后刺激第二个路由器给主机发ICMP数据 报。如此往复直到到达目的主机。这样,traceroute就拿到了所有的路由器ip。从而避开了ip头只能记录有限路由IP的问题。实现主叫方首先发出 TTL=1 的数据包,第一个路由器将 TTL 减1得0后就不再继续转发此数据包,而是返回一个 ICMP 超时报文,主叫方从超时报文中即可提取出数据包所经过的第一个网关地址。然后又发出一个 TTL=2 的 ICMP 数据包,可获得第二个网关地址,依次递增 TTL 便获取了沿途所有网关地址。需要注意的是,并不是所有网关都会如实返回 ICMP 超时报文。出于安全性考虑,大多数防火墙以及启用了防火墙功能的路由器缺省配置为不返回各种 ICMP 报文,其余路由器或交换机也可被管理员主动修改配置变为不返回 ICMP 报文。因此 Traceroute 程序不一定能拿全所有的沿途网关地址。所以,当某个 TTL 值的数据包得不到响应时,并不能停止这一追踪过程,程序仍然会把 TTL 递增而发出下一个数据包。一直达到默认或用参数指定的追踪限制(maximum_hops)才结束追踪。依据上述原理,利用了 UDP 数据包的 Traceroute 程序在数据包到达真正的目的主机时,就可能因为该主机没有提供 UDP 服务而简单将数据包抛弃,并不返回任何信息。为了解决这个问题,Traceroute 故意使用了一个大于 30000 的端口号,因 UDP 协议规定端口号必须小于 30000 ,所以目标主机收到数据包后唯一能做的事就是返回一个“端口不可达”的 ICMP 报文,于是主叫方就将端口不可达报文当作跟踪结束的标志。以上内容参考 百度百科-traceroute