阿卡港口转发

时间:2016-11-16 06:40:30

标签: scala tcp akka remoting portforwarding

我正在尝试向我的Akka程序执行端口转发,客户端可以通过Internet与服务器通信。我配置了我的路由器,端口转发机制正在运行,但Akka似乎有问题。

问题是客户端无法从服务器获取远程actor。它在服务器端不断出现错误,即收件人不同。客户端通过"akka.tcp://RemoteSystem@67.18.67.18:5150/user/remote"获取远程actor,例如67.18.67.18是我的全局IP地址。然后远程actor在路径"akka.tcp://RemoteSystem@192.168.0.106:5150/user/remote"处进行远程处理,其中192.168.0.106是我的服务器的本地IP。我知道客户端必须使用相同的路径访问远程actor,但是尽管我定义了public-localname,服务器仍然不会将全局IP转换为本地IP或允许通过全局IP进行访问。它有什么解决方法吗?以下是服务器的application.conf

akka {
   loglevel = "INFO"

   actor {
     provider = "akka.remote.RemoteActorRefProvider"
   }

   remote {
     enabled-transports = ["akka.remote.netty.tcp"]
     netty.tcp {
       hostname = ""
       port = 5150
       public-hostname = "67.18.67.18"
     }

     log-sent-messages = on
     log-received-messages = on
   }

 }

1 个答案:

答案 0 :(得分:0)

config参数是要绑定到的接口的“bind-hostname”,以及公共IP的“hostname”。您还需要为要绑定的本地端口设置“bind-port”,为公共IP设置“port”。

有关详细信息,请参阅文档:http://doc.akka.io/docs/akka/snapshot/scala/remoting.html