您当前的位置:首页 > 电脑百科 > 软件技术 > 操作系统 > linux

一文掌握linux系统路由跟踪指令traceroute

时间:2019-10-31 13:35:28  来源:  作者:

概述

traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,但基本上来说大部分时候所走的路由是相同的。


安装traceroute

 yum -y install traceroute
一文掌握linux系统路由跟踪指令traceroute

 


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[参数][主机]

常见命令参数:

-d 使用Socket层级的排错功能。
-f 设置第一个检测数据包的存活数值TTL的大小。
-F 设置勿离断位。
-g 设置来源路由网关,最多可设置8个。
-i 使用指定的网络界面送出数据包。
-I 使用ICMP回应取代UDP资料信息。
-m 设置检测数据包的最大存活数值TTL的大小。
-n 直接使用IP地址而非主机名称。
-p 设置UDP传输协议的通信端口。
-r 忽略普通的Routing Table,直接将数据包送到远端主机上。
-s 设置本地主机送出数据包的IP地址。
-t 设置检测数据包的TOS数值。
-v 详细显示指令的执行过程。
-w 设置等待远端主机回报的时间。
-x 开启或关闭数据包的正确性检验。

实例

1、traceroute 用法简单、最常用的用法

命令:

traceroute www.baidu.com 
一文掌握linux系统路由跟踪指令traceroute

 

说明:

记录按序列号从1开始,每个纪录就是一跳 ,每跳表示一个网关,我们看到每行有三个时间,单位是 ms,其实就是-q的默认参数。探测数据包向每个网关发送三个数据包后,网关响应后返回的时间;如果用 traceroute -q 4 www.58.com ,表示向每个网关发送4个数据包。

有时我们traceroute 一台主机时,会看到有一些行是以星号表示的。出现这样的情况,可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。

有时我们在某一网关处延时比较长,有可能是某台网关比较阻塞,也可能是物理设备本身的原因。当然如果某台DNS出现问题时,不能解析主机名、域名时,也会 有延时长的现象;您可以加-n 参数来避免DNS解析,以IP格式输出数据。

如果在局域网中的不同网段之间,我们可以通过traceroute 来排查问题所在,是主机的问题还是网关的问题。如果我们通过远程来访问某台服务器遇到问题时,我们用到traceroute 追踪数据包所经过的网关,提交IDC服务商,也有助于解决问题。


2、跳数设置

命令:

traceroute -m 10 www.baidu.com
一文掌握linux系统路由跟踪指令traceroute

 


3、显示IP地址,不查主机名

命令:

traceroute -n www.baidu.com
一文掌握linux系统路由跟踪指令traceroute

 


4、探测包使用的基本UDP端口设置6888

命令:

traceroute -p 6888 www.baidu.com
一文掌握linux系统路由跟踪指令traceroute


Tags:linux traceroute   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除,谢谢。
▌相关推荐
概述traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可...【详细内容】
2019-10-31  Tags: linux traceroute  点击:(54)  评论:(0)  加入收藏
▌简易百科推荐
配置终端的C开发环境在Ubuntu 终端系统中开发,需要依赖一些命令行工具,对比使用Windows 下的IDE集成开发环境会有一些不同之处。在Linux 下一般使用gcc 编译C 语言代码,gcc 可...【详细内容】
2021-07-14  大话幽默一刻    Tags:Linux C   点击:(4)  评论:(0)  加入收藏
进程的分类在 CPU 的角度看进程行为的话,可以分为两类: CPU 消耗型:此类进程就是一直占用 CPU 计算,CPU 利用率很高 IO 消耗型:此类进程会涉及到 IO,需要和用户交互,比如键盘输入,占...【详细内容】
2021-07-13  linux技术栈    Tags:Linux   点击:(7)  评论:(0)  加入收藏
关机/重启/注销/*即刻关机*/shutdown -h now/*10 min 后关机*/shutdown -h 10/*11:00 关机*/shutdown -h 11:00/*重启*/shutdown -r now/*重启*/reboot 系统信息和性能查看...【详细内容】
2021-07-08  大话幽默一刻    Tags:Linux 命令   点击:(12)  评论:(0)  加入收藏
1.存放用户账号的文件在哪里?/etc/passwd2.如何删除一个非空的目录?rm -rf 目录名3.查看当前的工作目录用什么命令?pwd4.创建一个文件夹用什么命令?mkdir5.哪个Linux命令可...【详细内容】
2021-07-08  网络小伙儿  今日头条  Tags:Linux常识   点击:(10)  评论:(0)  加入收藏
今天遇到了一个问题,想查询一下,linux系统上这个用户是普通用户,还是怎么着。只是记得在/etc/passwd目录下,能查看,但是看了一下,发现每行的意思不清楚,特意整理了一下。在Linux /e...【详细内容】
2021-07-06  互联网路上的学习者    Tags:Linux   点击:(10)  评论:(0)  加入收藏
ulimit [-HSTabcdefilmnpqrstuvx [limit]]利用ulimit命令可以对资源的可用性进行控制。-H选项和 -S 选项分别表示对给定资源的硬限制(hard limit)和软限制(soft limit)进行设置...【详细内容】
2021-07-04  半路出家的运维攻城狮    Tags:Linux   点击:(11)  评论:(0)  加入收藏
网络是云计算绕不开的话题,其中主机内部网络性能开销最大的就是数据拷贝,那么通常情况下,当网卡接收到数据后,要经过几次拷贝才能被应用程序接收呢 ?下图是一个网卡接收数据的整...【详细内容】
2021-07-04  云技术趣谈  今日头条  Tags:Linux   点击:(13)  评论:(0)  加入收藏
简介再生龙(Clonezilla)是一个免费的灾难恢复、硬盘克隆、硬盘映像档制作的部署和解决方案,由台湾的国家高速网络与计算中心(国网中心)所开发,以 GNU 通用公共许可协议(GPL)发布。它...【详细内容】
2021-07-04  网络小伙儿    Tags:Clonezilla   点击:(10)  评论:(0)  加入收藏
kali安装docker报错Unable to locate package docker kali@kali:~$ sudo apt install docker docker-composeReading package lists... DoneBuilding dependency treeReadin...【详细内容】
2021-06-25  思源Edward  今日头条  Tags:docker报错   点击:(22)  评论:(0)  加入收藏
第一步要先看一下ssh服务起来了没有 systemctl status ssh 如果ssh服务已经起来了,还是不能ssh远程访问 第二步:修改ssh配置文件 vim /etc/ssh/sshd_config #用vim修改ssh配置...【详细内容】
2021-06-23  思源Edward    Tags:   点击:(21)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条