1.默认情况下Erlang的集群访问是全授权的,只要cookie认证过了后,新加入的节点可以访问集群里面的任何机器,这给运维带来很大风险。目前erlang有二种方法可以限制 1. IP网段限制 2. 节点名称限制。这个是通过net_kernel:allow来实现的,参看:
cmd 开启允许链接的节点名
werl -name node@192.168.XX.XX -setcookie YYYYYY
2. 判断当前是不是longname
(test@nimbus)2> net_kernel:longnames().
true
3. 如果不知道node跟cookie可以,
在linux环境运行的erlang程序中获取cookie和node,方法很简单,输入erlang:get_cookie()和node()。
(node@192.168.ZZ.ZZ)3> node().
'node@192.168.ZZ.ZZ'
(node@192.168.ZZ.ZZ)4> erlang:get_cookie().
'YYYYYY'
4. 修改erlang vm的cookie,只有与要连接的进程cookie相同时才能进行连接加入集群
erlang:set_cookie(node(), Cookie).
net_adm:ping(Node()).
(node@192.168.XX.XX)4> erlang:set_cookie(node(),'YYYYYY').
true
(node@192.168.XX.XX)5> net_adm:ping('node@192.168.ZZ.ZZ').
pong
5. 启动observer:start(),成功后可以在Nodes选项中查看需要的一些信息
(node@192.168.XX.XX)6> observer:start().
添加 node@192.168.ZZ.ZZ