【发布时间】:2017-06-01 08:37:21
【问题描述】:
我在 AWS Lambda 中托管了一个 Alexa Skill,它使用 AsyncHttpClient 在以下示例 URL 下调用 IPv6 REST 服务:
http://[2a12:5375:4151:2300:1353:a632:5f4e:c232]:4711/rest/test
现在我的问题是,我总是遇到以下异常:
ava.util.concurrent.ExecutionException: java.net.ConnectException: Protocol family unavailable
如果我检查分配给底层服务器或应用程序的 IP 地址?,我会得到以下地址(也是示例):
ip-10-23-56-1.eu-west-1.compute.internal: 10.23.56.1
所以我想,因为我使用的是 IPv6 而系统使用的是 IPv4,所以我无法让它工作? 我可以从另一台服务器成功调用我的 REST 服务。
我也在使用以下系统属性:
System.setProperty("java.net.preferIPv6Addresses", "true");
System.setProperty("java.net.preferIPv4Stack", "false");
是否有任何解决方案可以在 IPv4 底层系统上提供“隧道”来隧道 IPv6 地址以调用 REST 服务?或者有没有更简单的解决方案?
【问题讨论】:
-
您无法从仅 IPv4 的地方访问 IPv6 地址(除非您使用某些隧道软件,例如 Teredo)
标签: java aws-lambda ipv6 alexa alexa-skills-kit