我们在解析域名时经常出现 TTL 这个字段,里面默认写的是 10 分钟。

另外,有时候我们 ping 某域名或 IP 的时候,会出现 TTL= XXX。

一、什么是域名的 TTL 值?

TTL(Time-To-Live),就是一条域名解析记录在 DNS 服务器中的存留时间。当各地的 DNS 服务器接受到解析请求时,就会向域名指定的 NS 服务器发出解析请求从而获得解析记录;在获得这个记录之后,记录会在 DNS 服务器中保存一段时间,这段时间内如果再接到这个域名的解析请求,DNS 服务器将不再向 NS 服务器发出请求,而是直接返回刚才获得的记录;而这个记录在 DNS 服务器上保留的时间,就是 TTL 值。

二、TTL 值设置的应用:

1、增大 TTL 值,以节约域名解析时间,给网站访问加速。

一般情况下,域名的各种记录是极少更改的,很可能几个月、几年内都不会有什么变化。我们完全可以增大域名记录的 TTL 值让记录在各地 DNS 服务器中缓存的时间加长,这样在更长的一段时间内,我们访问这个网站时,本地 ISP 的 DNS 服务器就不需要向域名的 NS 服务器发出解析请求,而直接从缓存中返回域名解析记录。

国内和国际上很多平台的 TTL 值都是以秒为单位的,很多的默认值都是 3600,也就是默认缓存 1 小时,这个值实在有点小了,难道会有人一个小时就改一次域名记录吗?您可以根据自己的需要把这个值适当的扩大,例如要缓存一天就设置成 86400。Godaddy 的 TTL 设置比较直观,但总共只有 5 个值可以选定,即使切换到高级设置模式也是如此,有点死板了。网站赢利环境所迫,LifeTyper.com 的 TTL 值是设置成了最大值 1 周,设置成更大的值可能会有写不必要的麻烦,例如当您要更换空间时,这些旧的记录要很久才过期并被更新。

2、减小 TTL 值,以减少更换空间时的不可访问时间。

更换空间 99.9% 会有 DNS 记录更改的问题,因为缓存的问题,新的域名记录在有的地方可能生效了,但在有的地方可能等上一两天甚至更久才生效。结果就是有的人可能访问到了新服务器,有的人访问到了旧服务器。仅仅是访问的话,这也不是什么大问题,但如果涉及到了邮件发送,这个就有点麻烦了,说不定哪封重要信件就被发送到了那已经停掉的旧服务器上。

为了尽可能的减小这个各地的解析时间差,合理的做法是:

1)先查看域名当前的 TTL 值,我们假定是 1 天。

2)修改 TTL 值为可设定的最小值,可能的话,建议为 1 分钟,就是 60。

3)等待一天,保证各地的 DNS 服务器缓存都过期并更新了记录。

4)设置修改新记录,这个时候各地的 DNS 就能以最快的速度更新到新的记录。

5)确认各地的 DNS 已经更新完成后,把 TTL 值设置成您想要的值,TTL=60 还是太小了点。

记住,这一切都能起作用的前提,是那些 DNS 服务器完全遵守这些标准和规范,否则 NS 服务器上怎么设置 TTL 都是白搭,但目前来看还没发现这么不讲规矩的 DNS 服务器。

问题是,没有真正意义上的高速 NS 和 DNS 服务器。就像这里提到的,Godaddy 在国外评测拿到最高分,而在国内使用时速度比万网快不了多少;万网在国内速度表现突出,在国外的评测网站中得分却可能很低。如果您有钱像 Google、微软那样在全世界部署大量的 CDN 加速服务器和 NS 服务器,那当然没问题,问题是这对绝大部分网站来说都不可能,国内国外不是不可兼得,而是很难。

也许有人以为可以通过给域名指定两个 NS 记录(一个国内一个国外)来提高解析速度,但这也是不可能的,因为只有在 DNS 服务器从第一个 NS 服务器那里获取记录失败时才会向第二个 NS 服务器发送解析请求。我所知道的一个最廉价和有效的提速方法,就是修改刚才上面说的域名记录的 TTL 值。

三、返回结果 ping 命令,修改其 TTL 值来防护安全:

在一般情况下我们通过 ping 对方让对方返回给您的 TTL 值大小,粗略的判断目标主机的系统类型是 Windows 系列还是 UNIX/Linux 系列,通常 Windows 系列的系统返回的 TTL 值在 100-130 之间,而 UNIX/Linux 系列的系统返回的 TTL 值在 240-255 之间,例如 ping www.ieeye.com 返回的 TTL 是 240,对方的系统很可能是 Linux,而另外一个目标的 TTL 是 120,那么说明它使用的系统也许是 Windows。

TTL值的更多相关文章

  1. 通过TTL值判断系统

    我们做网络的渗透测试,开始的时候会ping一下网站判断一下网站使用的系统,默认情况下, UNIX 255 LINUX 64WIN2K/NT 128WINDOWS 32 但是 每经过一个路由器就会减1这 ...

  2. 如何修改Linux系统的TTL值

    在网络中,黑客如果用ping命令去探测  一个主机,根据TTL基数可以推测操作系统的类型.对于一个没有经过任何网关和路由的网络, 直接ping对方系统得到的TTL值,被叫做"TTL基数&qu ...

  3. TTL值的含义以及与域名DNS TTL值的区别

    TTL值的含义以及与域名TTL值的区别 本文来源于时光漂流瓶 http://www.9usb.net , 原文地址: http://www.9usb.net/201004/ttl-yuyuming-t ...

  4. IBGP默认的TTL值为255

    结论: 1.IBGP默认的TTL值为255 组网图: 抓包内容: 1.在AR1和AR2之间抓包,只显示BGP包,显示内容如下:

  5. ping命令返回的TTL值判断操作系统

    通过简单的ping命令,查看返回的TTL值来判断对方的操作系统 生存时间(TTL)是IP分组中的一个值,网络中的路由器通过察看这个值就可以判断这个IP分组是不是已经在网络中停留了很久,进而决定是否要将 ...

  6. 如何修改Linux的TTL值

    原文地址:http://www.linuxidc.com/Linux/2011-11/47701.htm 网络黑客如果用ping命令去探测  一个主机,根据TTL基数可以推测操作系统的类型.对于一个没 ...

  7. 解释-DNS,A记录,CNAME记录,域名转向,SRV记录,TTL值,泛域名与泛解析,域名绑定

    http://www.lihongye.net/post/dns.html DNS DNS,Domain Name System或者Domain Name Service(域名系统或者域名服务).域名 ...

  8. 什么是TTL值?(简单明了的解释)

    什么是TTL值? TTL值全称是“生存时间(Time To Live)”,简单的说它表示DNS记录在DNS服务器上的缓存时间. 要理解TTL值,请先看下面的一个例子:假设,有这样一个域名myhost. ...

  9. 什么是域名的TTL值? ——一条域名解析记录在DNS缓存服务器中的存留时间

    什么是域名的TTL值? 转自:http://hizip.net/index.php/archives/20/TTL(Time-To-Live),就是一条域名解析记录在DNS服务器中的存留时间.当各地的 ...

随机推荐

  1. R语言 如何用IF语句判断 一个数字的奇偶

    jishu <- function(x){ ifelse(x%%2 ==0,F,T)}  

  2. Android图片二进制与Bitmap、Drawable之间的转换

    Android图片二进制与Bitmap.Drawable之间的转换 Java代码  public byte[] getBitmapByte(Bitmap bitmap){      ByteArray ...

  3. JUnit介绍,JUnit是什么?

    JUnit是什么? JJUnit是用于编写和运行可重复的自动化测试的开源测试框架, 这样可以保证我们的代码按预期工作.JUnit可广泛用于工业和作为支架(从命令行)或IDE(如Eclipse)内单独的 ...

  4. mysql存储过程----临时表 temporary

    在存储过程中可以使用临时表,下面有一个分割字符串的例子 语法 1.创建:create temporary table 表名(列信息); 2.删除:drop table 表名; 3.清空:truncat ...

  5. windows版mysql配置--my.ini

    完整配置如下: # power by phpStudy 2014 www.phpStudy.net 官网下载最新版 [client] port=3306 [mysql] [mysqld] port=3 ...

  6. MYSQL 分组合并函数

    From: http://blog.csdn.net/wwwyuanliang10000/article/details/27536175 MySQL中group_concat函数完整的语法如下:gr ...

  7. php json_decode无法解析特殊问好字符

    在通过别人接口请求信息的时候,偶尔会遇到由于部分字符,如以下情况,则通过json_decode是会返回null的 但是这种情况通常不是由于整体编码的问题,因为在解析的时候就是以utf-8的编码解析的 ...

  8. 50.EasyGank妹纸App

    50.EasyGank妹纸App 前言 基于MVP模式下 , RxJava+RxAndroid+Retrofit的组合 . RxJava RxAndroid Retrofit Okhttp Gson ...

  9. C++入门学习

    使用cout和cin,需要包括C++提供的输入输出库.#include <iostream>    标准输入输出头文件 <string>        using namesp ...

  10. Thinkphp5 多图上传

    html代码 <div class="content" id="content_list"> <!-- 上传部分 --> <for ...