有人可以给我更多的一种可能性,如何连接两个Erlang节点。 我知道使用erlang:set_cookie/2的一种方法,并且好奇是否有其他方法。如何连接两个erlang节点?
2
A
回答
3
1.使用-setcookie
。
您也可以使用-setcookie
时二郎执行,
在我的本地机器的第一终端,
[email protected]:~$ erl -sname a -setcookie guitar
Erlang/OTP 18 [erts-7.0] [source] [64-bit] [async-threads:10] [hipe] [kernel-poll:false]
而且我的本地机器的第二终端,
[email protected]:~$ erl -sname b -setcookie guitar
Erlang/OTP 18 [erts-7.0] [source] [64-bit] [async-threads:10] [hipe] [kernel-poll:false]
最后,在第一个终端,
Eshell V7.0 (abort with ^G)
([email protected])1> net_adm:ping('[email protected]').
pong
2.复制$HOME/.erlang.cookie
你可以复制$HOME/.erlang.cookie
到其他远程计算机共享相同的cookie的值。
此外,你必须考虑安全性。
一个Erlang节点运行的erlang时是完全没有保护:set_cookie(节点(),nocookie)。这有时适用于通常不联网的系统或仅用于维护目的的系统。有关安全系统的详细信息,请参阅auth(3)。
1
(如你写在控制台上或ERL执行)你应该设置cookies 此外,如果您设置短名称(SNAME)第二个节点应该短名 如果设置节点名运行,第二个节点还可以与运行-name
作品:
erl -name [email protected] -setcookie democookie
erl -name [email protected] -setcookie democookie
不起作用:
erl -name [email protected] -setcookie democookie
erl -name n2 -setcookie democookie
如果节点在不同的机器上运行,检查端口打开它40293 或一组端口(并设置最小,最大)时ERL执行
erl \
-kernel inet_dist_listen_min 40293\
-setcookie democookie\
-name erl_node_1
2
据“二郎安全101” NCC集团(https://www.nccgroup.trust/globalassets/our-research/uk/whitepapers/2014/erlang_security_101_v1-0.pdf),你不应使用-setcookie
,因为服务器的其他用户将能够使用ps ax | grep erl
查看cookie。例如,从我的本地计算机上的终端:
[email protected]:~$ erl -setcookie abc -sname e1
Erlang R16B03-1 (erts-5.10.4) [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false]
Eshell V5.10.4 (abort with ^G)
([email protected])1>
然后从第二终端,为不同的用户:
[email protected]:~$ ps ax | grep erl
2035 pts/7 Sl+ 0:00 /usr/lib/erlang/erts-5.10.4/bin/beam.smp -- -root /usr/lib/erlang -progname erl -- -home /home/zed -- -setcookie abc -sname e1
2065 pts/8 S+ 0:00 grep --color=auto erl
9841 ? S 0:00 /usr/lib/erlang/erts-5.10.4/bin/epmd -daemon
而且你可以清楚地看到在ps
输出的饼干。拥有cookie允许第三方加入erlang集群。您应该改用cookie文件方法,对文件具有限制性的权限。
相关问题
- 1. Erlang节点连接问题
- 2. 重新连接到erlang节点
- 3. Erlang,通过Erlang互联网连接节点
- 4. 如何在erlang集群中重新连接分区节点
- 5. 如何在不同平台上连接erlang节点
- 6. 如何通过OMNeT ++中的WLAN接口连接两个节点?
- 7. 连接两个节点集使用XPath
- 8. 用边缘连接两个节点JavaFX
- 9. 如何运行Erlang节点?
- 10. 如何连接两个字节数组
- 11. Erlang使用哪个TCP端口连接到远程节点?
- 12. 如何监视两个Erlang节点之间的通信
- 13. 查找两个节点之间共享的连接节点
- 14. 如何检查两个节点是否连接?
- 15. 如何避免两个节点之间的双重连接?
- 16. 如何确定两个节点是否相互连接?
- 17. 如何确定两个节点是否连接?
- 18. 我如何用一条线连接两个节点
- 19. 我如何完全确保两个节点之间的连接?
- 20. 如何连接elixir中的两个docker容器的节点?
- 21. JavaFX:如何通过线路连接两个节点?
- 22. DOT - 如何减少连接两个节点的线路
- 23. 如何通过本地网络连接两个Elixir节点?
- 24. 如何连接Erlang中的两个二进制文件?
- 25. 如何在erlang中连接两个utf8字符串?
- 26. 我如何连接两个注释点?
- 27. 如何避免增加两个节点之间的连接两次
- 28. 来自不允许节点erlang的连接尝试
- 29. Erlang。连接到本地节点:***错误:Shell进程终止
- 30. Erlang节点配置
设置cookie不会连接节点。这只是用于安全性的共享密钥。你是否要求设置cookie的不同方式,使节点连接到另一个节点的不同方法,通过哪些erlang节点可以相互连接的不同机制或其他方法? –
是连接两个erlang节点的不同方法 – erlang