【问题标题】:Jboss 7 production server port settingJboss 7 生产服务器端口设置
【发布时间】:2013-10-08 02:49:47
【问题描述】:

我有一个 Jboss 7 服务器设置并运行一个 Web 应用程序和一个 Java Web start 应用程序。两者都工作正常。这是我的standalone.xml 的快照,它提供了正在使用的各种端口的信息。

 <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/>
        <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9443}"/>
        <socket-binding name="ajp" port="8009"/>
        <socket-binding name="http" port="80"/>
        <socket-binding name="https" port="443"/>
        <socket-binding name="osgi-http" interface="management" port="8090"/>
        <socket-binding name="remoting" port="4447"/>
        <socket-binding name="txn-recovery-environment" port="4712"/>
        <socket-binding name="txn-status-manager" port="4713"/>

我想在这里了解更多关于如何设置 Jboss 生产服务器的信息。通常端口 80 在所有系统上对 http 流量都是开放的,因此 Web 应用程序没有问题。

但是,我的 java 客户端使用远程 ejb 接口连接到部署在服务器上的 java web start 应用程序,该接口使用端口 4447,这是 Jboss 服务器的默认远程处理端口。此端口可能未对所有系统上的流量开放。

所以我的问题是:How do you make this remoting interface listen to a port which will hopefully be available on all systems across all networks ? 如果我将其更改为 80,我的应用程序还能正常工作吗?我不想尝试尝试并打破一切:D

任何有设置 Jboss 生产服务器经验的人?

【问题讨论】:

    标签: java jboss ejb jboss7.x remoting


    【解决方案1】:

    基本上我想确保我的所有客户都可以连接到 系统

    请注意,您在这里谈论的是 remote 端口,即您的 Web 服务器端口,因此它要么对所有人开放,要么对所有人开放。一旦您在生产服务器中打开端口,通常对您的客户端可以在远程端连接的端口没有太多限制。例如,一些网络代理只允许您连接到 80(标准 http 端口)、443(ssl 端口)和 8080(某些服务的 http 端口),但除此之外,所有端口都应该一样好,没关系那你选择哪一个。如果您想避免使用通常为其他用途保留的端口,您可以查看list of ports

    所以,通常情况下,4447 应该没问题。对于某些人来说,如果他们在严格的代理/防火墙后面,它就行不通。 (你有可能在端口 80 上为你的 jboss 远程处理有一个专用的主机名,但是在那个主机名中你不能运行任何常规的 http 服务器,并且为此使用标准的 http 端口是可疑的。)可靠的选择是重写您的应用程序以使用 http REST 接口或类似接口,连接到端口 80,并在那里有一个可以执行 EJB 调用的 Web 应用程序,因此不会暴露 EJB 层。

    还要注意远程接口有its share of exploits。你想check carefully there are no open exploits for JBoss in there但是,至少我还不知道针对 AS7 的漏洞利用。 存在 at least two 可能也适用于 AS7。

    如果您使用远程处理,您可能还希望配置一个安全领域。

    【讨论】:

    • 优秀的答案。感谢您指出我可以将我的 ejb 调用替换为对 http 接口的调用。现在我希望我做到了。端口 4447 可能不会对所有客户端开放。然而,使用 http 接口可能是有利的,因为端口 80 将始终打开..
    • @rockstar 谢谢,希望对您有所帮助!我现在用你可能想知道的一个漏洞更新了答案。
    【解决方案2】:

    不,一次只有一个进程可以绑定到一个端口。如果您的应用程序 http 绑定到 80,那么远程处理需要使用其他一些开放的端口。

    【讨论】:

    • 感谢您的回答。这是否意味着我需要在所有可能的系统上找到一个默认打开的端口,因为 4447 不是 ..
    • @rockstar:是的,顺便说一句,大多数管理员默认关闭所有端口(除非需要),所以你找不到普遍开放的端口。除非需要,否则即使是 80 也将关闭。如果有任何网络应用在监听,管理员会打开 80。
    • 基本上我想确保我所有的客户都可以连接到系统。
    猜你喜欢
    • 1970-01-01
    • 2021-02-09
    • 2021-08-05
    • 1970-01-01
    • 1970-01-01
    • 2016-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多