traceroute命令详解

traceroute命令详解默认分类2010-04-06 16:50:33 阅读593 评论0 字号:大中小订阅定义:互联网中,信息的传送是通过网中许多段的传输介质和设备(路由器,交换机,服务器,网关等等)从一端到达另一端。

每一个连接在Internet上的设备,如主机、路由器、接入服务器等一般情况下都会有一个独立的IP地址。

通过Traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。

当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,但基本上来说大部分时候所走的路由是相同的。

UNIX系统中,我们称之为Traceroute,MS Windows中为Tracert。

Traceroute通过发送小的数据包到目的设备直到其返回,来测量其需要多长时间。

一条路径上的每个设备Traceroute要测3次。

输出结果中包括每次测试的时间(ms)和设备的名称(如有的话)及其IP地址。

在大多数情况下,作为网络工程技术人员或者系统管理员会在UNIX主机系统下,直接执行命令行:Traceroute hostname而在Windows系统下是执行Tracert的命令:Tracert hostname比如在北京地区使用windows NT 主机(已经与北京163建立了点对点的连接后)使用NT系统中的Tracert命令:(用户可用:开始->运行,输入"command" 调出command窗口使用此命令)traceroute [-46dFITUnrAV] [-f first_ttl] [-g gate,...][-i device] [-m max_ttl] [-p port] [-s src_addr][-q nqueries] [-N squeries] [-t tos][-l flow_label] [-w waittime] [-z sendwait]host [packetlen]traceroute6 [options]tracert [options]tcptraceroute [options]说明:traceroute tracks the route packets take across an IP network on their way to a given host. It utilizesthe IP protocol’s time to live (TTL) field and attempts to elicit an ICMP TIME_EXCEEDED response fromeach gateway along the path to the host.traceroute6 = traceroute -6tracert = traceroute -Itcptraceroute = traceroute -T -p 80选项说明:唯一所必须的参数host是目的主机的名字或IP 地址。

在这个参数之后可以选择跟上探测包的大小[packetlen](默认是40)。

改变包的大小并使用-F 参数可以用于获得个别网络跳的MTU 信息。

(探测包大小的参数对于TCP探测来说无用)。

其余的选项:--help 打印帮助信息,并退出。

-4, -6 显示地指定使用IPv4或IPv6 traceroute。

默认情况下,traceroute会解析给定的主机名,并自动选择合适的协议。

如果解析主机名既得到了IPv4的地址,又得到了IPv6的地址,traceroute会使用IPv4。

-I 使用ICMP ECHO进行探测。

-T 使用TCP SYN进行探测。

-U 使用UDP报文进行探测(默认情况)。

对于无特权用户来说,只允许使用UDP报文进行探测。

-d 允许进行socket级别的调试(当Linux kernel支持它的时候)Enable socket level debugging (when the Linux kernel supports it)-F 将“不要分段Don't Fragment”位置位。

这将告诉中间路由器不要将该包分段(当路由器发现该探测包对于网络中MTU 来说太大的时候)-f <first_ttl>设置第一个检测数据包的存活数值TTL的大小。

默认是1 。

-g <gateway>告诉traceroute为发出的packet增加IP源路由选项,以此告诉网络在路由该packet时需要通过指定的网关。

不是十分有用,大多数的路由器因为安全方面的考虑将源路由设置为失效。

-i <interface>指定traceroute发送包时经过的端口。

默认的端口是依照路由表选定的。

-m <max_ttl>指定traceroute将要探测的最大跳数(最大的生存时间)。

默认值为30。

-N <squeries>指定同时发送的探测包数目。

同时发送几个探测包可以适当地加快traceroute的速度。

默认值为15。

注意:有些路由器和主机会使用ICMP速率限制,在这种情况下,指定同时发送大量的探测包会导致一些响应丢失。

-n 显示的时候无需将IP地址和主机名相对应。

直接使用IP地址而非主机名称。

-p <port>使用UDP的跟踪,基础的traceroute会使用指定的目的端口(每个探测包的目的端口号会递增)。

使用ICMP跟踪,指定初始的icmp序列号(每个探测包递增)。

使用TCP跟踪,指定要连接的端口号(常数)-t <tos>对于IPv4,设置服务类型(Type of Service,TOS)及优先值。

有用的数值有16(低延迟)和8(高吞吐量)。

注意在使用某些TOS优先值时,你必须是超级用户。

对于IPv6,设置流量控制值。

-w <waittime>设置对探测包响应的等待时间(秒),默认值是5秒。

-q <nqueries>设置每一跳的探测包数量。

默认是3 。

-r 忽略普通的路由表,直接发送到所在网络(attacked network)的远端主机上。

如果该主机不是直接附在网络(directly-attached network)中,会返回一个错误。

该选项可用于ping一个本地主机,而该主机所经过的端口没有路由。

-s <source_addr>设置本地主机发出数据包的地址。

注意你必须选择某一端口的地址,这个地址就是发出数据包的端口所使用的。

-z <sendwait>探测包之间最小的时间间隔(默认值为0)。

如果该值大于10,则它指定的为毫秒,否则,它指定的为秒(允许使用浮点数)。

当某些路由器对ICMP报文实行速率限制时有用。

-A 在路由注册中查找AS path,并将结果直接打印在相应的地址后面-V 打印出版本并退出。

This program attempts to trace the route an IP packet would follow to some internet host by launching aprobe packets with a small ttl (time to live) then listening for an ICMP "time exceeded" reply from agateway. We start our probes with a ttl of one and increase by one until we get an ICMP "port unreach-able" (or TCP reset), which means we got to "host", or hit a max (which defaults to 30 hops). Three (bydefault) probes are sent at each ttl setting and a line is printed showing the ttl, address of the gate-way and round trip time of each probe. If the probe answers come from different gateways, the address ofeach responding system will be printed. If there is no response within a 5.0 (default) seconds, a "*" isprinted for that probe.We don’t want the destination host to process the UDP probe packets so the destination port is set to anunlikely value (you can change it with the -p flag). There is no such problem for ICMP or TCP tracerout-ing (for TCP we close sessions immediately after connect).After the time some additional annotation can be printed: !H, !N, or !P (host, network or protocolunreachable), !S (source route failed), !F (fragmentation needed), !X (communication administrativelyprohibited), !V (host precedence violation), !C (precedence cutoff in effect), or !<num> (ICMP unreach-able code <num>). If almost all the probes result in some kind of unreachable, traceroute will give upand exit.。

合集下载

tracert命令的功能和用法

tracert命令的功能和用法

tracert命令的功能和用法
tracert是一个网络工具,用于跟踪IP数据包在网络中的传输路径。

它可以显示数据包从计算机源地址到目的地址的每一跳路由器的IP地址和域名,并且可以指示每个跃点的延迟时间。

这个命令在Windows系统中被称为“tracert”,在Unix和Linux系统中被称为“traceroute”。

当命令运行时,系统将向目标地址发送一系列数据包,并在每个网络跃点记录每个路由器的IP地址。

它会显示每个跳跃点的延迟时间和响应时间。

这些信息有助于分析和诊断网络问题,并确定哪些路由器或网络设备可能导致网络延迟或中断。

tracert的功能有许多,包括以下几个方面:
1. 诊断网络故障,确定网络延迟或中断的源头。

2. 确认网络路径,确定数据包从源地址到目标地址所经过的路由器和网络设备。

3. 优化网络性能,通过分析延迟时间和响应时间来确定网络的瓶颈,并进行相关优化操作。

4. 安全测试,跟踪IP数据包的传输路径和访问响应速度,以确保网络连接和安全性。

总之,tracert是一个非常有用的网络工具,用于跟踪IP数据包在网络中的传输路径和检测网络故障,用户可以利用tracert命令分析网络运行情况,提高网络性能。

tracertroute 标准

tracertroute 标准

tracertroute 标准traceroute(又称为tracert)是一种网络诊断工具,用于追踪数据包从源IP地址到目的IP地址的路径。

它利用ICMP协议中的时间戳字段来实现。

通过追踪路由路径,我们可以确定网络连接出现问题的位置,并找到解决方法,提高网络性能。

traceroute命令的基本语法是traceroute [选项]目标主机名/目标IP地址。

下面我们将详细讲解这些选项的作用和用法。

traceroute命令的选项包括:-h <max_hop>:设置最大跃点数,即最多经过多少个网络节点。

默认值为30。

-I:使用ICMP协议进行traceroute追踪,默认选项。

-T:使用TCP协议进行traceroute追踪。

这个选项在某些网络环境中可能无法使用,因为默认会使用被防火墙屏蔽的端口号。

-d:启用socket调试功能,输出包括内核代码的调试信息。

-q <nqueries>:设置每个跳点探测的数据报数目,默认值为3。

-w <timeout>:设置等待返应的时间,默认为5秒。

如果在该时间内没有收到回应,则认为探测失败。

-n:不进行IP地址到主机名的反向解析。

-m <max_ttl>:设置最大探查跳Step,即最多经过多少个网络节点。

默认值为30。

-r:<start_ttl> <end_ttl>:设置探查时IP数据包经过的最小和最大跳数之间。

-s <src_addr>:指定本地主机发送数据包的源IP地址。

-4:使用IPv4进行traceroute追踪,默认选项。

-6:使用IPv6进行traceroute追踪。

traceroute命令的实际应用如下:1.网络故障排查:当网络出现连接问题时,可以通过traceroute 命令来追踪数据包的路径,找出导致问题的节点。

例如,当你无法访问某个网站时,可以使用traceroute命令来检查是否出现网络延迟或者断点问题,以便进一步解决。

tracert 用法

tracert 用法

tracert 用法tracert(traceroute)是一个用于跟踪数据包在 IP 网络中的路径的实用工具。

它通过发送 ICMP(Internet Control Message Protocol)数据包到目标主机,以及测量每个数据包经过的路由节点的时间,来确定数据包在网络中的传输路径和传输时间。

这个工具可以帮助系统管理员和网络工程师分析网络故障和网络延迟问题。

tracert 命令是多平台上 universally used 的网络工具之一。

它可以在 Windows、Linux 和 macOS 等操作系统上使用。

为了使用 tracert 命令,只需在命令提示符中键入 "tracert",紧接着输入目标主机的 IP 地址或域名。

tracert 命令会发送一系列的ICMP 回显请求(ping)数据包到目标主机,并逐个显示每个数据包经过的路由节点的 IP 地址和 Round-Trip Time(RTT,RTT 是数据包从源主机发送到目标主机并返回源主机所需的时间)。

tracert 命令可以帮助管理员诊断网络故障和优化网络性能。

以下是 tracert 命令的一些常见用法:1. 诊断网络延迟:当用户报告网络延迟过高时,管理员可以使用 tracert 命令来确定数据包在网络中的传输路径,以及在哪个路由节点上出现延迟。

管理员可以根据 tracert 的结果,逐个检查每个路由节点,找出延迟的原因,并采取相应的措施来解决延迟问题。

2. 网络故障排查:当用户报告无法访问某个网站或某个服务时,管理员可以使用 tracert 命令来确定问题出现在哪个节点上。

tracert 命令会显示每个数据包经过的路由节点的 IP 地址,如果某个节点无法响应 ICMP 请求,或出现数据包丢失,那么管理员可以将问题定位到此节点,并进行进一步的排查。

3. 追踪网络数据包路由路径:tracert 命令可以用于追踪数据包在网络中的路径。

PING和TRACEROUTE命令详解

PING和TRACEROUTE命令详解
3 = port unreachable端口不可达
4 = fragmentation needed and DF set
需要分段但设置了DF
5 = source route failed源路由失败
4source-quench
源抑制
5Redirect重定向
code 0 = redirect datagrams for the network
16information-reply
信息应答
17mask-request
掩码请求
18mask-reply
掩码应答
31conversion-error
转换错误
32mobile-redirect
移动主机重定向
下表列出了从ping设备中可能的各种输出特征: Character
Description描述
!Each exclamation point indicates receipt of a reply.
为网络重定向数据报
1 = redirect datagrams for the host
为主机重定向数据报
2 = redirect datagrams for the type of service and network
为网络和服务类型重定向数据报
3 = redirect datagrams for the type of service and host
Router1#debug ip packet detail IP packet debugging is on (detailed)Router1#ping 12.0.0.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 12.0.0.2, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 4/6/8 ms Router1# Jan 20 15:54:47.487: IP: s=12.0.0.1 (local), d=12.0.0.2 (Serial0), len 100,

Traceroute命令原理

Traceroute命令原理

Traceroute命令原理1、前⾔在⽇常⽹络维护⼯作中,Traceroute命令是⼀个强⼤⽽⽅便的⽹络测试⼯具;了解Traceroute命令的原理能够更好的使⽤这个⼯具,本⽂详细介绍了Traceroute命令的基本原理和功能。

2、Traceroute命令基本功能该命令⽤于测试两个TCP/IP系统之间的⽹络层连通性和显⽰传输路径中每⼀跳地址,⼜称为路径跟踪,如果Traceroute命令测试成功,我们能够观察到从源主机到⽬的主机之间的⼀条完整的通信路径,能够明确的观察到路径的每⼀跳信息;该命令还能准确输出测试包到每⼀跳的通信延迟时间。

如果测试失败,也能够明确定位是哪⼀跳设备不能正常转发,该⼯具还能够测试路由是否选择最佳路径,是否存在⾮对称路径等问题,在复杂拓扑下具有更强⼤的测试能⼒。

3、Traceroute命令基本原理当路由器收到⼀份I P数据报,如果其T T L字段是0或1,则路由器不转发该数据报(接收到这种数据报的⽬的主机可以将它交给应⽤程序,这是因为不需要转发该数据报。

但是在通常情况下,系统不应该接收T T L字段为0的数据报)。

相反,路由器将该数据报丢弃,并给信源机发⼀份I C M P“超时”信息。

Traceroute的操作过程:它发送⼀份T T L字段为1的I P数据报给⽬的主机。

处理这份数据报的第⼀个路由器将T T L值减1,丢弃该数据报,并发回⼀份超时I C M P报⽂。

这样就得到了该路径中的第⼀个路由器的地址。

然后Traceroute程序发送⼀份T T L值为2的数据报,这样我们就可以得到第⼆个路由器的地址。

继续这个过程直⾄该数据报到达⽬的主机。

但是⽬的主机哪怕接收到T T L值为1的I P数据报,也不会丢弃该数据报并产⽣⼀份超时I C M P报⽂,这是因为数据报已经到达其最终⽬的地。

Traceroute程序发送⼀份U D P数据报给⽬的主机,但它选择⼀个不可能的值作为U D P端⼝号(⼤于30 000),使⽬的主机的任何⼀个应⽤程序都不可能使⽤该端⼝。

traceroute

traceroute

程序原理:
Traceroute程序使用ICMP报文和和IP首部中的TTL字段(生存 周期)。每个处理数据报的路由器都要把TTL的值减去1或者减 去数据报在路由器中停留的秒数。由于大多数的路由器转发数据 报的延时都小于1秒钟,因此TTL最终成为一个跳站的计数器, 所经过的每个路由器都将其值减1。
Traceroute就通过发送一份TTL字段为1的IP数据报给目的主机。 处理这份数据报的第一个路由器将TTL值减去1,丢弃该数据报, 并回发一份超时ICMP报文。这样就得到了该路径中的第一个路 由器的IP地址。然后Tracerouter发送一份TTL为2的数据报,这 样就得到了第二个路由器的IP地址。那么,继续这个过程,直到 达到目的主机。即使目的主机接收到一份TTL值为1的数据报也 不会丢弃该数据报并产生一份ICMP报文,因为已经到达最终目 的地。
怎么去判断是否到达目的主机呢?
对于Tracerouter程序发送一份UDP数据报给目的主机,但选 择一个不可能的值作为目的端口号(大于30000),使得目的主 机的任何一个程序都不可能使用该端口。因为,当该数据报到达 时,将使目的主机的UDP模块产生一份“端口不可达”错误的 ICMP报文,这样Tracerouter程序要做的就是区分搜到的ICMP 报文是是超时还是端口不可达,以判断什么时候结束。同时目的 端 口从33434开始,每一个报文会把目的端口增加1,直到 33534,目的是为了区分返回的报文对应哪个发出的报文。
对于tracert来说,如果TTL大到可以到达目的地,那么目的地 会返回一个ICMP Echo Reply(ICMP报文类型0),就像ping一 样。这时,tracert就可以结束了。
traceroute实现思想举例:
Traceroute网关—— Traceroute Gateway

linux服务器traceroute用法

linux服务器traceroute用法
为了使用traceroute命令来追踪到达目标服务器的网络路径,
您可以按照以下步骤进行操作:
1. 打开终端窗口,登录到Linux服务器上。

2. 在终端窗口中输入以下命令:`traceroute 目标服务器地址`。

替换“目标服务器地址”为您要追踪的服务器的IP地址或域名。

3. 按下回车键后,traceroute会开始运行,并显示到达目标服
务器所经过的网络跳数以及每个跳点的延迟时间。

4. 运行结束后,您将看到目标服务器的网络路径和延迟时间的列表。

注意事项:
- 在某些Linux发行版中,您可能需要以管理员权限运行该命令,可以使用`sudo`命令来获取管理员权限。

- 可以使用`-T`选项将traceroute命令设置为使用TCP协议而不是默认的UDP协议。

例如,`traceroute -T 目标服务器地址`。

- 可以使用`-p`选项来指定使用的端口号。

例如,`traceroute -p
端口号目标服务器地址`。

希望这些信息能够帮助您使用traceroute命令来追踪Linux服
务器的网络路径!。

在Linux终端中进行网络诊断ing和traceroute命令

在Linux终端中进行网络诊断ing和traceroute命令在Linux终端中进行网络诊断和traceroute命令网络连通性是当今数字时代的重要组成部分,而Linux操作系统提供了一系列强大的命令来进行网络诊断和故障排除。

本文将介绍在Linux终端中进行网络诊断的两个常用命令:ping和traceroute。

一、ping命令在Linux终端中,ping命令是一个用于测试主机与目标主机之间网络连通性的基本工具。

它通过发送ICMP回应请求消息来检查目标主机是否可以正常访问,并计算往返时间(RTT)以及丢包率。

使用ping命令的基本语法如下:```shellping [选项] 目标主机```其中,选项可以是:- `-c`: 指定发送的ICMP请求消息的数量。

- `-i`: 指定连续发送ICMP请求消息的时间间隔。

- `-s`: 指定ICMP请求消息的大小。

例如,执行以下命令可以测试与目标主机的连通性,并连续发送5个ICMP请求消息:```shellping -c 5 目标主机```ping命令会显示每个ICMP回应消息的往返时间以及丢包率。

通过观察丢包率和往返时间,我们可以初步判断网络是否可达和是否存在网络拥塞等问题。

二、traceroute命令traceroute命令能够追踪数据包从源主机到目标主机所经过的路径,并显示每个经过的路由器的IP地址以及往返时间。

它通过发送UDP数据包来实现。

使用traceroute命令的基本语法如下:```shelltraceroute [选项] 目标主机```其中,选项可以是:- `-m`: 指定最大跃点数,即traceroute命令最多跟踪经过的路由器数量。

- `-p`: 指定UDP数据包的目的端口号。

例如,执行以下命令可以追踪到目标主机之间经过的路由器信息:```shelltraceroute 目标主机```traceroute命令会显示每个经过的路由器的IP地址以及往返时间。

常见网络测试命令使用详细讲解

常见网络测试命令使用详细讲解网络测试命令是用于检测网络连接、诊断网络问题以及评估网络性能的工具。

下面是一些常见的网络测试命令及其详细讲解。

1. ping命令-作用:检测主机之间的连通性和延迟。

- 使用方式:ping [目标主机IP地址或域名]- 解释:ping命令发送一个网络数据包到目标主机,如果目标主机收到数据包并返回响应,说明网络连接正常。

2. traceroute命令-作用:跟踪数据包在网络中的路径。

- 使用方式:traceroute [目标主机IP地址或域名]- 解释:traceroute命令在数据包的TTL(生存时间)字段上逐渐增加,从而在网络中定位数据包路径,以及确定延迟和丢包情况。

3. nslookup命令- 作用:查询DNS(Domain Name System)信息。

- 使用方式:nslookup [目标主机域名]- 解释:nslookup命令通过DNS服务器解析目标主机的IP地址,并提供其他与主机相关的信息,如主机名、别名等。

4. netstat命令-作用:监控网络连接和网络接口的使用情况。

- 使用方式:netstat [选项]- 示例:netstat -a- 解释:netstat命令显示当前网络连接的状态、本地和远程主机的IP地址和端口号等信息。

5. ifconfig命令-作用:配置和显示网络接口信息。

- 使用方式:ifconfig [网络接口名称] [选项]- 示例:ifconfig eth0- 解释:ifconfig命令显示指定网络接口的配置信息,如IP地址、子网掩码、MAC地址等。

6. iperf命令-作用:评估网络性能和带宽。

- 使用方式:iperf [选项]- 示例:iperf -s- 解释:iperf命令通过在两个主机之间传输数据来测试网络带宽,其中一个主机作为服务器端 (-s),另一个作为客户端。

7. curl命令-作用:发送HTTP请求和接收HTTP响应。

- 使用方式:curl [选项] [URL]- 解释:curl命令发送HTTP HEAD请求到指定的URL,并显示服务器返回的HTTP响应头信息。

Traceroute命令学习理解

Tarcerout程序作用可以让我们看到IP数据报从一台主机传到另一台主机所经过的路由。

而且它还可以让我们使用IP源路由选项为什么不是使用IP首部中的IP记录路由选项而另外开发一个应用程序1.并不是所有的路由器都支持记录路由选项,因此该选项在某些路径上不能使用而Traceroute程序不需要中间路由器具备任何特殊的或不可选的功能。

2.记录路由一般是单向的选项,如果发送端设置了该选项,那么接收端不得不从收到的IP首部中提取所有的信息,然后全部返回给客户端。

而Traceroute程序只需要目的端运行一个UDP模块——其他不需要任何特殊的服务器应用程序。

3.最重要的原因是,IP首部中留给选项的空间有限,不能存放当前大多数的路径。

Traceroute程序使用ICMP报文中IP首部中的TTL字段。

TTL 字段是由发送端初始设置一个8bit的字段。

发送ICMP回显应答时经常把TTL设为最大值255。

TTL的概念及作用1.它是指数据报的生存时间,每个处理数据报的路由器都需要把TTL 的值减去数据报在路由器中停留的秒数,由于大多数的路由器转发数据报的时延都小于1秒,所以现在大多数厂商在设置路由器的时候都把经过的数据报的TTL值减1——————————成为一个跳站的计数器。

2.TTL字段的目的是防止数据报在选路时无休止地在网络中流动————既防止路由环路3.当TTL字段是0或1的时候,则路由器不转发该数据报,而是将该包丢弃,并给信源机发一份ICMP“超时”信息。

Traceroute就是利用了包含这份ICMP信息的IP报文,因为里面有发送该信息的路由器的IP地址。

4.接收到这种数据报的目的主机可以将它交给应用程序,这是因为不需要转发该数据报。

但是在通常情况下,系统不应该接收TTL字段为0的数据报。

Traceroute的工作原理1.Traceroute程序发送一份UDP数据报给目的主机,但它选择了一个不可能的值作为UDP端口号(大于30000),该UDP数据报中的TTL字段为1。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档