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>

【讨论】:

&lt;any-address /&gt; 有效,&lt;any-ipv4-address /&gt; 在我的情况下无效。 对我来说也一样; 有效。我有版本 7.1.1。但是,这个也可以: 我尝试了超过 2 天。但无法修复。此解决方案对我有用。我使用此解决方案将 替换为 ..oohhh ..谢谢你:-D 大家好,请查看@ᴠɪɴᴄᴇɴᴛ 的评论,该评论也适用于我的情况。我们正在使用 Jboss 7.2.6【参考方案3】:

我在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

EJB远程客户端从JBoss AS 7.1迁移到Wildfly 8.1

电脑无法访问此网站 远程计算机或者设备将不接受连接

JConsole 远程连接到 JBoss EAP

jboss-as-maven-plugin 无法部署到远程 JBoss AS7?