欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

traceroute命令详解 有大用 有大大用 有大大大用

traceroute命令详解

# traceroute www.baidu.com        


       

traceroute命令用于显示数据包到主机间的路径,预设数据包大小是40Bytes。
安装命令: yum install traceroute
命令格式: traceroute [-46dFITUnreAV] [-f 存活数值] [-g 网关] [-i 网络界面] [-m 存活数值] [-p 端口] [-s 来源地址]

[-q 探测包数] [-N 探测报文数] [-t 服务类型] [-l flow_label] [-w 超时秒数] [-z 最小时间间隔] [-UL] [-D]

[-P 协议] [--sport=源端口] [-M 指定方法] [-O 方法特定的选项] [--mtu] [--back] 主机名称或IP地址 [数据包大小]

option:            

  • -4、-6:明确强制使用IPv4或IPv6跟踪。 默认情况下,程序将尝试解析给定的名称,并自动选择适当的协议。 如果解析主机名同时返回IPv4和IPv6地址,请跟踪路由将使用IPv4

  • -I --icmp:使用ICMP ECHO进行探测

  • -T --tcp:使用TCP SYN进行探测

  • -d --debug:启用套接字级别调试(Linux内核支持时)

  • -F --dont-fragment:不对探测数据包进行分段

  • -f --first=first_ttl:指定从哪个TTL开始。 默认为1

  • -g --gateway=gateway:告诉traceroute向传出数据包添加一个IP源路由选项,该选项告诉网络通过指定的网关路由数据包

  • -i --interface=interface:指定跟踪路由应通过其发送数据包的接口。默认情况下,根据路由表选择接口

  • -m --max-hops=max_ttl:指定traceroute将探测的最大跃点数(最长生存时间值)。默认值为30

  • -N --sim-queries=squeries:指定同时发送的探测数据包数。同时发送几个探测可以大大加快traceroute的速度。默认值为16。请注意,某些路由器和主机可以使用ICMP速率限制。在这种情况下,指定太大的数字可能会导致某些响应丢失

  • -n:显示IP地址时不要尝试将其映射到主机名

  • -p --port=port:对于UDP跟踪,指定基本跟踪路由将使用的目标端口(目标端口号将由每个探测递增)。对于ICMP跟踪,指定初始ICMP序列值(每个探测也递增)。对于TCP和其他协议,只指定要连接的(常量)目标端口。

  • -t --tos=tos:对于IPv4,设置服务类型(TOS)和优先级值。有用的值是16(低延迟)和8(高吞吐量)。请注意,为了使用某些TOS优先级值,您必须是超级用户。对于IPv6,设置流量控制值。

  • -l --flowlabel=flow_label:对IPv6数据包使用指定的流量标签

  • -w --wait=waittime:设置等待探测器响应的时间(秒)(默认为5.0秒)。

  • -q --queries=nqueries:设置每个跃点的探测数据包数。默认值为3。

  • -r:绕过常规路由表,直接发送到连接网络上的主机。如果主机不在直连网络上,则返回错误

  • -s --source=source_addr:选择另一个源地址。请注意,您必须选择其中一个接口的地址。默认情况下,使用传出接口的地址

  • -z --sendwait=sendwait:两次探测之间的最小时间间隔(默认为0)。 如果该值大于10,则以毫秒为单位指定一个数字,否则以秒为单位(也允许使用浮点值)。 当某些路由器对ICMP消息使用速率限制时很有用。

  • -e, --extensions:显示ICMP扩展(rfc4884)。 通用格式为CLASS / TYPE:后跟十六进制转储。 所示的是MPLS(rfc4950)的解析形式:MPLS:L = label,E = exp_use,S = stack_bottom,T = TTL(更多对象用/分隔)。

  • -A, --as-path-lookups:在路由注册表中执行AS路径查找,并在相应地址后直接打印结果

  • -V, --version:输出版本信息

  • --sport=port:选择要使用的源端口

  • -M method, --module=name:使用指定的方法进行traceroute操作。 默认的传统udp方法的名称为default,icmp(-I)和tcp(-T)的名称分别为icmp和tcp。
    特定于方法的选项可以由-O传递

  • -O option, --options=options:指定一些方法特定的选项。 多个选项用逗号分隔

  • -U, --udp:使用UDP到特定的目标端口进行路由(而不是增加每个探针的端口)。 默认端口为53(dns)。

  • -UL:使用UDPLITE进行路由(默认端口为53)

  • -D --dccp:使用DCCP请求进行探测。

  • -P --protocol=protocol:使用指定协议的原始数据包进行路由。 默认协议是253

  • --mtu:沿着被追踪的路径发现MTU

  • --back:当向后跳跃的次数与向前跳跃的次数不同时,打印向后跳跃的次数。假设远程跃点发送的回复包的初始ttl设置为64、128或255(这似乎是一种常见的情况),那么就可以猜出这个数字


来自  https://www.kancloud.cn/chunyu/php_basic_knowledge/2106516



源端首先发送 3 个 TTL 字段的值都为 1 的 UDP 数据报给远程设备,使用随机的任何大 于 32768 的端口地址作为目标设备的接受报文端口,TTL 为 1 的数据报到达第一跳路由器以后 随即超时,路由器响应源设备一个 ICMP 的超时报文,之后源端再发送 3 个 UDP 数据报, 这次更改 TTL 值为 2,即经过 2 个路由器以后,响应源端 ICMP 超时报文,依次类推,直到 这些 UDP 报文到达了目标设备。


   

   


   

在大多数情况下,作为网络工程技术人员或者系统管理员会在UNIX主机系统下,直接执行命令行:


   


   

Traceroutehostname
   


   


   

而在Windows系统下是执行Tracert的命令:
   


   


   

Tracerthostname


   

   


   

一、默认使用的是UDP协议(30000以上端口)


   


   

二、使用TCP协议
   


   


   

-T -p


   


   

三、使用ICMP协议
   


   


   

-I
   


   


   

四、实战


   


   

[root@localhost hping-master]# whereis traceroute
   


   


   

traceroute: /usr/bin/traceroute /usr/share/man/man8/traceroute.8.gz
   


   


   

[root@localhost hping-master]#
   


   


   

[root@localhost hping-master]# traceroute www.jd.com


   

   


来自 https://baijiahao.baidu.com/s?id=1725632213389212194&wfr=spider&for=pc



traceroute命令详解

traceroute可以利用ICMP协议定位到一台计算机与另一台计算机之间的所有路径。它在DOS系统下的命令是tracert。接下来小编详细的解释一下tracert在Windows下用法与原理

工具/原料

  • Windows系统
  • 终端
  • 网络试探器

tracert的基础用法

  1. 1

    打开命令控制台。输入tracert,如图

    traceroute命令详解                    
  2. 2

    这里的参数,就不一一介绍了。我举一个最基础的来说明,就是直接在tracert后面加域名,比如tracert www.baidu.com。如图

    traceroute命令详解                    
  3. 3

    我们看到返回一些记录,因为每一个记录表示经历了一个网关。那些ms(毫秒)是探测数据包向每个网关发送3个数据后网关响应后返回的时间。那些“*”则说明是防火墙封掉了ICMP的返回信息                    

  4. 4

    我们试着用试探器来分析一下,我们发现和在DOS下的返回命令非常吻合。其实就是发送一个64字节的空包通过ICMP的协议给一台服务器,经历网关与防火墙之后,返回大小为56的数据包。这些数据包的大小是我们指定的                    

    traceroute命令详解                    
  5. 5

    tracert在Linux下traceroute命令是traceroute[参数][主机],与Windows是一样的。我就不介绍了

    END                

总结

  • traceroute[主机]是很简单的网络命令

    它的一些参数基本上都是设置时间和数据包的大小

    它的原理是通过递减TTL达到主机的

    traceroute相对其他网络命令比较缓慢


来自  https://jingyan.baidu.com/article/6fb756ecc34440651958fb5c.html


普通分类: