即使在standalone.xml文件中正确绑定了IP地址,也无法远程访问jboss

我正在使用JBOSS EAP 7.我使用该命令启动它

sh standalone.sh -b 0.0.0.0 

以下是我的IPconfiguration,当不从命令行显式绑定。

  <interfaces> <interface name="management"> <inet-address value="${jboss.bind.address.management:127.0.0.1}"/> </interface> <interface name="public"> <inet-address value="${jboss.bind.address:0.0.0.0}"/> </interface> </interfaces> 

除此之外,我还在standalone.xml文件中更改了绑定IP。 当我启动它时,它不显示任何错误。 我没有在我的服务器上使用fail2ban或任何其他types的防火墙,我正在使用端口8050。

为了确认我的服务器是否在该端口上侦听,我运行了下面的命令

 sudo netstat -tlnp 

与输出:

 tcp 0 0 0.0.0.0:8050 0.0.0.0:* LISTEN 4670/java 

为了确认这是jboss,我跑了

 pgrep -f jboss 

在这个例子中得到相同的PID,即4670。

我检查server.log,一切都是正常的。 因此,我的结论是JBOSS运行良好在提到的端口与适当的绑定(我给0.0.0.0 IP能够从任何地方远程访问)。 但是我仍然无法从浏览器或DHC客户端访问它。 可能出了什么问题?

做下面的testing来找出你的问题是什么以及如何解决它:

  • 对于公共接口,您应该使用您的服务器IP地址。 我build议你使用标签<any-address/>而不是IP地址。

所以你的standalone.xml应该如下所示:

 <interfaces> <interface name="management"> <inet-address value="127.0.0.1"/> </interface> <interface name="public"> <any-address/> </interface> </interfaces> 
  • 上面的解决scheme应该可能解决您的问题。 但是如果不这样,在你的configuration文件中使用grep 127.0.0.1来查看是否有任何你已经错过的改变为0.0.0.0 ,例如grep -R 127.0.0.1 /opt/wildfly/*

  • 如果一切正常,但你不知道是什么原因造成的问题,请检查是否收到数据包/请求,你可以使用tcpdump来检查它。

最后一个可能的原因可能是您的VPS提供商阻止任何非世界各地使用的端口,所以您将需要联系他们。 为确保您是否应该联系您的提供商,请执行以下testing:

  • 既然你在评论中提到你可以访问你的Apache索引页面,请停止你的JBoss服务,把你的Apache端口从80改为8050,重启你的web服务器并检查你是否仍然可以在8050上看到你的apache索引页面。 – 既然你在评论中提到你不能访问你的索引页,而Apache不使用默认的80端口,我们可以得出如下结论:

结论[根据聊天会议]

根据我们在聊天会话中所做的testing,OP可以访问Apache索引页面,而Apache被设置在80端口上,但是除80以外的其他任何端口都无法访问。所以我们可以得出结论,提供者正在过滤和阻塞其他端口因此,OP应联系VPS提供商,并要求他们允许他需要的端口。 而这个问题的发生是由于VPS提供商的防火墙,而不是OP将会做出的任何configuration或设置。