Linux traceroute命令详解

traceroute是一个用于确定IP数据报传输经过的路由的网络实用程序。当您需要诊断网络连接问题时,可以使用它来发现到达目标主机的数据包的路径,并检测是否存在延迟或数据包丢失等问题。

下面是traceroute命令的常用用法和一些示例:

命令格式

traceroute [-dFITnreAV] [-f第一跳] [-g第一跳] [-i接口] [-M最大跳数] [-m最大跳数] [-p端口号] [-q查询数] [-s来源IP] [-t生存时间] [-w超时时间] [-z等待时间] [主机名/IP地址]

常用选项
-d:使用SO_DEBUG套接字选项;
-F:不进行故障检测;
-I:使用ICMP ECHO 包代替UDP数据包;
-T:使用TCP SYN包代替UDP数据包;
-n:不进行DNS解析;
-r:忽略普通的路由表,直接使用目标主机作为下一跳路由;
-e:打印出ICMP信息;
-A:使用AS数来显示路由路径。

示例

# 基本使用方式
traceroute www.google.com

# 指定最大跳数为20
traceroute -m 20 www.google.com

# 不进行DNS解析
traceroute -n www.google.com

# 使用TCP SYN包代替UDP数据包
traceroute -T www.google.com

# 使用ICMP ECHO 包代替UDP数据包
traceroute -I www.google.com

traceroute命令的输出包括目标主机、经过的路由器、每个路由器的IP地址和名称、距离以及数据包从源主机到目标主机所需的时间。通过分析这些信息,您可以确定网络连接问题的原因,并采取相应的措施进行修复。

Linux mtr命令使用详解

mtr 命令是一种网络诊断工具,它结合了 ping 和 traceroute 命令的功能。它可以在网络中跟踪数据包并在数据包发送之间输出路由。在诊断网络性能问题时,mtr 常常被用作对某些网络节点进行测试以确定网络中断或网络拥塞的地点。

mtr 命令的用法:

mtr [options] <destination>

常见选项包括:
-c:指定发送数据包的次数,默认值是 10。
-r:不使用域名解析来发现路由器。
-w:设置等待响应的时间,单位为毫秒,默认值是 5 秒。
-s:设置要发送的数据包大小(以字节为单位)。
-n:不将 IP 地址转换为主机名进行显示。

以下是一个示例:

mtr -c 5 -w 2000 google.com

上面的命令会向 Google 发送 5 个数据包,并在等待 2 秒后显示路由器的信息。