连接到位于防火墙后面的RMI服务器?

时间:2010-03-15 22:18:15

标签: java rmi

我知道我的RMI应用程序正常运行 - 当服务器位于localhost和局域网内部时它工作正常但是当连接到外部RMI服务器时它在尝试进行存根调用时失败

因此服务器绑定到localhost(内部IP - 192.168.1.73),但客户端指定外部IP(45.4.234.56) - 然后将其转发到内部服务器。你是如何解决这个问题的?

感谢

1 个答案:

答案 0 :(得分:2)

“最简单”的方法是让您的网络管理员将防火墙上特定端口的IP转发添加到您的服务器。

假设这不是一个选项(可能不是),那么RMI支持通过HTTP进行隧道传输。性能很差,但它更适合防火墙。

http://java.sun.com/javase/6/docs/technotes/guides/rmi/faq.html#firewallOut

  

这种陈旧的方法很受欢迎   它几乎不需要设置,并且有效   在防火墙环境中相当不错   它允许你处理HTTP   通过代理,但不允许定期   出站TCP连接。

     

如果Java RMI无法正常(或   SOCKS)与预期的连接   服务器,它注意到HTTP   代理服务器已配置,它将   尝试隧道Java RMI请求   通过该代理服务器,一个在   时间。