Linux traceroute 原理及使用

这篇具有很好参考价值的文章主要介绍了Linux traceroute 原理及使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Linux traceroute 原理及使用

在某次接入数据的场景中,需要到对方 SFTP 服务器上,获取数据,但是在配置时发现在配置正确的情况下, 连接总是超时,最终排查后发现网络不通,打通网络后才正确连接,获取到数据。

那么,在 linux 中,我们有哪些排查网络互通的方法呢?本章节主要讲解 traceroute 的原理以及使用方法。

网络架构

这部分与网络架构强相关,需要了解网络层级结构:

请参考这里

traceroute 原理

tracerou``te 命令可以显示从本地到目标端的传输路径。在网络中,传递信息传输路径大体是一样的,对此 traceroute 通过发送不同的数据包,让经过的每个设备都返回当前节点的时间、名称、ip 地址,一直到终点。

数据包默认大小为 40 Bytes。


为了让经过的每个设备都返回信息,traceroute 设置 IP 数据包的 TTL 值来实现。可以理解为发送一个快递,如果在一段期限内没有送达,就请退还回来。

TTL Time to Live

一般指的是存活时间,但在这里特指还能通过几个设备。


traceroute 会首先发送 TTL=1 的 UDP 数据包,第一个设备将 TTL-1=0,就不再继续转发数据包,而是会返回一个 ICMP 的超时报文,报文中标示数据超时并附带当前 ip、名称信息。这样就得到了第一个设备的信息,traceroute 收到返回值后,继续发送 TTL=2 的数据包,直到尝试上限或者到达目的。

每个 TTL 默认会测试三次。

Linux traceroute 原理及使用


traceroute 协议

traceroute 默认为 UDP 协议数据包,但 UDP 由于只发送,无需连接,没有任何状态约束它,比较方便攻击者伪造源 IP、伪造目的端口发送任意长度的 UDP 包,长度自定义。所以一般会被大多数网站采用白名单的方式进行过滤。

除 UDP 以外,还可以使用 ICMP、TCP 协议进行测试。


traceroute 返回 ICMP 超时报文问题

拿到 TTL 的网关,并不是每个都会如实返回 ICMP 超时报文,这需要路由器设置。出于安全考虑,大多数防火墙以及开启了防火墙可能并不会返回对应 ICMP 超时报文。所以 traceroute 并不会因为某一次的超时报文缺失就停止发送请求,还会继续追踪到目标服务器的地址,一直到达到追踪上限,或者到目标服务器为止。


traceroute 参数

部分参数带有 <> 表示需要提供参数,下列表格列举了部分重要的参数,其余可以使用 man traceroute 进行查看:

man traceroute
参数 释义
-d debug 设置socket层级的日志为debug。
-f <n> first_ttl 设置第一个检测数据包的存活数值TTL的大小。默认为1,代表第一次TTL的数值。
-m <n> max_ttl 设置检测数据包的最大存活数值TTL的大小。默认为30,代表最多可以将TTL从最小测试到30。
-g\ <ip> gateway 设置来源路由网关,最多可设置8个。
-I <name> 指定使用哪个网络设备进行传输,如 eth0。
-I 使用ICMP协议进行传输,如果不指定为UDP。
-T 使用TCP协议进行传输,如果不指定为UDP。
-w <n> waittime 设置等待远端主机回复报文的时间。默认为5,代表等待5秒
-p <port> port 设置UDP传输协议的通信端口。
-r 忽略普通的RoutingTable,直接将数据包送到远端主机上。
-s <ip> 设置本地主机送出数据包的IP地址。
-t <n> 设置检测数据包的TOS数值。
-v 详细显示指令的执行过程。
-n 直接使用IP地址而非主机名称作为返回。
-x 开启或关闭数据包的正确性检验。
-F 设置勿离断位。

举例

使用 eth0 网卡、ICMP 协议测试发送到网址 www.huangyichun.com 之间的路由:

traceroute -I www.huangyichun.com -i eth0 -n

Linux traceroute 原理及使用

可以看到,优先解析了对应网址的 ip 地址,DNS 解析可以跳转在这里:

Linux DNS 解析与配置

获得 ip 地址后,就开始进行 TTL 包的发送。前 5 个都返回了 ICMP 超时报文,6/7/11/12/13 都没有能返回,也就是我们之前说的可能由于对应配置或者防火墙关系。总共进行了 15 次,就到达我们的目标服务器,停止了整个程序。

如果切换为其他协议如 UDP:

traceroute www.huangyichun.com -i eth0

Linux traceroute 原理及使用

可以看到就算 30 跳用完,也未能到达我们的目标服务器,而且从第二跳开始就有不同的分叉路,不同的协议会有不同的结果。(也有可能中间被防火墙阻止了 ICMP 回传)文章来源地址https://www.toymoban.com/news/detail-418366.html

到了这里,关于Linux traceroute 原理及使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 路由追踪工具 traceroute 使用技巧

    我想知道一个数据包从出发地到目的地所遵循的路由,即所有转发实体(中间的路由器)的 IP 地址。虽然不能保证所有数据包都走相同的路线,但通常都是一样的。路由信息非常有助于调试网络相关的问题。 此时使用 traceroute 工具能够输出数据包到特定目的地的完整路径。

    2024年02月06日
    浏览(12)
  • 在Android应用中集成使用traceroute工具

    在Android应用中集成使用traceroute工具

    背景知识 traceroute是一个常用于Linux系统的网络工具,它可显示数据包在IP网络中所经过路由的IP地址,理想状态下可探测本机和目标地址之间的所有路由节点。 其他操作系统中也有类似的替代品,实现都大同小异。一般用法如下: 上面例子一共有14行输出结果,我们可称之为

    2024年02月17日
    浏览(10)
  • Packet Tracer -使用 Ping 和 Traceroute测试 网络的连通性

    Packet Tracer -使用 Ping 和 Traceroute测试 网络的连通性

    地址分配表 目标 第 1 部分:测试和恢复 IPv4 连通性 第 2 部分:测试和恢复 IPv6 连通性 场景 本练习中存在连通性方面的问题。除了 收集和记录有关网络的信息,您还需要找出 问题,并实施可行的解决方案来恢复网络的连通性。 注意:用户 EXEC 密码是 cisco。 特权 EXEC 密码为

    2024年02月03日
    浏览(10)
  • Linux NTP原理及配置使用

    Linux NTP原理及配置使用

    一、NTP简介 1.NTP简介   NTP(Network Time Protocol,网络时间协议)是用来使网络中的各个计算机时间同步的一种协议。它的用途是把计算机的时钟同步到世界协调时UTC,其精度在局域网内可达0.1ms,在互联网上绝大多数的地方其精度可以达到1-50ms。 (1s=1000ms) NTP服务器就是利用NT

    2024年02月13日
    浏览(12)
  • traceroute命令介绍

    traceroute 是一种网络诊断命令,用于确定 IP 数据包从源到目的地所需经过的路径。它通过发送特殊的 IP 数据包来确定中间路由器的数量和响应时间。当出现网络问题时,traceroute 通常用于检查问题发生的位置。下面是 traceroute 命令的详细介绍: 语法: 选项: -U :使用 UDP 数

    2024年02月16日
    浏览(6)
  • Centos离线安装traceroute

    1、安装yumdownloader命令 2、查看系统是否安装了traceroute 3、下载rpm包 4、拷贝rpm包到离线环境,执行安装命令

    2024年02月12日
    浏览(14)
  • K8s组件:etcd安装、使用及原理(Linux)

    K8s组件:etcd安装、使用及原理(Linux)

    1.1 介绍 分布式系统架构中对一致性要求很高,etcd就满足了分布式系统中的一致性要求。 实现了分布式一致性键值对存储的中间件,支持跨平台,有活跃的社区。 etcd 是基于go实现的一个分布式键值对存储(类比Redis),设计用来可靠而快速的保存关键数据并提供访问。通过分布

    2024年02月03日
    浏览(15)
  • MAC 网络命令(PING + TRACEROUTE)

    MAC 网络命令(PING + TRACEROUTE)

    目录 ICMP 1.PING 发送接收过程 ping命令详解​​​​​​​ 使用技巧 2.TRACEROUTE 作用1工作原理 作用2工作原理 traceroute命令详解 在学习这两个命令之前,需要先简单的了解一下ICMP网络协议 ICMP 全称是  Internet Control Message Protocol ,也就是 互联网控制报文协议 ICMP 主要的功能包括

    2024年02月05日
    浏览(8)
  • 网络故障排除之Traceroute命令详解

    网络故障排除之Traceroute命令详解

      遇到网络故障的时候,你一般会最先使用哪条命令进行排障? 除了Ping,还有Traceroute、Show、Telnet又或是Clear、Debug等等。 今天安排的,是 Traceroute 排障命令详解,给你分享3个经典排障案例哈 。   Traceroute是为了探测源节点到目的节点之间数据报文所经过的路径。 利用IP报文

    2024年02月12日
    浏览(9)
  • 【Linux系统基础快速入门详解】Linux核心find命令原理详解和每个命令使用场景以及实例

    【Linux系统基础快速入门详解】Linux核心find命令原理详解和每个命令使用场景以及实例

    鱼弦:CSDN内容合伙人、CSDN新星导师、51CTO(Top红人+专家博主) 、github开源爱好者(go-zero源码二次开发、游戏后端架构 https://github.com/Peakchen) find 命令是在 Linux 操作系统中用于搜索文件和目录的命令行工具。它可以根据不同的条件来搜索特定的文件和目录,这些条件可以是文

    2024年02月07日
    浏览(11)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包