您的位置:首页 > 其它

ping 命令出现time to live exceeded原因及解决办法

2015-11-14 19:57 561 查看
Time to live, 有时简称TTL, 是一个计算机网络术语, 描述在一个数据包在计算机和网络设备间传送的时候, 在它可以被丢弃之前, 可以经历的设备的数目的一个极限值. 在IPv4中, TTL是一个8个二进制位的IP协议的一个header. 这个值可以被认为是数据包在internet系统中可以跳跃的次数上限. TTL是由数据包的发送者设置的, 在前往目的地的过程中, 每经过一台主机或设备, 这个值就要减少一点. 如果在数据包到达目的地前, TTL值被减到了0,那么这个包将作为一个ICMP错误的数据包被丢弃. TTL可以防止无法到达目的地的数据包在网络中无限制地传递, 形成"不死包". 不同的协议对TTL初始值的设置不同, 从下图中可以看出ping命令设置TTL的值是128。



一些用法===========在ping命令中, 观察TTL的值, 可以理解发送ping命令的机器到目的地之间逻辑上的距离大致是多少. 在分析NLB这样结构中的网络包时(一台机器即有一个NLB的IP, 又有一个本机的IP), 即使是相同NLB的IP地址发过来的, 你也可以通过TTL来查看一下, 如果这两个值不同, 说明即使给你发送数据包的是同一个IP, 那么他们也是不同的主机.作者:netadmin 发布于:2014-8-1 12:48 Friday 分类:聚生网管监控软件相关TTL即生存时间(time-to-live),指定数据包被路由器丢弃之前允许通过的网段数量。它是IP(中文全称:网络协议)协议包中的一个值,它告诉网络,数据包在网络中的时间是否太长而应被丢弃。在使用ping命令ping某个ip地址时,会显一个TTL值,TTL是生存时间的意思,就是说这个ping的数据包能在网络上存在多少时间。一般Linux系统的TTL值为64或255,Windows NT/2000/XP系统的默认TTL值为128,Win7系统的TTL值是64,Windows 98系统的TTL值为32,UNIX主机的TTL值为255。由于黑客在入侵前都会探测操作系统的TTL值,因此我们可以通过修改TTL值让别人不清楚我安装的系统是什么,这样可以提高系统的安全性。修改方法如下:

方法一、通过人工修改注册的方式来修改操作系统的TTL值,具体方法如下:1.点击“运行”


2.输入“REGEDIT”



3.进入注册表编辑器



4.选择HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters,然后再右侧你就可以看到DefaultTTL,然后你双击或右键点击即可修改。注意:在“基数”哪里选择“十进制”,然后在左边的框内输入“128“,然后点击确定,重启电脑即可。

当然,有时候你会发现右侧没有DefaultTTL这个键值,如下图所示,那么这个时候我们就需要点击右键,在右侧新建一个defaultTTL(DWORD类型),修改数值数据,如下图:



点击“确定”,重启系统就可以了。

方法二、如果不习惯操作注册表编辑器,我们也可以编写一个注册表文件进行导入,在记事本中输入:Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\system\currentcontrolset\services\Tcpip\Parameters]
"DefaultTTL"=dword:00000080输入完后将该文件保存为TTL.reg,双击进行导入即可。

"DefaultTTL"=dword:000000ff"是用来设置系统缺省TTL值的,如果你想将自己的操作系统的TTL值改为其它操作系统的ICMP回显应答值,请改变"DefaultTTL"的键值,要注意它的键值为16进制。比如,"DefaultTTL"=dword:00000080“即相当于十进制的128.echo 64> /proc/sys/net/ipv4/ip_default_ttl
本文出自 “事在人为,知在天意” 博客,请务必保留此出处http://yangsj.blog.51cto.com/8702844/1712788
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: