使用iptables从远程访问RMI端口

时间:2011-04-26 09:57:48

标签: java rmi iptables

我想从远程服务器访问RMI-Service。 在当地一切正常。但是从远程方面我得到以下例外:

  

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启动。

此致 马库斯

2 个答案:

答案 0 :(得分:1)

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

  1. 确保您的申请与公共地址绑定。例如,删除“-Djava.rmi.server.hostname = 127.0.0.1”。
  2. 如果您仍无法访问自己的应用。向iptables添加防火墙规则,例如:
    $iptables -A INPUT -p tcp --dport 1099 -j ACCEPT

答案 1 :(得分:0)

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