Linux虚拟机中JBoss 8080端口无法连接及跨VM访问问题求助
Azure RHEL虚拟机JBoss服务连接问题解决步骤
一、修正第一台虚拟机的JBoss监听范围
第一台JBoss已启动但仅监听127.0.0.1,导致外部无法访问,需修改配置让它监听所有网卡:
- 找到JBoss核心配置文件:
- 独立模式路径:
$JBOSS_HOME/standalone/configuration/standalone.xml - 域模式路径:
$JBOSS_HOME/domain/configuration/domain.xml
- 独立模式路径:
- 修改网络接口与端口绑定:
找到<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"/> - 重启JBoss服务:
# 停止服务(根据实际启动方式调整) $JBOSS_HOME/bin/jboss-cli.sh --connect command=:shutdown # 后台启动服务 $JBOSS_HOME/bin/standalone.sh & - 验证监听状态:执行
netstat -ln | grep 8080,输出应为tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN
二、解决另外两台虚拟机的8080端口无监听问题
这两台要么JBoss未启动,要么配置未正确开放监听:
- 检查JBoss服务状态:
# 以systemd管理的服务为例,实际服务名可能为jboss-eap或jboss-as systemctl status jboss-eap.service - 若服务未启动,启动并设置开机自启:
systemctl start jboss-eap.service systemctl enable jboss-eap.service - 重复第一部分的配置修改,确保JBoss监听
0.0.0.0:8080 - 执行
netstat -ln | grep 8080确认端口处于监听状态
三、配置Azure环境实现跨服务器访问
- 确认虚拟网络归属:确保3台虚拟机在同一个Azure虚拟网络(VNet)和子网内,不同VNet需配置VNet对等互联
- 检查网络安全组(NSG)规则:
- 登录Azure门户,找到虚拟机对应的NSG
- 添加入站规则:源选择
VirtualNetwork,目标端口填8080,协议选TCP,动作设为允许,优先级设为高于默认拒绝规则
- 验证主机名解析:同VNet内的虚拟机可通过Azure内部DNS解析主机名,测试命令:
能正常解析到IP即说明DNS配置有效ping 目标虚拟机主机名
四、最终连接验证
- 在堡垒机上测试访问虚拟机:
curl -v http://VMhostname:8080,应返回JBoss的正常响应 - 在任意一台虚拟机上测试跨服务器访问:
curl -v http://另一台VMhostname:8080,确认连通正常
内容的提问来源于stack exchange,提问作者Lekha
相关产品推荐
相关产品推荐

