erlang在windows下和虛擬機節點通信
在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下和虛擬機節點通信