Erlang节点通信——端口转发

Posted

技术标签:

【中文标题】Erlang节点通信——端口转发【英文标题】:Erlang node communication - port forwarding 【发布时间】:2020-06-01 01:06:54 【问题描述】:

我有两个 erlang 客户端:

client@192.168.1.5 client@192.168.1.6

还有一个全局 IP 地址为“externalIP1”的远程 erlang 服务器:

server@“externalIP1”

为了通过双向通信连接客户端和服务器,我将通过路由器上的第二个全局 IP 地址“externalIP2”转发客户端计算机。

    我必须为客户端转发哪些端口? 如何命名erlang客户端节点?转发后,实际上它们将位于远程节点的一个 IP 地址! 如何告诉服务器“在与节点 X 通信期间使用端口 ..、..、..”?

提前致谢!

【问题讨论】:

对this question的答案有帮助吗? 还要考虑是否可以使用其他协议,例如基于 HTTP 或 protobuf 的东西。 Erlang 发行版旨在用于安全的低延迟网络,在其他地方使用它可能会导致意外。如果通过 Internet 连接,您至少需要use TLS。 【参考方案1】:

端口转发?你的意思是 NAT 还是 SSH ?

我觉得使用 SSH 端口转发是一种更容易设置 erlang 分发的方法。请查看Run Erlang Observer with ssh port forwarding中的第三个答案

或者,您也可以尝试使用 Docker 的 epmdless Erlang 环境,这样可以避免进行除 Docker 之外的任何其他网络设置

对于它,请检查此

https://www.erlang-solutions.com/blog/erlang-and-elixir-distribution-without-epmd.html

【讨论】:

以上是关于Erlang节点通信——端口转发的主要内容,如果未能解决你的问题,请参考以下文章

charles 端口转发

什么时候需要端口转发?

错误:转发端口:错误升级连接:错误拨号后端:-Azure Kubernetes 服务

端口转发器

在erlang中向远程节点端口发送消息

在 Python 中通过 UPnP 转发端口