3

我正在尝试通过 vpn 通信 2 个 erlang 节点、服务器(在 Amazon AWS 上)和客户端。当我启动 erlang shell 时,我指定了节点名称和 cookie,但不起作用。通过 vpn 进行 erlang 通信有特殊注意事项?就我而言,有必要设置 tun0 设备吗?

这是路由结果:

目标网关 Genmask 标志 MSS 窗口 irtt Iface
0.0.0.0 10.8.0.5 128.0.0.0 UG 0 0 0 tun0
0.0.0.0 192.168.1.254 0.0.0.0 UG 0 0 0 wlan0
10.8.0.1 10.8.0.5 255.255.205.205 UGH55.255.205 05
10.8.0.5 0.0.0.0 2555.255.255.255 UH 0 0 0
隧道46.51.166.55 192.168.1.254 255.255.2554 255.255.255.255 ugh 0 0 0 0 wlan0
128.0.0.0 10.8.0.0 10.8.0.0 ug 0 0 0隧道
0.0.0.0 255.255 .0 0.0.0.0 255.255。 0.0 U 0 0 0 wlan0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0

提前致谢!

4

3 回答 3

1

我解决了这个问题。
这是程序。

Erlang 服务器启动:
erl -name server@10.8.0.1 -setcookie aStringCookie -kernel inet_dist_listen_min 9000 inet_dist_listen_max 9005

10.8.0.1 是 VPN 服务器 IP

客户端:
erl -name client@10.8.0.6 -setcookie aStringCookie -kernel inet_dist_listen_min 9000 inet_dist_listen_max 9005

10.8.0.6 是 VPN 客户端 IP

在 AWS 安全组上,我打开了 4369 TCP/UDP 端口和用于初始化服务器的另一个端口。我还为 ping 测试打开了 ICMP 端口。
在 VPN 服务器配置文件中,您可以启用/禁用通过 VPN 重定向客户端默认网络网关的行
push “redirect-gateway def1 bypass-dhcp”

我测试了一些 rpc,它们工作正常。

谢谢大家

乔瓦尼·C

于 2012-12-05T11:36:05.497 回答
0

我认为问题可能与erl的长名称和短名称有关。

你现在用sname了吗?

-sname 名称

使 Erlang 运行时系统成为一个分布式节点,类似于 -name,但节点名称 Name@Host 的主机名部分将是短名称,不是完全限定的。

如果 DNS(域名系统)没有运行,这有时是运行分布式 Erlang 的唯一方法。使用 -sname 标志运行的节点和使用 -name 标志运行的节点之间不能进行通信,因为节点名称在分布式 Erlang 系统中必须是唯一的。

http://www.erlang.org/doc/reference_manual/distributed.html

于 2012-12-04T11:24:32.217 回答
0

防火墙设置都正确吗?epmdErlang 需要在所有主机上运行的实例之间建立 tcp 连接。

尝试打开 TCP 端口 4369,或接受来自 tun0 的任何内容。

于 2012-12-05T04:32:04.597 回答