You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

3.4 KiB

traceroute

说明

traceroute命令 跟踪发送到远程主机的数据包所采用的路由。此命令可在LANWAN或Internet上运行。远程主机可以由IP地址指定

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

traceroute通过发送小的数据包到目的设备直到其返回来测量其需要多长时间。一条路径上的每个设备traceroute要测3次。输出结果中包括每次测试的时间(ms)和设备的名称如有的话及其ip地址

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

实例

traceroute www.58.com

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

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

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

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

traceroute --icmp 198.124.42.201    # 使用traceroute查找路径中的跃点
traceroute -m 10 www.baidu.com # 跳数设置
traceroute -n www.baidu.com    # 显示IP地址不查主机名
traceroute -p 6888 www.baidu.com  # 探测包使用的基本UDP端口设置6888
traceroute -q 4 www.baidu.com  # 把探测包的个数设置为值4
traceroute -r www.baidu.com    # 绕过正常的路由表,直接发送到网络相连的主机
traceroute -w 3 www.baidu.com  # 把对外发探测包的等待响应时间设置为3秒