Spring启动应用程序在没有-Djava.net.preferIPv4Stack = true和-Djava.net.preferIPv4Addresses参数的情况下侦听IPv6

时间:2017-06-23 09:41:32

标签: spring spring-boot jar ipv6 ipv4


关于Spring boot jar的问题。 在生产机器上运行jar时:

java -jar xyz.jar

它没有回应我的要求。因为它正在监听ipv6。

但是当我将应用程序作为
运行时 java -jar xyz.jar -Djava.net.preferIPv4Stack = true -Djava.net.preferIPv4Addresses

它回应了我的要求。

生产机器的配置是否会导致应用程序通过ipv6进行监听,还是有其他原因?

幸运的是 -Djava.net.preferIPv4Stack = true
-Djava.net.preferIPv4Addresses
参数解决了我的问题。但我很困惑!!

注意:Tomcat用作嵌入式服务器。
Spring boot version 1.5.4 RELEASE

1 个答案:

答案 0 :(得分:0)

https://docs.oracle.com/javase/8/docs/technotes/guides/net/ipv6_guide/index.html中,我读到“ Java网络堆栈首先检查底层OS是否支持IPv6。如果支持IPv6,它将尝试使用IPv6堆栈。”

要检查您的Linux机器是否支持IPv6,只需运行“ cat / proc / net / if_inet6”,如果看到一些输出,则表示已启用。