1. 程式人生 > >erlang在windows下和虛擬機節點通信

erlang在windows下和虛擬機節點通信

table start 更新 csdn -- 其它 phoenix com fill

版權聲明:博客將逐步遷移到 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下和虛擬機節點通信