如何在不同平台上连接erlang节点

时间:2016-08-02 12:10:42

标签: erlang

如何在同一台机器上的freeBSD 10.3 vm上将Windows 10上的Erlang节点与Erlang节点连接使用erl -name anynode @ hostname?

2 个答案:

答案 0 :(得分:1)

正如我在评论中所写,您首先需要确定主机(Windows)和访客(FreeBSD VM)之间的内部网络(子网)。在Windows和ipconfig命令上使用ifconfig获取信息 您可能会注意到主机中的一个IP与guest虚拟机中的一个IP具有相同的前缀,因此这是子网。例如,如果主机具有IP 192.168.2.10且guest虚拟机具有IP 192.168.2.11,则意味着192.168.2.x是它们之间的网络。现在我们可以继续连接这些节点。

几个简单的步骤:

  1. 输入具有正确IP和通用cookie的shell 在Windows上 - werl -name windows_node@192.168.2.10 -setcookie 'mycookie'
    在FreeBSD上 - erl -name freebsd_node@192.168.2.11 -setcookie 'mycookie'
    你可以在这里和这里阅读更多关于cookie的信息。
  2. 节点之间的连接。这可以通过net_adm:ping/1net_kernel:connect_node/1来完成。您只需要从其中一个shell执行此操作。例子:
    来自Windows shell - net_adm:ping('freebsd_node@192.168.2.11')
    来自Linux shell - net_kernel:connect_node('windows_node@192.168.2.10')
  3. 现在应该连接您的节点。您可以通过从其中一个shell调用nodes()来检查这一点。

答案 1 :(得分:0)

  1. 运行erlang节点的主机(Windows和BSD VM)必须在它们之间具有IP连接,您可以使用ping验证。
  2. Erlang节点必须使用相同的魔术cookie启动,使用-setcookie" cookie"启动erlang节点时。
  3. 通过在shell中运行nodes()来查看erlang节点是否可以看到对方。