JBoss AS 7 不接受远程连接
Posted
技术标签:
【中文标题】JBoss AS 7 不接受远程连接【英文标题】:JBoss AS 7 not accepting remote connections 【发布时间】:2012-04-25 08:02:39 【问题描述】:我正在使用 JBoss AS 7 并尝试使用 IP(从 Intranet 中的计算机)连接到我的应用程序。它不工作。如果我从具有服务器的计算机上进行测试,如果我通过 localhost (http://localhost:8080/MySystem....) 可以看到系统正在运行,但如果我尝试使用 IP (http://: 8080/我的系统....)。
有什么帮助吗?
【问题讨论】:
会不会是防火墙问题? 请发布您的配置文件,并说明您使用的是独立实例还是托管域。 它是一个独立的实例。配置文件是默认的(我只是添加了数据库连接字符串)。 【参考方案1】:您是否在配置文件中配置了 IP 地址?
在不配置 ip 地址的情况下启动 jboss 会将 jboss 的默认地址设置为适合开发或生产服务器的 localhost,其中 apache 用作 jboss 的代理并驻留在同一台机器上。
设置JBoss的ip地址:
To a specific IP address
run.sh -b 10.62.31.31
To localhost or the IP address assigned to the server
run.sh -b 0.0.0.0
你也可以在<interfaces>
section下的配置文件中更改。
【讨论】:
如果你在 Windows 中,shell 脚本是run.bat
在 JBoss AS7 中它根本不运行 :-) 它是独立服务器的standalone.sh 和域服务器的 domain.sh。在 Windows 上,只需将 sh 更改为 bat。
JBoss AS 7 中没有“run.sh”脚本,虽然在这个版本中实现了 -b 开关,但不应依赖它,因为在 IP 所在的位置存在继承问题在配置文件中特别声明。该开关仅适用于 java 令牌“$jboss.bind.address.management:127.0.0.1”仍然存在的情况。与以往一样,使用管理控制台或管理 CLI 提供了最好的管理选项。
谢谢,你能告诉我我应该在管理控制台或管理 CLI 中做什么来配置它吗?还是我应该更改standalone.bat?
你肯定不想改变standalone.bat。从 CLI 启动服务器时,您可以执行 /interface=public:write-attribute(name=inet-address,value="$jboss.bind.address:xxx.xxx.xxx.xxx") 来设置 IP .在 Web 控制台上更容易。只需查看接口下的配置文件即可。【参考方案2】:
答案是编辑standalone.xml并插入标签any-address而不是绑定到127.0.0.1的inet-address
<interfaces>
<interface name="management">
<inet-address value="127.0.0.1"/>
</interface>
<interface name="public">
<any-ipv4-address/>
</interface>
</interfaces>
【讨论】:
<any-address />
有效,<any-ipv4-address />
在我的情况下无效。
对我来说也一样; 有效。我有版本 7.1.1。但是,这个也可以: 我在standalone.xml 中将 127.0.0.1 (localhost) 更改为 0.0.0.0。有用。请注意安全性。
<interfaces>
<interface name="management">
<inet-address value="$jboss.bind.address.management:0.0.0.0"/>
</interface>
<interface name="public">
<inet-address value="$jboss.bind.address:0.0.0.0"/>
</interface>
<!-- TODO - only show this if the jacorb subsystem is added -->
<interface name="unsecure">
<!--
~ Used for IIOP sockets in the standard configuration.
~ To secure JacORB you need to setup SSL
-->
<inet-address value="$jboss.bind.address.unsecure:0.0.0.0"/>
</interface>
</interfaces>
【讨论】:
这行得通,但你能澄清一下“注意安全”是什么意思吗? 回复。安全性,如果您希望服务器可从外部访问,那么这不是问题,但您可能希望将管理界面限制为不可远程访问。 允许绑定到 0.0.0.0 意味着服务器会监听到任何 ip 的连接,所以你应该注意这一点。【参考方案4】:别忘了防火墙!
如果您修复了绑定地址,但仍然无法连接到 JBoss,请尝试绕过服务器的防火墙。
要在 Linux RHEL 上停止防火墙,请使用以下命令:
/etc/init.d/iptables stop
更新: 在未安装 iptables 的 RHEL7 上 - 您可以使用:
systemctl stop firewalld
【讨论】:
以上是关于JBoss AS 7 不接受远程连接的主要内容,如果未能解决你的问题,请参考以下文章
远程客户端访问部署在 JBOSS AS 中的 EJB 的 JNDI 循环(7.1.1 最终版)
EJB 远程客户端从 JBoss AS 7.1 迁移到 Wildfly 8.1