1

我想从远程服务器访问 RMI 服务。本地一切正常。但是从远程我得到以下异常:

java.net.ConnectException:连接超时

我使用了 IP-Tables,服务器认为请求来自 127.0.0.1 而不是公共 IP 地址 xx.yy.zz

iptables -t nat -A PREROUTING -p tcp -d xx.yy.zz --dport 1099 -j DNAT --to-destination 127.0.0.1:1099

服务器以“-Djava.rmi.server.hostname=127.0.0.1”作为 JVM-Argument 启动。

问候, 马库斯

4

2 回答 2

1

对我来说,这看起来像是滥用 iptables。请执行下列操作:

  1. 确保您的应用程序绑定到公共地址。例如,通过删除“-Djava.rmi.server.hostname=127.0.0.1”。
  2. 如果您仍然无法访问您的应用。向 iptables 添加防火墙规则,例如:
    $iptables -A INPUT -p tcp --dport 1099 -j ACCEPT
于 2011-04-26T11:35:34.700 回答
0

我怀疑 DNAT 只会更改数据包的目的地,而不是源。让 RMI 服务器接受来自受信任的 LAN 或 VPN 的数据包,而不是尝试使用 iptables 重写数据包不是更有意义吗?

于 2011-04-26T10:27:52.987 回答