erlang在windows下和虚拟机节点通信

Posted ldxsuanfa

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了erlang在windows下和虚拟机节点通信相关的知识,希望对你有一定的参考价值。

版权声明:博客将逐步迁移到 http://cwqqq.com https://blog.csdn.net/cwqcwk1/article/details/24738599

在Linux下部署erlang项目,开发过程非常多都是在Windows完毕的,然后再公布到Linux,所以測试过程要在虚拟机下完毕。有一天由于想要在虚拟机中使用到erlang图形化工具。比方appmon、tv、observer等等,便突发奇想得利用Windows的erlang连接到虚拟机中使用这些工具,来查看虚拟机的执行状态。

须要准备哪些东西?

我是在VmWare10虚拟Centos6.5系统。所以这里以VmWare10和Centos6.5为例,其它Linux系统及工具仅仅做參考。

注意了,Linux的erlang要和Windows的erlang的主版本号号要保持一致,比方你在Linux下选用R15B03的erlang,在Windows下就不能用R16、R17的版本号了。

这里跳过VmWare装Centos系统及erlang等软件的过程。

首先,确保Windows和虚拟机能通信。

其实,这一步vm已经帮我们做好了。

简单的測试方法就是ping一下,Windows下获取ip的命令是ipconfig。Linux是ifconfig,获取后两方互ping一下。

假设ping不通能够考虑重装vm,建议使用比較新的版本号。

这里我的Windows IP是192.168.1.100。虚拟机的ip是192.168.146.128

启动erlang节点

Windows下启动erlang节点:

erl -name [email protected] -setcookie 123456

虚拟机启动erlang节点:

erl -name [email protected] -setcookie 123456


虚拟机更新防火墙:

1、查看epmdport情况,应该能够看到erlang节点占用的port。将这些port加到防火墙的同意port

netstat -apn |grep epmd

2、改动iptables

vi?/etc/sysconfig/iptables

在适当的位置加入2行记录

技术图片

命令仅參考,不同系统或版本号可能有差别

-A INPUT -p tcp -m state --state NEW -m tcp --dport 4369 -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 30000:65535 -j ACCEPT

3、重新启动iptables让策略生效

service iptables stop

service iptables start


Windows连接虚拟机节点:

Windows启动erlang节点后,再连接到虚拟机中的远程节点

D:\> erl –name [email protected] –setcookie 123456
([email protected])1> net_kernel:connect(‘[email protected]‘).
true
([email protected])2> nodes().
[‘[email protected]‘]

说明连接成功了!


以下以appmon演示这个功能

?技术图片

执行appmon:start().后,在界面中选择Nodes菜单就有节点的选项。


參考:

http://blog.csdn.net/mycwq/article/details/24738599


以上是关于erlang在windows下和虚拟机节点通信的主要内容,如果未能解决你的问题,请参考以下文章

erlang虚拟机代码执行原理

erlang虚拟机代码运行原理

docker在windows下和linux下网络底层的一些区别

RabbitMQ介绍3 - 运行和管理RabbitMQ

windows和linux虚拟机配置mysql主从

在虚拟机中设置NAT模式实现主机和虚拟机的通信