让 WebSphere 监听 IPv4
Make WebSphere listen on IPv4
我有一个 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
)上的 IPv6 套接字可以接受 IPv4 和 IPv6 连接。例如 Mac OS netstat 会显示诸如 tcp46
之类的套接字,以表明它们是双栈的。其他操作系统,包括 Linux,即使它们也接受 IPv4 连接,也只是将它们显示为 tcp6
。
所以它可能在 IPv4 上监听得很好,这只是向系统管理员显示它的一种令人困惑的方式。
我有一个 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
)上的 IPv6 套接字可以接受 IPv4 和 IPv6 连接。例如 Mac OS netstat 会显示诸如 tcp46
之类的套接字,以表明它们是双栈的。其他操作系统,包括 Linux,即使它们也接受 IPv4 连接,也只是将它们显示为 tcp6
。
所以它可能在 IPv4 上监听得很好,这只是向系统管理员显示它的一种令人困惑的方式。