dns域名解析的方法有(DNS域名解析实战)

上一篇文章介绍了DNS域名解析的流程, 如果你只看流程,过几天就忘记了。今天介绍下如何实际操作,自己也加深下理解。本文以我的mac电脑为例介绍,Windows会写出相关命令,但是需要你自己亲测了。

如何查看域名的解析过程:

mac 使用dig 命令来查询DNS的解析过程,如下图:

dns域名解析的方法有(DNS域名解析实战)(1)

QUESTION SECTION: 表示查询域名是一个A记录,后面的文章就介绍

ANSWER SECTION : 表示这个域名对应的IP地址

还可以使用 trace 跟踪域名的解析过程,如下图所示:

dns域名解析的方法有(DNS域名解析实战)(2)

从 根域名(.)到 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 如下图所示

dns域名解析的方法有(DNS域名解析实战)(3)

默认networkaddress.cache.ttl=-1 表示用不失效, networkaddress.cache.negative.ttl=10 表示缓存10秒。

这种设置,如果线上的域名解析错了。但是jvm 用的还是缓存的地址,会报错。那么怎么修改呢?可以通过修改java.secutity文件的默认值。或者在Java启动参数设置: -Dsun.net.inetaddr.ttl=xxx 来修改默认值。

最后,InetAdress最好是单例模式,不能每次都会进行一次完整的解析,非常的耗时。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页