最近在研究虚拟机,有一些服务因为编译环境或者系统原因,可能无法在自己的电脑上运行,使用虚拟机可以很好的解决这个问题。虚拟机是通过软件模拟的、具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统,可以使用virtualbox或者vmware等软件在普通电脑上创建虚拟机。
一、设置虚拟机的IP地址(已设置的可跳过此步)
(1)网卡设置
执行这个步骤要关闭虚拟机,否则无法操作。
选中虚拟机系统,点击【设置】
选择【网络】→【网卡1】→连接方式选择【仅主机(Host-Only)网络,这一步是让虚拟机和宿主机网络互通
【网卡2】→勾选【启用网络连接】,连接方式选择【网络地址转换(NAT)】,这一步是让虚拟机联网
(2)配置enp0s3和enp0s8网卡
enp0s3网卡对应的是步骤(1)中的网卡1,与宿主机互通;enp0s8对应的是网卡2,用于虚拟机联网。
注:以下操作最好都使用root权限操作
编辑enp0s3文件
vim /etc/sysconfig/network-scripts/ifcfg-enp0s3
按i或者insert键进行编辑,按照下图进行修改并保存
编辑enp0s8文件
如果enp0s8文件不存在,复制一份enp0s3文件进行编辑
cd /etc/sysconfig/network-scripts // 移动到文件所在目录
cp ifcfg-enp0s3 ifcfg-enp0s8 // 复制enp0s3文件
vim ifcfg-enp0s8 // 编辑enp0s8文件
按i或者insert键进行编辑,按照下图进行修改并保存
(3)重启网络
systemctl start network // 重启网络
ping www.baidu.com // 测试网络
ifconfig // 查询虚拟机ip
二、在虚拟机上跑node服务
(1)安装NodeJS
见另一篇文章:https://www.jianshu.com/p/afd7ec757240
(2)创建hello word程序
建议使用root权限
mkdir -p /user/local/demo/
vim /user/local/demo/helloworld.js
按i或者insert输入以下内容并保存
var http = require('http');
http.createServer(function(req, res) {
res.end('hello word!');
}).listen(8088);
console.log('server is running in 8088......')
(3)运行并访问node服务
运行helloworld.js
node /user/local/demo/helloworld.js
在虚拟机上访问服务
curl localhost:8088
使用其它机器访问虚拟机的服务时,需先将虚拟机的防火墙关闭,否则无法访问
systemctl stop firewalld.service // 关闭防火墙
systemctl disable firewalld.service // 禁止防火墙开机启动
执行完之后即可在其它机器上访问虚拟机