首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JVM和OS DNS缓存

JVM和OS DNS缓存
EN

Stack Overflow用户
提问于 2013-06-28 10:36:56
回答 3查看 20.4K关注 0票数 13

我面临JVM和DNS的问题。

我正在阅读的所有内容(包括医生们)都说,我可以使用networkaddress.cache.ttl禁用JVM缓存,这种缓存可以使用java.security.Security.setProperties设置,但可以通过使用系统属性的标准方法设置。我已经成功地将其更改为0,因此JVM中不再有缓存。

但是现在,在每次调用InetAddress.getByName("mytest.com")时,我的JVM似乎都在使用系统DNS缓存(在我的例子中是Windows 8)。实际上,在方法的两个调用之间,我已经为"mytest.com“更改了mytest.com属性,但是IP返回仍然相同。以下是工作流程:

  1. setCachePolicyInJVM(0)在我的Java代码中。
  2. mytest.com中将BIND9设置为192.168.1.188,重新启动。
  3. InetAddress.getByName("mytest.com").getHostAddress(); -> 192.168.1.188
  4. mytest.com -> 192.168.1.160中设置BIND9,重新启动。
  5. InetAddress.getByName("mytest.com").getHostAddress(); -> 192.168.1.188 (如果没有缓存,则应为160 )。
  6. 刷新Windows DNS
  7. InetAddress.getByName("mytest.com").getHostAddress(); -> 192.168.1.160

我已经读过几次JVM不使用系统缓存的消息,但这是错误的:显然是这样的。

如何绕过OS DNS缓存,在每次调用中强制执行新的DNS解析?

EN

回答 3

Stack Overflow用户

发布于 2014-01-07 17:45:55

我想我遇到了这个问题,或者一个非常相似的问题。然后,我为JVM实现了自己的DNS提供程序,详细信息请参见如何更改java dns服务提供程序。您可以使用上面提到的dnsjava,也可以使用自己的方法。

票数 5
EN

Stack Overflow用户

发布于 2018-02-15 13:41:38

您可以编辑$JAVA_HOME/jre/lib/security/java.security for Java6-8和$JAVA_HOME/conf/security/java.security属性文件以添加以下属性。

代码语言:javascript
复制
networkaddress.cache.ttl=1

无法在命令行中设置它。

因为这两个属性是安全策略的一部分,所以它们不是由-D选项或System.setProperty() API设置的,而是作为安全属性设置的。

若要在代码中设置此属性,可以使用以下方法。

代码语言:javascript
复制
java.security.Security.setProperty("networkaddress.cache.ttl", "1")

或者在java命令行中添加以下属性。

代码语言:javascript
复制
-Dnetworkaddress.cache.ttl=1

还需要注意的是,只有在没有设置相应的networkaddress.cache.*属性时,值才是有效的。

有关更多细节,请参见Java 8网络特性Java 9网络属性Java缓存在VeriSign虚拟机中的应用

这个回答还添加了一些细节。

票数 1
EN

Stack Overflow用户

发布于 2017-03-03 07:59:40

这里看来,您应该设置sun.net.inetaddr.ttl。这对我有用。

链接中的示例:

代码语言:javascript
复制
java -Dsun.net.inetaddr.ttl=1 test
Enter the hostname
rrr
Output isrrr/129.145.146.100
Enter the hostname
rrr
Output isrrr/129.147.146.100
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17362758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档