1 写在前面:
由于公司内部限制使用终端 ip 分配。在虚拟机下无法使用 桥接模式进行开发,所以只能使用NAT进行。NAT虽然没有桥接方便,但是只要知道原理,也是可以很快地上手进行开发的。
本文是另一篇文章的升级版:
https://www.toutiao.com/i6541569153067647502/?group_id=6541569153067647502
现在没有时间,也可以不看这个链接的内容,等有空了再回过来体验。家里没有限制的话,可以按上述链接来安装。
由于IP限制,桥接模式已经不适用
要使用NAT模式
2 事前准备:
2.1 virtual box(如果已经有文件,不需要再另行下载):
https://www.virtualbox.org/wiki/Downloads
2.2 centos 7 ISO 镜像文件(如果已经有文件,不需要再另行下载):
https://www.toutiao.com/i6824056216998642188/?group_id=6824056216998642188
2.3 BIOS中开启虚拟化技术:
可能会遇到64位无法安装的情况。可以在在BIOS中开启虚拟化技术。 首先开机进入BIOS,一般机器是按F2,我的T420是按F1,然后进入Security,Virtualization,选择Enable即可,如下图: 不同的主板可能选项会有所不同,请自行参考主板厂商的帮助。 在你更改设置后,禁用或启用虚拟化,建议关闭计算机最小10秒,然后重新启动机器(冷启动),确保正常开启虚拟化技术。 来自《百度经验》
3 开始安装
3.1 为了节约笔者时间,请大家参考下述链接,仅操作到第18步。然后回到本文。即第18步以后的都不用再操作了。
https://www.toutiao.com/i6541569153067647502/?group_id=6541569153067647502
3.2 操作到第18步以后,请确认目前虚拟机的网络处理NAT模式。
你需要用鼠标右键点击这个图标
打开以下页面,并确保连接方式为:NAT
回到虚拟机,使用以下命令重启一次网络。
重启网络,让NAT模式生效
使用 ip addr 命令,可以看到,IP已经从熟悉的 192.*.*.* 或者 172.*.*.* 变成了 10.0.2.15 。这说明了NAT模式已经生效。
ip addr 查看 ip
小技巧,可以使用grep命令快速过滤出需要的 ip 信息
ip addr | grep inet
4 网络测试
4.1 ping 和 telnet
再次打开这个链接,只看一下第19步,然后回来。
https://www.toutiao.com/i6541569153067647502/?group_id=6541569153067647502
我们在win10下的cmd工具,ping 10.0.2.15
没错,请求会超时。通过了解NAT原理,就会知道,我们通过端口转发就可以解决这个问题。virtual box 提供了转发工具。入口在:
如果只是开发node项目,我们至少需要二个端口转发。
-
为什么要转发22端口?
因为我们准备使用 ssh 协议连接到虚拟机子系统。而默认的端口是22。
-
为什么要转发3001端口?
因为我启动node的时候使用了3001端口。如果你使用其它端口,或者使用nginx进行再次转发,就开放相应的端口即可。
-
为什么主机IP都留空白?
一般可以写 127.0.0.1,但是为了让外部也可以访问到这个端口。留白则相当于不限制,类似于 0.0.0.0
-
为什么主机端口要和子系统端口一致?
主要是为了方便。其实主机端口也可以改成其它。访问时记得使用其它端口即可。比如:正常你会请求 http://localhost:3001 ,而主机端口改成了3002。那么在虚拟机的系统里面访问时使用:http://localhost:3001, 而主机使用:http://localhost:3002 来访问。这样做有助于加深理解,但是不建议这么做。原因是开发时忘记了,脑瓜容易卡壳。
-
什么是SSH?
可以参考我之前发的二篇文章:
SSH系列1——SSH是什么
SSH系列2 —— SSH的连接工具:xshell (这一篇比较重要,因为介绍了下载一个免费版的方法)
4.2 至少做完 22 端口的转发。使用xshell连接
5 系统更新
5.1 更新源
一般都会将系统的下载源修改为国内源,请参照这个链接:
https://www.toutiao.com/i6583261707513102861/?group_id=6583261707513102861
操作完成以后,麻烦再分别执行:
yum upgrade
yum update
5.2 下载安装常用的软件:
yes|yum install vim gcc zip unzip git net-tools telnet curl wget lrzsz
6 安装 nodejs
6.1 下载最新版本的 nodejs
到这里找到最新版的linux源码包,https://nodejs.org/en/download/。在centos下使用以下命令:
mkdir /node/;
cd /node;
wget https://nodejs.org/dist/v12.16.3/node-v12.16.3-linux-x64.tar.xz
xz -d node-v12.16.3-linux-x64.tar.xz
tar -xvf node-v12.16.3-linux-x64.tar
#将 node npm 变量软链接到/usr/bin以便于后面调用
ln -s /node/node-v12.16.3-linux-x64/bin/* /usr/bin/
#安装 cnpm,用于替换npm。因为cnpm下载资源走国内线路,比npm快
npm install -g cnpm --registry=https://registry.npm.taobao.org
#将cnpm安装到/usr/bin
ln -s /node/node-v12.16.3-linux-x64/bin/* /usr/bin/
#安装pm2
cnpm install -g pm2
ln -s /node/node-v12.16.3-linux-x64/bin/* /usr/bin/
6.2 写一个demo跑一跑。
6.3 记得demo对应的端口要在virtual box 的网络设置那里做好转发规则。
6.4 在本机浏览器使用 http://localhost:端口号 打开测试