阿卡端口转发

Akka Port Forwarding

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

问题是客户端无法从服务器获取远程actor。服务器端不断出现收件人不同的错误。客户端通过 "akka.tcp://RemoteSystem@67.18.67.18:5150/user/remote" 获取远程参与者,其中 67.18.67.18 是我的全球 IP 地址。然后远程参与者在路径 "akka.tcp://RemoteSystem@192.168.0.106:5150/user/remote" 进行远程处理,其中 192.168.0.106 是我服务器的本地 IP。我知道客户端必须使用相同的路径访问远程参与者,但尽管我定义了 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
   }

 }

要绑定的接口的配置参数是 "bind-hostname",public IP 的配置参数是 "hostname"。您还需要为要绑定的本地端口设置 "bind-port",为 public IP 设置 "port"。

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