在使用Linux或macOS日常开发中,熟悉一些基本的命令有助于提高工作效率。traceroute命令来自英文词组“Trace router”的拼写,其功能是用于追踪网络数据包传输路径。执行tracerouter命令后会默认发送一个40字节(用户可自行设置)大小的数据包到远程目标主机,从反馈信息我们可以得知数据包经过了哪些路径最终到达了终点。本篇学习记录traceroute命令的基本使用。
首先查看帮助文档:

语法格式:traceroute [参数] 域名或IP地址
参数解释:
| 参数 | 参数解释 |
| -4 | -4 基于IPv4网络协议 |
| -6 | 基于IPv6网络协议 |
| -d | 使用Socket层级的排错功能 |
| -f | 设置数据包的存活数值(TTL) |
| -F | 设置勿离断位 |
| -g | 设置来源路由网关 |
| -i | 使用指定的网卡发送出数据包 |
| -l | 使用ICMP回应取代UDP资料信息 |
| -m | 检测数据包的最大存活数值(TTL) |
| -n | 使用IP地址而非主机名称 |
| -p | 设置UDP传输协议的通信端口 |
| -r | 将数据包送到远端主机上 |
| -t | 设置检测数据包的TOS数值 |
| -T | 使用TCP SYN进行探测 |
| -U | 使用UDP到特定端口进行路由 |
| -w | 设置等待远端主机回报的时间 |
| --help | 显示帮助信息并退出 |
| --version | 显示版本信息并退出 |

1.-4 基于IPv4网络协议

2.-6 基于IPv6网络协议

3.-d 使用Socket层级的排错功能

4.-f 设置数据包的存活数值(TTL)

5.-F 设置勿离断位

6.-g 设置来源路由网关

7.-i 使用指定的网卡发送出数据包

8.-I 使用ICMP回应取代UDP资料信息,通过 -l 参数,用户能够显式地设定发出的数据包所使用的本地地址。这对于具有多个网络接口的设备尤其有用,因为它可以帮助管理员验证某个特定网卡的路由行为。

这条命令会尝试从本地地址 192.168.31.61 发送数据包到目标主机 baidu.com 并追踪其路径。
需要注意的是,在实际操作过程中,如果当前系统并未配置该地址或者没有权限绑定至这个地址,则可能会遇到错误提示。因此确保所提供的本地地址有效并且属于运行 traceroute 进程可访问范围之内是非常重要的。
另外值得注意的一点是,并非所有的操作系统版本都支持这一选项;某些较老的操作系统可能不具备这样的功能特性。所以在部署之前最好先查阅对应发行版手册页确认兼容性问题。
对于那些希望深入理解如何利用不同参数组合来优化诊断流程的人来说,了解这些细节无疑是有益处的。它不仅有助于更精确地定位潜在故障节点位置,同时也提供了更多灵活性以便适应复杂环境下的需求变化。
9.-m 检测数据包的最大存活数值(TTL),追踪本地数据包到指定网站经过的传输路径,跳数最大为7次

10.-n 使用IP地址而非主机名称:追踪本地数据包到指定网站经过的传输路径,显示IP地址而不是主机名:

11.-p 设置UDP传输协议的通信端口,当希望使用 UDP 协议进行追踪时,可以通过 -U 和 -p 参数组合实现。

12.-r 将数据包送到远端主机上

在 Linux 的 traceroute 命令中,-r 是一个特殊的选项,表示绕过正常的路由表并直接将数据包发送到目标地址。这通常用于测试目的,可以忽略本地网关设置而直接尝试连接远程主机。然而需要注意的是,在大多数现代操作系统和网络环境中,该功能可能受到限制或不可用。
13.-s 设置本地主机送出数据包的IP地址

14.-t 设置检测数据包的TOS数值


15.-T 使用TCP SYN进行探测

-p 443 指定使用 HTTPS 端口(443)进行探测。

16.-U 使用UDP到特定端口进行路由

17.-w 设置等待远端主机回报的时间.
-
-w <等待时间>:设置等待每个探测响应的超时时间(默认单位是秒)。例如,-w 2表示等待 2 秒。 -
<目标主机或IP>:可以是域名(如example.com)或 IP 地址(如8.8.8.8)

18.--help 显示帮助信息并退出

19.--version显示版本信息并退出

参考:
https://www.runoob.com/linux/linux-comm-traceroute.html
https://www.linuxcool.com/traceroute
https://ipcmen.com/traceroute
https://man.linuxde.net/traceroute
1067

被折叠的 条评论
为什么被折叠?



