我有一个WebSphere应用服务器8,我已经部署了一个企业应用程序。现在我想让该应用程序的Web GUI可以访问。所以我设置了一个端口(9080),添加了一个Web容器传输链,为端口9080添加了一个虚拟主机,并将该虚拟主机添加到我已部署的应用程序中。但是,它无法访问。
通过WebSphere的日志,我发现了这条消息:
TCPC0001I: TCP Channel TCP_6 is listening on host * (IPv6) port 9080.
显然,该频道侦听IPv6,而不是IPv4。我用netstat验证了这一点,这确实表明服务器的进程只监听IPv6。如何让频道在IPv4上收听呢?我已经尝试在服务器的JVM中设置java.net.preferIPv4Stack=true
,但这并没有改变任何内容。
有趣的是,Websphere的控制台可通过IPv4获得,但我无法弄清楚它的哪一部分配置不同以便它可以正常工作,而我的设置却没有。
答案 0 :(得分:5)
在许多操作系统上,通配符地址(*
或::/0
)上的IPv6套接字可以接受IPv4和IPv6连接。例如,Mac OS netstat将显示这样的套接字,即tcp46
,以显示它们是双栈。其他操作系统(包括Linux)只是将它们显示为tcp6
,即使它们也接受IPv4连接。
所以它可能正好听IPv4,它只是一种令人困惑的方式向系统管理员显示它。