traceroute命令详解

traceroute命令详解

扫码添加渲大师小管家,免费领取渲染插件、素材、模型、教程合集大礼包!

大家好,今天来介绍traceroute命令详解(路由追踪 tracert)的问题,以下是渲大师小编对此问题的归纳和整理,感兴趣的来一起看看吧!

路由跟踪命令traceroute / tracert

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

当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,

但基本上来说大部分时候所走的路由是相同的。

linux系统中,我们称之为traceroute,在MS Windows中为tracert。

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

一条路径上的每个设备traceroute要测3次。输出结果中包括每次测试的时间(ms)和设备的名称(如有的话)及其IP地址。

说明:

记录按序列号从1开始,每个纪录就是一跳 ,每跳表示一个网关,我们看到每行有三个时间,单位是ms,其实就是-q的默认参数。

探测数据包向每个网关发送三个数据包后,网关响应后返回的时间;如果您用 traceroute -q 4 www.58.com ,表示向每个网关发送4个数据包。

有时我们traceroute 一台主机时,会看到有一些行是以星号表示的。

出现这样的情况,可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。

有时我们在某一网关处延时比较长,有可能是某台网关比较阻塞,也可能是物理设备本身的原因。

当然如果某台DNS出现问题时,不能解析主机名、域名时,也会 有延时长的现象;

您可氏胡以加歼嫌-n 参数来避免DNS解析,以IP格式输出数据。

如果在局域网中的不同网段之间,我们可以通过traceroute 来排查问题所在,是主机的问题还是网关的问题。

如果我们通过远程来访问某台服务器遇到问题时,我们用到traceroute 追踪数据包所经过的网关,提交IDC服务商,也有助于解决问题;

但目前看来在国内解决这样的问题是比较困难的,就是我们发现问题所在,IDC服务商也不可能帮助我们解决。

说明:

Traceroute的工作原理:

Traceroute最简单的基本用法是:traceroute hostname

Traceroute程序的设计是利歼改拦用ICMP及IP header的TTL(Time To Live)栏位(field)。

首先,traceroute送出一个TTL是1的IP datagram

(其实,每次送出的为3个40字节的包,包括源地址,目的地址和包发出的时间标签)到目的地,

当路径上的第一个路由器(router)收到这个datagram时,它将TTL减1。此时,TTL变为0了,

所以该路由器会将此datagram丢掉,并送回一个「ICMP time exceeded」消息

(包括发IP包的源地址,IP包的所有内容及路由器的IP地址),traceroute 收到这个消息后,

便知道这个路由器存在于这个路径上,接着traceroute 再送出另一个TTL是2 的datagram,

发现第2 个路由器...... traceroute 每次将送出的datagram的TTL 加1来发现另一个路由器,

这个重复的动作一直持续到某个datagram 抵达目的地。当datagram到达目的地后,

该主机并不会送回ICMP time exceeded消息,因为它已是目的地了,那么traceroute如何得知目的地到达了呢?

Traceroute在送出UDP datagrams到目的地时,它所选择送达的port number 是一个一般应用程序都不会用的号码(30000 以上),

所以当此UDP datagram 到达目的地后该主机会送回一个「ICMP port unreachable」的消息,

而当traceroute 收到这个消息时,便知道目的地已经到达了。所以traceroute 在Server端也是没有所谓的Daemon 程式。

Traceroute提取发 ICMP TTL到期消息设备的IP地址并作域名解析。

每次 ,Traceroute都打印出一系列数据,包括所经过的路由设备的域名及 IP地址,三个包每次来回所花时间。

traceroute关于traceroute(路由追踪)的原理分析

traceroute 主要利用 IP 数据包的 TTL 字段值 + ICMP 来实现,它发送的用于探测网络路径的数据包的 IP 之上的协议可以是 UDP、TCP或ICMP。

协议表示该数据报文所携带的数据所使用的协议类型,占 8 位。
该字段可以方便目的主机的 IP 层知道按照什么协议来处理数据部分。不同的协议有专门不同的协议号。
例如,TCP 的协议号为 6,UDP 的协议号为 17,ICMP 的协议号为 1。

不同模式下,探测过程中设计的数据包如下:

UDP 探测数据包(目标端口大于 30000) + 中间网关发回 ICMP TTL 超时数据包 + 目标主机发回 ICMP Destination Unreachable 数据包

TCP [SYN] 探测数据包(默认目标端口为 80) + 中间网关发回 ICMP TTL 超时数据包 + 目标主机发回 TCP [SYN ACK] 数据包

ICMP Echo (ping) Request 探测数据包 + 中间网关发回 ICMP TTL 超时数据包 + 目标主机发回 ICMP Echo (ping) reply 数据包

UDP 端口扫描比较麻烦,它同TCP不一样,因为它不需要建立连接。
我们向 目标主机 的固定端口发送UDP数据包,可以得到 两种结果:

在运营商的路由器上,UDP 与 ICMP 的待遇大不相同。
为了利于 troubleshooting,ICMP ECHO Request/Reply 是不会封的,而 UDP 则不同。
UDP 常被用来做网络攻击,因为 UDP 无需连接,因而没有任何状态约束它,比较方便攻击者伪造源 IP、伪穗旅凯造目的端口发送任意多的 UDP 包,长度自定义。
所以运营商为安全考虑,对于 UDP 端口常常采用白名单 ACL,就是只有 ACL 允许的端口才可以通过,没有明确允许的则统统丢弃。比如允许 DNS/DHCP/SNMP 等。

当网络工程师用Ping时,Ping在偷摸做啥事儿?
ping命令是依托于 ICMP协议的, ICMP协议的存在就是为了更高效的转发 IP数据报和提高交付成功的机会。
ping命令除了依托于 ICMP,在局域网下还要借助于 ARP协议, ARP协议能根据 IP地址反查出计算机的 MAC地址。
另外 ARP是有缓存的,为了保证 ARP的准确性,计算机会更新ARP缓存。

有时我们traceroute 一台主机时,会看到有一些行是以星号表示的。
出现这样的情况,可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。
有些路由器会隐藏的自己的位置,不让ICMP Timeout的消息通过,结果就是在那一跳上始终会显示星号。此外镇宽服务器也可以伪造traceroute路径的,不过一般应用服务器也没有理由这么做,所以Traceroute的结果还是能够为网络分析提供一些参考的。

Linux下traceroute程序默认发送的探测包为UDP协议,windows下tracert、mtr,以及Linux下mtr默认都发送的是icmp的数据包,并不是所有网关都会如实返回 ICMP 超时报文。处于安全性考虑,大多数防火墙以及启用了防火墙功能的路由器缺省配置为不返回各种猜唤 ICMP 报文,其余路由器或交换机也可能被管理员主动修改配置变为不返回 ICMP 报文。因此 Traceroute 程序不一定能拿到所有的沿途网关地址。所以,当某个 TTL 值的数据包得不到响应时,并不能停止这一追踪过程,程序仍然会把 TTL 递增而发出下一个数据包。这个过程将一直持续到数据包发送到目标主机,或者达到默认或用参数指定的追踪限制(maximum_hops 默认最大为30)才结束追踪

如果在局域网中的不同网段之间,我们可以通过traceroute 来排查问题所在,是主机的问题还是网关的问题。
如果我们通过远程来访问某台服务器遇到问题时,我们用到traceroute 追踪数据包所经过的网关,提交IDC服务商,也有助于解决问题;但目前看来在国内解决这样的问题是比较困难的,就是我们发现问题所在,IDC服务商也不可能帮助我们解决。

动态图解traceroute(路由追踪)的原理与实现
https://zhuanlan.zhihu.com/p/404043710

IP数据报格式详解
http://c.biancheng.net/view/6411.html

解析为何traceroute探测的时候中间有些节点探测不到?
https://zhuanlan.zhihu.com/p/122465496

traceroute使用与实现原理分析
https://zhuanlan.zhihu.com/p/36811672

traceroute(路由追踪)的原理及实现
https://www.jianshu.com/p/75a5822d0eec

为什么目标地址ping能通,但是tracetoute不通?
https://cloud.tencent.com/developer/article/1642331

只会用ping测试网络通不通?高级网工还会这么用
https://zhuanlan.zhihu.com/p/458358961

当网络工程师用Ping时,Ping在偷摸做啥事儿?
https://zhuanlan.zhihu.com/p/513184441

traceroute原理
https://www.cnblogs.com/zyd112/p/7196341.html

TCP/UDP/ICMP Traceroute的原理及区别
https://zhuanlan.zhihu.com/p/101810847

traceroute命令详解是什么

用来跟踪到目标地址所走的线路.使用ping的方姿滚春式,但设置了每个数据包可经历的最大跳数,当路线中的节点发现包到此节点时已多于迹耐最在跳数,会向源发一个错误反馈,这样从1递增最大跳数,就可以获得到ping到目标地址的各个节点的反馈信息,就组成一条到目标地址所走的线路。

就像一根线,上面拴一个摄像头,线不够长时就拍张照说明到哪线不够长了,如果把这根线拴在一辆公交车长,每次备圆线不够长,当我们得到照片时就增加线长,这样最后我们就获得了公交所走的线路。

出处

《后汉书·皇后纪上·明德马皇后》:“时后前母姊女贾氏亦以选入,生肃宗。帝以后无子,命令养之。”郭沫若《洪波曲》第五章六:“宪兵团长抢过扩音器,便命令群众迅速解散。”

《楚辞·天问》“何亲揆发足,周之命以咨嗟” 汉王逸注:“当此之时,周之命令已行天下,百姓咨嗟叹而美之也。” 宋梅尧臣《重赋白兔》诗:“见公於钜鼇之峰,正草命令辞如虹。” 明高明《琵琶记·强就鸾凤》:“独立画堂听命令,珠帘底下一声传。”

如何跟踪路由

目录方法1:Windows1、打开“开始”2、输入命令提示符。3、点击4、确定要跟踪路线的网站。5、输入“traceroute”命令。6、查看结果。方法2:Mac1、打开“聚焦”2、输入网络实用工具。3、打开“网络实用工具”。4、点击Traceroute5、输入网站地址。6、辩仿点击跟踪7、查看结果。方法3:iPhone1、下载iNetTools应用。2、打开iNetTools。3、点击屏幕中间的跟踪路由4、点击“主机名或IP地址”文本框。5、输入网站地址。6、点击屏幕右上角的开始7、查看结果。方法4:安卓1、下载PingTools应用。2、打开PingTools。3、出现提示时,点击接受4、点击屏幕左上角的?5、点击路由跟踪6、点击屏幕顶部的文本框。7、输入网站地址。8、点击屏幕右上角的跟踪9、查看结果。方法5:Linux1、打开“终端”。2、安装Traceroute。3、确定要跟踪路由的网站。4、输入“traceroute”命令。5、查看结果。本文教你如何在电脑或智能手机上运行“traceroute”命令。“traceroute”命令允许你跟踪IP包在你电脑和它的目的地之间的停止位置,这样可以帮你确定导致出现连接问题的网络故障。
方法1:Windows
1、打开“开始”。点击屏幕左下角的Windows标志。随后会弹出开始菜单。
2、输入命令提示符。这样就会搜索电脑上的“命令提示符”程序。
3、点击“命令提示符”。它在菜单顶部。这样就会打开“命令提示符”。
4、确定要跟踪路线的网站。例如,如果你想查看你的电脑和Facebook之间的网关列表,你可以使用Facebook网站。
5、输入“traceroute”命令。输入tracert website.com—确保将website.com替换为你需要跟踪的网站的名称和扩展名(例如,facebook.com)——并按? Enter。你不需要加入网址中的https://或www.部分。
如果你有网站的IP地址,可用它来代替URL。
6、查看结果。“命令提示符”将提供多达30个不同的网关(也称为“跳跃”),IP包通过这些网关传递。当你看到“跟踪完成”出现在跳跃列表下面时,说明跟踪过程已经成功完成。如果你看到空白跟踪条目,可以忽略它们。它们表示跟踪是作为结果返回,缺灶丛而不是通过网关返回。
方法2:Mac
1、打开“聚焦”。点击屏幕右上角的放大镜图标即可。
2、输入网络实用工具。这样就会搜索电脑上的“网络实用工具”程序。
3、打开“网络实用工具”。双击搜索结果顶部附近的网络实用工具。这样打开“网络实用工具”窗口。
4、点击Traceroute。它是位于“网络实用工具”窗口顶部的选项卡。
5、输入网站地址。在窗口顶部附近的文本框中,输入要跟踪路径的网站地址(或IP地址)。例如,要跟踪到wikiHow网站的路径,你需要输入wikihow.com。
你不需要加入网址中的https://或www.部分。
6、点击跟踪。它是页面右侧的一个蓝色按钮。这样“网络实用工具”就会开始跟踪到达所选网站经过的路径。
7、查看结果。Traceroute将显示跟踪程序在到达目的地的途中所经过的网关的列表。如果你看到空白跟踪条目,可以忽略它们。它们表示跟踪是作为结果返回,而不是通过网关返回。
方法3:iPhone
1、下载iNetTools应用。如果你的iPhone上已经安装了iNetTools,可以跳过这一步。打开 App Store,然后进行下列操作:点击搜索
点击搜索栏。
输入inettools
点击inettools - ping,dns,port scan
点击iNetTools旁边的获取。
输入Touch ID或Apple ID密码。
2、打开iNetTools。在App Store中点击打开,或者点击iPhone主屏幕上类似雷达显示器的iNetTools应用图标。
3、点击屏幕中间的跟踪路由。
4、点击“主机名或IP地址”文本框。你可以在屏幕顶部附近找到这个选项。这样就会打开iPhone的屏幕键盘。
5、输入网站地址。输入要跟踪路径的网址(或IP地址)。例如,要跟踪到谷歌最近的服务器的路径,你需要输入google.com。
你不需要加入网址中的https://或www.部分。
6、点击屏幕右上角的开始。iNetTools将开始跟踪到你伏樱指定地址的路由。
7、查看结果。“结果”标题对面的转轮消失后,你就可以查看跟踪程序在到达目的地的途中经过的每个网关的地址。如果你看到空白跟踪条目,可以忽略它们。它们表示跟踪是作为结果返回,而不是通过网关返回。
方法4:安卓
1、下载PingTools应用。如果你的安卓上已经安装了PingTools,可以跳过这一步。打开 Google Play商店,然后进行下列操作:点击搜索栏。
输入pingtools
点击结果中的PingTools Network Utilities。
点击安装
出现提示时,点击接受。
2、打开PingTools。在“Google Play商店”中点击打开,或在安卓的“应用抽屉”中点击PingTools应用图标。
3、出现提示时,点击接受。这样就会同意PingTools的使用条款,并打开应用。如果你之前打开过PingTools,你或许可以跳过这一步。
4、点击屏幕左上角的?。随后会出现弹出菜单。
5、点击路由跟踪。这个选项位于弹出菜单的中间。
6、点击屏幕顶部的文本框。这样就会打开安卓的屏幕键盘。如果这个文本框中已经有一个网址,在继续操作之前删除它。
7、输入网站地址。输入要跟踪路径的网址(或IP地址)。例如,要跟踪到Twitter最近的服务器的路径,你需要输入twitter.com。
你不需要加入网址中的https://或www.部分。
8、点击屏幕右上角的跟踪。这样PingTools就会开始跟踪到你所选地址的路由。
9、查看结果。跟踪完成后,你可以查看跟踪程序在到达目的地的途中经过的每个网关的地址。如果你看到空白跟踪条目,可以忽略它们。它们表示跟踪是作为结果返回,而不是通过网关返回。
方法5:Linux
1、打开“终端”。这一步取决于你的Linux版本,但是大多数发行版都需要打开菜单,然后从程序列表中选择终端。在大多数Linux发行版上,你也可以按Alt+Ctrl+T来打开“终端”。
2、安装Traceroute。安装方法如下:输入sudo apt install traceroute,并按? Enter。
输入密码并按? Enter。
输入y,如果出现提示,按? Enter。
等待Traceroute安装。
3、确定要跟踪路由的网站。例如,如果你想查看你的电脑和YouTube之间的网关列表,你可以使用YouTube网站。
4、输入“traceroute”命令。输入traceroute website.com—确保将website.com替换为你需要跟踪的网站的名称和扩展名(例如,youtube.com)——并按? Enter。你不需要加入网址中的https://或www.部分。
如果你有网站的IP地址,可用它来代替URL。
5、查看结果。跟踪完成后,你可以查看跟踪程序在到达目的地的途中经过的每个网关的地址。如果你看到空白跟踪条目,可以忽略它们。它们表示跟踪是作为结果返回,而不是通过网关返回。
小提示你的电脑和所选网站之间的网关数量不包括任何空白条目。例如,如果你看到12个网关有3个空白条目,那么在你电脑和网站之间只有9个网关。
警告你的电脑和所选网站之间的网关列表可能会随时变化。

分享到 :
相关推荐

国外云主机带宽的租用事项(国外云主机带宽的租用事项有哪些)

很多个人博客。外贸网站或者游戏网站会租用国外云主机。租用国外云主机最先要做的就是选择...

美国直连vps如何提高数据安全性(美国直连vps如何提高数据安全性能)

美国直连vps提高数据安全性的方法:1。定期备份数据。在一定的范围内保障系统的正常运...

宝塔启动命令是什么(宝塔内网怎么启动不了)

大家好,今天来介绍宝塔启动命令是什么(宝塔定时关闭网站)的问题,以下是渲大师小编对此...

双线机房服务器托管和BGP机房有什么不同

双线机房服务器托管和BGP机房有什么不同?服务器托管是双线机房好還是多线主机房好。服...

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注