linux中跟踪路由命令,Linux命令:traceroute命令(路由跟踪)

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: 【8月更文挑战第3天】traceroute是用来检测发出数据包的主机到目标主机之间所经过的网关数量的工具

traceroute是用来检测发出数据包的主机到目标主机之间所经过的网关数量的工具。traceroute的原理是试图以最小的TTL 存活时间 发出探测包来跟踪数据包到达目标主机所经过的网关 然后监听一个来自网关ICMP的应答。发送数据包的大小默认为38个字节。

原理 程序利用增加存活时间 TTL 来实现其功能。每当数据包(3个数据包包括源地址 目的地址和包发出的时间标签)经过一个路由器 其存活时间就会减1。当其存活时间是0时 主机便取消数据包 并传送一个ICMP Internet控制报文协议。它是TCP/IP协议族的一个子协议 用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据 但是对于用户数据的传递起着重要的作用。 TTL数据包给原数据包的发出者。

traceroute程序完整过程 首先它发送一份TTL字段为1的IP数据包给目的主机 处理这个数据包的第一个路由器将TTL值减1 然后丢弃该数据报 并给源主机发送一个ICMP报文 “超时”信息 这个报文包含了路由器的IP地址 这样就得到了第一个路由器的地址 然后traceroute发送一个TTL为2的数据报来得到第二个路由器的IP地址 继续这个过程 直至这个数据报到达目的主机。

1.命令格式:

traceroute [参数] [主机]

2.命令功能

traceroute指令让你追踪网络数据包的路由途径 预设数据包大小是40Bytes 用户可另行设置。

具体参数格式 traceroute [-dFlnrvx][-f 存活数值 ][-g 网关 …][-i 网络界面 ][-m 存活数值 ][-p 通信端口 ][-s 来源地址 ][-t 服务类型 ][-w 超时秒数 ][主机名称或IP地址][数据包大小]

3.命令参数

-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 开启或关闭数据包的正确性检验。

4 实例

实例4.1 traceroute www.baidu.com


说明:

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

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

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

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

实例4.2 跳数设置

命令 traceroute -m 10 www.baidu.com

结果

说明:通过结果可以看到存活数值 10 当存活数值 0时 主机便取消数据包

实例3 探测包使用的基本UDP端口设置6888

命令 traceroute -p 6888 www.baidu.com

结果

实例4 把对外发探测包的等待响应时间设置为3秒

命令 traceroute -w 3 www.baidu.com

结果

目录
相关文章
|
1天前
|
Linux Shell
Linux 中 Tail 命令的 9 个实用示例
Linux 中 Tail 命令的 9 个实用示例
17 6
Linux 中 Tail 命令的 9 个实用示例
|
6天前
|
Linux 应用服务中间件 nginx
|
2天前
|
机器学习/深度学习 安全 网络协议
Web安全-Linux网络命令
Web安全-Linux网络命令
8 1
|
7天前
|
Ubuntu Linux Shell
Linux系统命令 安装和文件相关命令
本文档详细介绍了Linux系统中的常用命令,包括软件安装卸载命令如`dpkg`和`apt-get`,压缩与解压命令如`gzip`、`bzip2`和`xz`,以及`tar`命令用于打包和解包。此外还介绍了文件分割命令`split`,文件操作命令如`cat`、`head`、`tail`、`more`、`less`等,管道命令和`wc`、`grep`、`find`、`cut`、`sort`、`uniq`、`diff`等实用工具。最后,文档还讲解了文件属性相关的命令如`chmod`、`chown`、`chgrp`以及创建硬链接和软链接的`ln`命令。
|
7天前
|
Linux Shell 网络安全
Linux 用户管理命令
本文详细介绍了Linux系统中的各类常用命令,包括用户管理(如`adduser`, `usermod`, `passwd`等)、系统操作(如关机、重启、注销)、磁盘管理(如`df`, `mkfs`, `mount`)及网络管理(如`ifconfig`, `ping`, `ssh`)等。通过具体示例展示了每个命令的基本用法和应用场景,帮助用户更好地理解和掌握Linux系统的管理和操作技巧。
|
6天前
|
存储 Ubuntu Linux
linux中的find 命令详细用法
本文介绍了如何将 `find` 命令与 `exec` 结合使用,通过具体示例展示了多种应用场景,如显示文件属性、重命名文件、收集文件大小、删除特定文件、执行工具、更改文件所有权和权限、收集 MD5 值等。文章还探讨了 `{} \;` 和 `{} +` 的区别,并演示了如何结合 `grep` 命令进行内容搜索。最后,介绍了如何在一个 `find` 命令中使用多个 `exec` 命令。这为 Linux 用户提供了强大的文件管理和自动化工具。
|
6天前
|
Shell Linux API
C语言在linux环境下执行终端命令
本文介绍了在Linux环境下使用C语言执行终端命令的方法。首先,文章描述了`system()`函数,其可以直接执行shell命令并返回结果。接着介绍了更强大的`popen()`函数,它允许程序与命令行命令交互,并详细说明了如何使用此函数及其配套的`pclose()`函数。此外,还讲解了`fork()`和`exec`系列函数,前者创建新进程,后者替换当前进程执行文件。最后,对比了`system()`与`exec`系列函数的区别,并针对不同场景推荐了合适的函数选择。
|
12天前
|
Linux 网络安全 Python
linux后台运行命令screen的使用
linux后台运行命令screen的使用
47 2
linux后台运行命令screen的使用
|
12天前
|
Ubuntu Linux
查看Linux系统架构的命令,查看linux系统是哪种架构:AMD、ARM、x86、x86_64、pcc 或 查看Ubuntu的版本号
查看Linux系统架构的命令,查看linux系统是哪种架构:AMD、ARM、x86、x86_64、pcc 或 查看Ubuntu的版本号
119 3
|
18天前
|
存储 监控 安全
在Linux中,⼀个EXT3的文件分区,当使用touch test.file命令创建⼀个新文件时报错,报错的信息是提示磁盘已满,但是采用df -h命令查看磁盘大小时,只使用了,60%的磁盘空间,为什么会出现这个情况?
在Linux中,⼀个EXT3的文件分区,当使用touch test.file命令创建⼀个新文件时报错,报错的信息是提示磁盘已满,但是采用df -h命令查看磁盘大小时,只使用了,60%的磁盘空间,为什么会出现这个情况?
下一篇
DDNS