Linux ping TTL是什么

本地主机通过网络连接目标主机时,通常不是直连,中间会经过路由器,而且通常会经过多个路由器。

TTL表示中间经过路由器的个数情况。

TTL = TTL默认值 - 经过路由器个数

TTL默认值由Linux系统默认设置,ping不同域名时而且可能不同,一般是2的N次方,通常是64、128,最大值为255。

数据包每经过1个路由器,则TTL减1;当TTL减为0,则数据包被丢弃,避免网络中的死循环传递。


经过路由器个数越少,TTL相对越大(因为默认值可能不同),网络状况更好。


1 Linux中查看TTL

本人VMWare虚拟机测试的TTL值始终为默认值,没有减去经过路由器个数。

以下测试在阿里云服务器上测试。


ping www.baidu.com

img

TTL为53,TTL默认值基本确定为64,则经过路由器数量=64-53=11。


CentOS通过命令进行路由跟踪

安装traceroute工具

yum install -y traceroute

路由跟踪www.baidu.com

traceroute www.baidu.com

img

其中列出9项路由,与上述TTL值一致。


ping必应

ping www.bing.com

img

其中TTL值为111,则基本判断TTL默认值为128,经过路由器数=128-111=17。

traceroute www.bing.com

查询路由项为15。基本一致。


2 Windows中查看TTL

因为虚拟机中查看TTL不准,为便于大家理解TTL,介绍在Windows中查看TTL。

以下操作均在本地Windows中操作。


Win + DOS 启动DOS窗口。

ping www.baidu.com

img

TTL为49,经过路由器数=64-49=15。


路由跟踪

tracert www.baidu.com

img

图示共16条路由,与上述数据基本一致。