域名解析ttl(DNS域名解析实战)

上一篇文章介绍了DNS域名解析的流程, 如果你只看流程,过几天就忘记了。今天介绍下如何实际操作,自己也加深下理解。本文以我的mac电脑为例介绍,Windows会写出相关命令,但是需要你自己亲测了。如何查看域名的解析过程: mac 使用dig 命令来查询DNS的解析过程,如下图:QUESTION SECTION: 表示查询域名是一个A记录,后面的文章就介绍ANSWER SECTION : 表示这个域名对应的IP地址还可以使用 +trace 跟踪域名的解析过程,如下图所示:从 根域名(.)到 gTLD Server(.xin)到Name Server(clips.xin)。整个过程都显示出来了。清理DNS缓存: mac打开终端,输入:sudo killall mDNSResponder
输入密码清理。windows系统使用ipconfig/flshdns
Java JVM的DNS缓存 Java JVM会将DNS解析结果进行缓存。在InetAddress类中完成的,看下面的代码:
public class Test {
public static void main(String[] args) throws Exception {
InetAddress i = InetAddress.getByName(“www.clips.xin”);
System.out.println(i.getHostAddress());
}
}
会输出www.clips.xin对应的IP地址。那么jVM如何配置缓存的信息的呢?以我的Java如下: /Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home/jre/lib/security
目录下 java.security 文件,默认的 配置为: networkaddress.cache.ttl=-1 ,networkaddress.cache.negative.ttl=10 如下图所示默认networkaddress.cache.ttl=-1 表示用不失效, networkaddress.cache.negative.ttl=10 表示缓存10秒。这种设置,如果线上的域名解析错了。但是jvm 用的还是缓存的地址,会报错。那么怎么修改呢?可以通过修改java.secutity文件的默认值。或者在Java启动参数设置: -Dsun.net.inetaddr.ttl=xxx 来修改默认值。最后,InetAdress最好是单例模式,不能每次都会进行一次完整的解析,非常的耗时。

本文出自快速备案,转载时请注明出处及相应链接。

本文永久链接: https://www.175ku.com/27416.html