版权声明:博客将逐步迁移到 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 win@192.168.1.100 -setcookie 123456

虚拟机启动erlang节点:

erl -name linux@192.168.146.128 -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 win@192.168.1.100 –setcookie 123456
(win@192.168.1.100)1> net_kernel:connect('linux@192.168.146.128').
true
(win@192.168.1.100)2> nodes().
['linux@192.168.146.128']

说明连接成功了!

以下以appmon演示这个功能

 

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

參考:

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

erlang在windows下和虚拟机节点通信的更多相关文章

  1. windows azure中国 里面建立一个虚拟机,与虚拟机建立通信 里面部署IIS,外网访问

    在windows azure中国 里面建立一个虚拟机,里面部署IIS,外网不能访问么? 外网访问的地址是给的那个DNS地址 ,比如我的是 DNS 名称 urbanairserver.cloudapp. ...

  2. 学习Hadoop+Spark大数据巨量分析与机器学习整合开发-windows利用虚拟机实现模拟多节点集群构建

    记录学习<Hadoop+Spark大数据巨量分析与机器学习整合开发>这本书. 第五章 Hadoop Multi Node Cluster windows利用虚拟机实现模拟多节点集群构建 5 ...

  3. 运行预构建 Linux 映像的 Windows Azure 虚拟机中的交换空间 – 第 1 部分

    本文章由 Azure CAT 团队的 Piyush Ranjan (MSFT) 撰写. 随着基础结构服务(虚拟机和虚拟网络)近期在 Windows Azure 上正式发布,越来越多的企业工作负荷正在向 ...

  4. SPARK如何使用AKKA实现进程、节点通信

    SPARK如何使用AKKA实现进程.节点通信 <深入理解Spark:核心思想与源码分析>一书前言的内容请看链接<深入理解SPARK:核心思想与源码分析>一书正式出版上市 < ...

  5. 宿主机Windows访问虚拟机Linux文件(二)

    上一篇文章中详细讲述FTP服务(基于文件传输协议的服务),本文则介绍另一种能够实现此功能Telnet(Telecommunications network 远程登陆)服务.本文介绍的telnet我常用 ...

  6. virtualbox 下windows与虚拟机实现文件共享---挂载

    1.创建挂载目录: mkdir /mnt/share 2.挂载:mount /dev/cdrom /mnt/share 3.cd /mnt/share 3.虚拟机-设备-分配光驱-VBoxGuestA ...

  7. Windows Azure 虚拟机备份

    如果我们要在Windows Azure的虚拟机上进行一些“重要且高危”的操作,我们通常会想到使用快照或者备份功能.但是在Windows Azure上是没有虚拟机快照功能的,尽管我们可以对虚拟机的磁盘文 ...

  8. XE6移动开发环境搭建之IOS篇(5):解决Windows和虚拟机下Mac OSX的共享问题(有图有真相)

    网上能找到的关于Delphi XE系列的移动开发环境的相关文章甚少,本文尽量以详细的图文内容.傻瓜式的表达来告诉你想要的答案. 原创作品,请尊重作者劳动成果,转载请注明出处!!! 在安装XE6 PAS ...

  9. Windows下虚拟机安装Mac OS X ----- VM12安装Mac OS X 10.11

    Windows下虚拟机安装Mac OS X -– VM12安装Mac OS X 10.11 随着Iphone在国内大行其道,越来越多的开发者涌入iOS开发大军 中,但都苦于没有苹果机,本文即将介绍WI ...

随机推荐

  1. 服务发现和注册和Eureka

    一 Spring Cloud特点 # 约定优于配置 # 开箱即用,快速启动 # 适用于各种环境,可以部署在PC server或者 云环境 # 轻量级的组件 # 组件的支持很丰富,功能齐全 # 选型中立 ...

  2. PHP中global与$GLOBALS的区别

    单一个global是一个关键字,通常附加在变量前,用于将变量声明至全局作用域: $GLOBALS是预定义的超全局变量,把变量扔到里边的话一样可以带到全局去. $GLOBALS 是一个关联数组,每一个变 ...

  3. overflow:hidden失效

    overflow:hidden失效 为了页面的健壮性,我们常常需要使用overflow:hidden.有时候是为了防止布局被撑开,有时候是为了配合其它规则实现文字截断,还有时候纯粹是为了创建块级上下文 ...

  4. 看过这些我明白了依赖注入及IoC

    背景 最近一段时间在学习laravel框架,了解到这个框架一个比较核心的概念就是服务容器,而服务容器似乎又和依赖注入有关系.但是碍于官方关于这方面的讲解篇幅过少,所以自学了一下. 自学的途径也跟大家一 ...

  5. 在egg中配置 sequelize

    如何在eggjs中引入 sequlize 安装 第一步,在项目中安装 egg-sequelize插件和mysql插件 npm install --save egg-sequelize mysql2 第 ...

  6. 微信小程序の模板

    一.什么是模板 模板顾名思义就是可以复用的代码块.减少编码工作量. 二.例子 <template name="templateTest"> <view>th ...

  7. SpringMVC整合Freemarker(含Demo源码)(转)

    转自:http://blog.csdn.net/sinat_27535209/article/details/61199452 整合过程如下: 1.新建一个maven web工程,使用maven依赖s ...

  8. HTML事件处理程序---内联onclick事件

    HTML事件处理程序绑定方法: <input type="button" value="click me" onclick="show(this ...

  9. vue element-ui NavMenu错位问题

    原因:子菜单全部打开后太长超过100% 解决方法:设置只能点击打开当前的菜单

  10. vue子组件获取父组件方法

    注:以下代码未使用esLint语法检查 父组件: <template> <div class="wrapper"> <cp_action @paren ...