You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux虚拟机中JBoss 8080端口无法连接及跨VM访问问题求助

Azure RHEL虚拟机JBoss服务连接问题解决步骤

一、修正第一台虚拟机的JBoss监听范围

第一台JBoss已启动但仅监听127.0.0.1,导致外部无法访问,需修改配置让它监听所有网卡:

  1. 找到JBoss核心配置文件:
    • 独立模式路径:$JBOSS_HOME/standalone/configuration/standalone.xml
    • 域模式路径:$JBOSS_HOME/domain/configuration/domain.xml
  2. 修改网络接口与端口绑定:
    找到<socket-binding-group>节点下的http绑定,确保关联的public接口配置为监听所有IP:
    <!-- 调整public接口监听所有网卡 -->
    <interface name="public">
        <inet-address value="${jboss.bind.address.public:0.0.0.0}"/>
    </interface>
    <!-- 确保http绑定使用public接口 -->
    <socket-binding name="http" port="${jboss.http.port:8080}" interface="public"/>
    
  3. 重启JBoss服务:
    # 停止服务(根据实际启动方式调整)
    $JBOSS_HOME/bin/jboss-cli.sh --connect command=:shutdown
    # 后台启动服务
    $JBOSS_HOME/bin/standalone.sh &
    
  4. 验证监听状态:执行netstat -ln | grep 8080,输出应为tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN

二、解决另外两台虚拟机的8080端口无监听问题

这两台要么JBoss未启动,要么配置未正确开放监听:

  1. 检查JBoss服务状态:
    # 以systemd管理的服务为例,实际服务名可能为jboss-eap或jboss-as
    systemctl status jboss-eap.service
    
  2. 若服务未启动,启动并设置开机自启:
    systemctl start jboss-eap.service
    systemctl enable jboss-eap.service
    
  3. 重复第一部分的配置修改,确保JBoss监听0.0.0.0:8080
  4. 执行netstat -ln | grep 8080确认端口处于监听状态

三、配置Azure环境实现跨服务器访问

  1. 确认虚拟网络归属:确保3台虚拟机在同一个Azure虚拟网络(VNet)和子网内,不同VNet需配置VNet对等互联
  2. 检查网络安全组(NSG)规则:
    • 登录Azure门户,找到虚拟机对应的NSG
    • 添加入站规则:源选择VirtualNetwork,目标端口填8080,协议选TCP,动作设为允许,优先级设为高于默认拒绝规则
  3. 验证主机名解析:同VNet内的虚拟机可通过Azure内部DNS解析主机名,测试命令:
    ping 目标虚拟机主机名
    
    能正常解析到IP即说明DNS配置有效

四、最终连接验证

  • 在堡垒机上测试访问虚拟机:curl -v http://VMhostname:8080,应返回JBoss的正常响应
  • 在任意一台虚拟机上测试跨服务器访问:curl -v http://另一台VMhostname:8080,确认连通正常

内容的提问来源于stack exchange,提问作者Lekha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 13:23:11