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

Ali*_*gan 5 spring jar ipv4 ipv6 spring-boot


关于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启动版1.5.4 RELEASE

Pie*_*tto 3

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

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