什么是Node.js?在CentOS8下和Windows10下安装Node.js详细步骤

1. 什么是Node.js

1.1 百度解释

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型。
Node 是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScript 成为与 等服务端语言平起平坐的脚本语言。

1.2 简单理解

之前我们提到服务器端脚本语言,都会说PHP、Python、Perl、Ruby等。然后有一天,有个程序员安耐不住寂寞,想要把Javascript也运行在服务器端,然后Node.js就诞生了。

2. 为什么要用Node.js

Node.js当初火爆的最直接原因是其非阻塞式I/O的工作机制。

阻塞式

比如我们来看一段PHP代码:

<?php
echo "开始执行函数superFunction";
superFuncion("这个程序要运行很久");
echo "函数执行完毕,开始执行第二个函数helloWorld";
helloWorld("我只是想问个好!");
?>

在上面的代码中,superFunction()这个函数如果要运行很久的话,无论后面的helloWorld()函数的任务多么简单,都必须等待superFunction()函数执行完毕后才可以运行。换句话说,superFunction()函数把后面的的任务都阻塞了。

非阻塞式

我们再来看一段Node.js代码:

var fs = require("fs");
fs.readFile('input.txt', function (err, data) {
    if (err) return console.error(err);
    console.log(data.toString());
});
console.log("程序执行结束!");

上面程序中,我们不需要等待文件读取完,这样就可以在读取文件时同时执行接下来的代码,大大提高了程序的性能。

高流量、高并发

由于阻塞是按顺序执行的,而非阻塞是不需要按顺序的。所以Node.js的这种非阻塞机制已经被应用于目前很多高并发、高流量的大型网站的后端上。

3. “Node.js”好还是“PHP们”好

这其实是个伪命题!
在Node.js出现前,不是有“PHP、Python、Perl、Ruby哪个好?”这样的讨论吗?最终有结果吗?—没有。人家四门语言任然都活的好好的!
所以不要纠结于Node.js是否好用,是否有前途的问题。记住以下几点就好了:

  1. 如果你是PHP、Python、Perl、Ruby程序员,可以仍然坚持自己的主线技术,把其用到极致。Node.js可以作为扩充知识面的技术,学习了解下。这样真用到的时候,不至于过于陌生。
  2. Node.js与其它服务器端技术没有谁更好的问题,只有谁更合适的问题。

4. Node.js和npm

4.1 npm

npm是Node Package Manager的简称,是Node.js的包依赖管理工具。类似JAVA的MAVEN和PHP的Composer。
Node项目中如果要引入某个包或者库,都是先通过NPM安装到本地,然后再引用即可。

4.2 全局安装和本地安装

npm 的包安装分为本地安装(local)、全局安装(global)两种,从敲的命令行来看,差别只是有没有-g而已,比如:

npm install express          # 本地安装
npm install express -g       # 全局安装

A. 本地安装

  1. 将安装包放在 ./node_modules 下(运行 npm 命令时所在的目录),如果没有 node_modules 目录,会在当前执行 npm 命令的目录下生成 node_modules 目录。
  2. 可以通过 require() 来引入本地安装的包。

B. 全局安装

  1. 将安装包放在node的安装目录或node指定的目录中。
  2. 可以直接在命令行里使用。

5. Node.js在Windows10下的安装

5.1 下载安装文件

Node.js官网:https://nodejs.org
我下载的版本是:node-v12.15.0-x64.msi
下载链接:https://nodejs.org/dist/v12.15.0/node-v12.15.0-x64.msi

5.2 安装

Windows下的安装和普通软件安装过程一样,非常简单:
file
安装完毕后,进入cmd,用以下命令分别查看下Node.js和NPM的版本号:

node -v
npm -v

5.3 配置

其实截止到上一步,Node.js已经安装完成了,但是为了后期使用的方便,我们最好配置一下npm在安装全局模块时(4.2.B)的路径和缓存cache的路径。因为如果配置,那么在执行例如npm install webpack -g等命令全局安装的时候,默认会将模块安装在C:\Users\用户名\AppData\Roaming路径下的npm和npm_cache中,不方便管理且占用C盘空间,所以这里配置自定义的全局模块安装目录。

  1. 在node.js安装目录下新建两个文件夹node_globalnode_cache
  2. 在cmd命令下执行如下两个命令:
    npm config set prefix "D:\Program Files\nodejs\node_global"
    npm config set cache "D:\Program Files\nodejs\node_cache"
  3. 配置环境变量:
    • “环境变量” -> “系统变量”:新建一个变量名为 “NODE_PATH”, 值为“D:\Program Files\nodejs\node_global”
    • “环境变量” -> “用户变量”:编辑用户变量里的Path,将相应npm的路径(“C:\Users\用户名\AppData\Roaming\npm”)改为:“D:\Program Files\nodejs\node_global”
  4. 测试npm
    安装npm(npm的china版,用的淘宝镜像,国内访问速度快)测试一下,在cmd里面运行:

    npm install cnpm -g

    安装完成后,在刚刚新建的两个文件夹node_globalnode_cache下面,会出现相应的文件。

5.4 运行第一个Node.js服务器

在你自己的工作目录下建一个app.js文件,内容如下:

const http = require('http');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello World');
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});

在cmd中,用node命令运行这个文件:

node app.js

file

这时,打开浏览器在地址栏输入:http://127.0.0.1:3000/看到Hello World就代表成功了!

file

6. Node.js在CentOS8下的安装(方法一)

6.1 下载源代码包至/usr/local/tmp

wget https://nodejs.org/dist/v12.15.0/node-v12.15.0.tar.gz

6.2 解压

tar zxvf node-v12.15.0.tar.gz

6.3 安装前置环境

Node.js的运行需要Python2,如果CentOS8中默认没有安装,需要先安装:

yum install python2 //安装python2

6.4 编译安装

cd node-v12.15.0
./configure --prefix=/usr/local/node/12.15.0
make
make install

7. Node.js在CentOS8下的安装(方法二)

7.1 下载编译好的二进制包至/usr/local/tmp

wget https://nodejs.org/dist/v12.15.0/node-v12.15.0-linux-x64.tar.xz

7.2 解压、移动

tar xvf node-v12.15.0-linux-x64.tar.xz
mv node-v12.15.0-linux-x64 /usr/local/node

7.3 创建node和npm的软连接

ln -s /usr/local/node/bin/node /usr/bin/node
ln -s /usr/local/node/bin/npm /usr/bin/npm

7.4 设置node环境变量

vim /etc/profile

增加以下两行:

export NODE_HOME=/usr/local/node
export PATH=NODE_HOME/bin:$PATH

source使生效:

source /etc/profile

7.5 npm测试

同样以安装npm作为测试:

npm install cnpm -g

/usr/local/node/lib/node_modules目录下出现cnpm目录代表安装成功。

7.6 node测试

在你自己的工作目录下建一个app.js文件,内容如下:

const http = require('http');

const hostname = '0.0.0.0';
const port = 3000;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello World');
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});

在bash中,用node命令运行这个文件:

node app.js

关掉CentOS8防火墙,或者放行3000端口,你就可以在外网访问了。

划重点

上面代码和在Windows中的代码有些不一样,hostname地址改为了'0.0.0.0'。
在Window中,我们是通过本机访问,而CentOS8安装在虚拟机中,实际上是通过外网访问,所以如果写'127.0.0.1'的话外网会访问不到。

CentOS Mini与相关命令安装

CentOS8 Mini常见问题

如果安装CentOS8图形界面版本,没有2G内存根本跑不动。这在我们本机使用VMWare做集群测试的时候是非常不方便的。
所以我们经常选择CentOS Mini版本安装,而Mini版本里面会缺失很多必要的功能和命令,比如连ifconfig都没有。
在CentOS8 Mini中,我们经常需要自行安装需要的功能。

找不到make命令

yum install gcc automake autoconf libtool make
yum install gcc-c++

找不到ifconfig命令

yum install net-tools

找不到wget命令

yum install wget

找不到vim命令

yum install vim

找不到network

CentOS8中,network命令已经被nmcli取代,所以需要NetworkManager工具:

yum install NetworkManager //注意大小写

在CentOS8中配置JDK13、Tomcat9、MySQL5.6环境

准备和前提

1. 通过fileZilla和服务器建立连接。

连接方法参考:http://www.uyts.com/archives/170

2. 安装JDK

2.1 安装思路。

JDK在Linux下的安装思路和在Windows下的安装思路类似:
A. 安装软件。其实就是上传文件和解压文件。
B. 配置两个环境变量:JAVA_HOME、BIN目录。

2.2 上传、解压、移动。

a. 压缩包jdk-13.0.1_linux-x64_bin.tar.gz上传到/usr/local/tmp目录
b. 解压压缩包

tar zxvf jdk-13.0.1_linux-x64_bin.tar.gz

c. 解压后的目录移动到/usr/local/jdk13

mv jdk-13.0.1 /usr/local/jdk13

2.3 配置环境变量。

vim /etc/profile

在文件中找到export部分,注释export行并增加以下内容:

#export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
export JAVA_HOME=/usr/local/jdk13
export PATH=$JAVA_HOME/bin:$PATH

export的作用是增加新的或修改已经存在的环境变量。
如果是修改已经存在的环境变量,需要注意在环境变量末尾加:$变量名。记住是冒号:(在Windows中是分号;)。

2.4 解析profile文件或重启服务器。

解析命令如下:

source /etc/profile

如果不解析,则配置不生效。

2.5 JDK安装完毕,测试一下。

file

3. 安装Tomcat

3.1 上传、解压、移动

a. 压缩包apache-tomcat-9.0.30.tar.gz上传到/usr/local/tmp目录
b. 解压压缩包

tar zxvf apache-tomcat-9.0.30.tar.gz

c. 解压后的目录移动到/usr/local/apache-tomcat-9

mv apache-tomcat-9.0.30 /usr/local/apache-tomcat-9

3.2 配置环境变量

vim /etc/profile

在文件中找到export部分,在上面的基础上修改为下面内容:

#export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
export JAVA_HOME=/usr/local/jdk13
export PATH=$JAVA_HOME/bin:$PATH

export TOMCAT_HOME=/usr/local/apache-tomcat-9
export CATALINA_HOME=/usr/local/apache-tomcat-9

4.3 解析profile文件或重启服务器。

解析命令如下:

source /etc/profile

如果不解析,则配置不生效。

4.4 Tomcat安装完毕,启动Tomcat。

file
注意:绿色的以.sh结尾的文件,是Linux中的可执行文件。运行.sh文件的命令为
./XXX.sh

4.5 配置防火墙,访问Tomcat。

方法A:直接停掉防火墙

systemctl stop firewalld

方法B:在firewalld里面放行8080端口

运行以下命令:

firewall-cmd --zone=public --add-port=8080/tcp --permanent

这条命令运行完成后,会将8080端口放行的内容添加到 /etc/firewalld/zones/public.xml中:
file
注意:在CentOS7之前的版本中,放行端口号是通过配置iptables完成的。
然后重启防火墙:

firewall-cmd --reload

4.6 大功告成,测试一下

file

4. 安装MySQL

4.1 上传、解压、移动

a. 压缩包mysql-5.6.46-linux-glibc2.12-x86_64.tar.gz上传到/usr/local/tmp目录
b. 解压压缩包

tar zxvf mysql-5.6.46-linux-glibc2.12-x86_64.tar.gz

c. 解压后的目录移动到/usr/local/mysql

mv mysql-5.6.46-linux-glibc2.12-x86_64 /usr/local/mysql

4.2 创建mysql专用用户组和用户,给mysql文件夹赋权

a. 创建用户组(groupadd 用户组名)

groupadd mysql

b. 创建用户(useradd -r用户名称 -g用户组名称)

useradd -r -g mysql mysql

c. 保证命令行当前在/usr/local/mysql中,为mysql目录赋权(注意最后的.前面有个空格)

[root@localhost mysql]# chgrp -R mysql .
[root@localhost mysql]# chown -R mysql .

4.3 注册MySQL服务

a. 确保/etc/my.cnf不存在,如果存在删除。
b. 保证命令行当前在/usr/local/mysql中,执行如下命令初始化数据库。

./scripts/mysql_install_db --user=mysql

运行完成后,会在/usr/local/mysql/support-files下自动生成一个my-default.cnf文件。
c. 复制上面的my-default.cnf文件到/etc/my.cnf

cp my-default.cnf /etc/my.cnf

d. 复制MySQL启动文件到自启动文件夹/etc/rc.d/init.d/下

cp mysql.server /etc/rc.d/init.d/mysql

注:mysql为service名称,其实可以按照个人爱好随便写。

4.4 启动MySQL

service mysql start

此时,如果在命令行里面输入mysql命令,还是无法使用的,原因是mysql命令文件目前位于/usr/local/mysql/bin文件夹下,想要直接在命令行里面使用mysql命令,mysql命令必须出现在/usr/bin/文件夹下。
这时只需要按照如下方法添加软连接即可:

ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql

4.5 使用mysql命令报错解决

使用mysql命令时,可能会报如下错误:

mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory

使用如下命令通过yum安装libncurses即可:

yum install libncurses*

4.6 修改MySQL的root用户密码

第一步:进入mysql数据库

use mysql

第二步:更新root用户的密码为111111

update user set  password = password("111111") where User = "root"

第三步:刷新权限使设定生效

flush privileges;

4.7 大功告成,本地测试一下:

file

4.8 配置以可以进行远程连接

截止到4.7,还是只能本机访问的,如果需要远程访问,还需要做如下配置。
第一步:赋予root用户远程连接权限。

grant all privileges on *.* to root@'%' identified by '111111' with grant option;
flush privileges;

第二步:开启3306端口。

firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload

这时候,通过MySQL客户端就可以访问MySQL数据库啦。

XShell连接Linux(CentOS8)服务器方法

前言

过程

1. 本机安装XShell

自行下载XShell安装包,安装到本地。

2. 打开XShell,新建会话

file

  • 名称:随意,主要起标识作用
  • 协议:使用默认的SSH
  • 主机:查看要连接的服务器IP地址
  • 端口号:使用默认的22(默认情况下,Linux只开放22端口)

3. 连接

file

4. VMWare NAT模式下无法连接的问题

将下面位置的√选上就好了。
file

CentOS目录结构及常用Linux命令汇总

第一部分:说明

  • 个人总结,随着时间推移不断补充。
  • 如果不是专业的服务器维护工程师,掌握以下这些命令行就可以满足你与服务器进行各种数据交换的需要了(部署项目代码等)。
  • 以下命令在CentOS 8下亲测有效。

第二部分:目录结构

etc

存放系统配置的目录。配置环境变量、服务等。

home

除了root以外,其它用户都在home下有以用户名作为文件夹名称的目录。用户只对自己的文件夹有访问权限。

root

root用户的单独文件夹。用的比较少。

usr和opt

  • usr类似Windows中的C://Program Files
  • opt类似D盘自己指定的安装目录

如果使用usr作为程序目录,则可以在usr/local下新建tmp文件夹,所有安装文件压缩包都上传到tmp目录下。

bin和sbin

bin存放所有用户都能使用的命令文件比如:ls,cat、cd等。
sbin存放只有root管理员可以使用的命令文件比如:fdisk、shutdown、mount

dev

设备文件夹。比如挂载光驱,Windows操作系统下的硬盘等。

srv

服务启动之后需要访问的数据目录,如www服务需要访问的网页数据存放在/srv/www内。

第三部分:文件夹权限

Linux中的文件属性说明有10位:

  • 第1位:代表当前文件类型。
    • - 文件
    • d 文件夹
    • l 软连接
  • 第2-4位:分别对应当前用户的“读、写、执行”权限。
    • r 可读
    • w 可写
    • x 可执行
    • - 无该权限
  • 第5-7位:当前组的其它用户的“读、写、执行”权限。
  • 第8-10位:非当前组用户的“读、写、执行”权限。

第四部分:命令汇总

1. 理解:~和/,#和$

file
命令行进入后默认显示:
[leon@localhost ~]$
命令格式如下:
[当前用户@当前主机 当前目录]用户权限
当前目录,有三种情况:

  • ~:当前用户的home目录
  • /:root用户的根目录
  • XXX:当前进入的某个目录名称
    用户权限,有两种情况:
  • $:普通用户登陆
  • #:root用户登陆

2. 常用命令。

2.1 pwd

打印工作目录,显示当前文件夹全路径。当前工作目录比较深的时候,想知道当前所在位置时用这个命令。

2.2 cd

进入某个目录。
cd XXX:进入XXX目录
cd ..:回到上级目录
cd /:回到根目录
这里需要注意,和windows不同的是,Linux下cd后面如果跟".."的话,也需要在".."前加空格。

2.3 mkdir

创建新文件夹。
mkdir tmp:在当前目录下创建一个空的tmp目录。

2.4 ls,dir,ll

file
ls:列出目录(Linux命令,有着色)
dir:列出目录(Windows命令,无着色)
ll:列出目录详情
-a 属性,列出隐藏文件。Linux中,以.开头的文件是隐藏文件。

2.5 vi,vim

vi XXX:编辑文件XXX(无着色)
vim XXX:编辑文件XXX(vi高级版,有着色)
如果文件不存在就创建这个XXX文件。

2.6 vi和vim指令

i键:进入编辑模式
Esc键:退出编辑模式
:wq 保存编辑并退出
:q 文件没有编辑的情况下退出
:q! 强制退出,如果编辑了则不会保存编辑的内容。

2.7 cat、more、less、most、head、tail、tailf

cat:查看某文件的全部内容
more和less和most:分屏查看某文件的内容
file
head [-n]:查看文件前n行,默认查看文件前10行。
tail [-n]:查看文件末n行,默认查看文件末10行。
tailf [-n]:当该文件被编辑时,动态查看文件末n行,默认查看文件末10行。比如查看动态日志。

2.8 touch

touch demo.java 新建空文件demo.java

2.9 echo

echo "hello" >> demo.xml
将字符串hello添加到demo.xml末尾
echo "helloworld" > demo.xml
将字符串helloworld覆盖demo.xml文件内容

2.10 ifconfig

类似于Windows中的ipconfig,查看网卡信息。

2.11 reboot

重启机器

2.12 加压缩:tar zxvf 文件名

比如:tar zxvf apachetomcat.tar.gz
z:文件是否具有gzip(.tar.gz,.tgz)属性
x:释放文件,拆包
v:解压缩过程中显示文件
f:指定被处理的文件名

2.13 压缩:tar zcvf 打包后文件名.tar.gz /要打包的文件(夹)路径

比如:
tar zcvf backup.tar.gz /bin

tar cvf backup.tar /bin
z:以gzip(.tar.gz)方式压缩
c:打包
v:压缩过程中显示文件
f:指定被处理的文件名
说明:当时用winrar解压tar.gz文件时,我们会发现,文件往往需要解压两次,第一次解压为tar文件,解压tar文件后才会是打包的文件。其实,使用tar命令时,如果不加z,那么tar的作用仅仅是打包,如果加了z,则是在打包基础上再使用gzip压缩一遍。所以tar.gz的文件实际上是经过“打包”和“压缩”两道工序的产物,这和我们平时使用windows下rar打包压缩一次完成的理念稍微有点不同

2.14 复制命令:cp和cp -r

cp 源文件路径 新文件路径
cp -r 源文件夹路径 新文件夹路径

2.15 剪切(重命名):mv

mv 源文件路径 新文件路径
mv 源文件名 新文件名

2.16 删除:rm

rm 文件名,删除文件
rm -f 文件名,强制删除文件
rm -r 文件夹名,删除文件夹
rm -rf 文件夹名,强制删除文件夹

2.17 clear

清空当前屏幕内容
快捷键Ctrl+l

2.18 ip add和dhclient

ip add查看本地ip地址
dhcclient 获取ip地址
dhclient -r释放ip地址

3.19 systemctl

systemctl start 服务名,开启某个服务
systemctl stop 服务名,停止某个服务
systemctl status 服务名,某个服务当前状态
systemctl restart 服务名,重启某个服务
systemctl enable 服务名,将某个服务添加为自启动
比如,查看当前防火墙服务的状态:
systemctl status firewalld

3.20 grep和find

grep 关键字 文件名:在文件中查找关键字
find 路径 -name 文件名:在指定路径查找指定文件

3.21 ps,top和kill

ps -ef:查看所有进程的最后状态信息(静态)
ps -ef|grep XXX:查看与XXX相关的进程
top:查看所有进程的动态信息
kill -9 进程PID:结束进程

3.22 groupadd,useradd,passwd

groupadd 组名
useradd -g 组名 用户名
passwd 用户名

3.23 su

su 用户名:切换到某用户,如果切换到root,直接su

3.24 chmod

  • 更改文件权限9位标识法
    chmod u=rwx,g=rwx,o=rwx abc.sh
    使abc.sh文件所有组的所有用户可:读写运行
  • 更改文件权限3位标识法
    chomod 666 abc.sh
    有关9位标识法和3位标识法请参考:http://www.uyts.com/archives/217

3.25 firewall-cmd

  • 查看当前开放的端口信息
    firewall-cmd --list-all
  • 永久开放某端口号(比如8066)
    firewall-cmd --zone=public --add-port=8066/tcp --permanent
    firewall-cmd --reload

3.26 apt-get,aptitude,yum,dnf

都是包安装程序命令:
dnf > yum > aptitude > apt-get

3.27 curl

返回网址对应的html信息:

curl http://www.baidu.com

3.28 make

Linux下,源码的安装一般由3个步骤组成:
配置(configure)、编译(make)、安装(make install)

  • ./configure:运行目录下的configure文件,作用是检测系统配置,生成makefile文件,以便你可以用make和make install来编译和安装程序。
  • make:进入文件目录下,如果有makefile文件,就运行make命令,这个过程是进行文件的编译。
  • make install:编译完成后,make install命令用来安装。

重要的./configure --prefix=路径:

  • ./configure --prefix=路径:作用是编译的时候用来指定程序存放路径。
  • 如果在make前不指定prefix,则可执行文件默认放在/usr/local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr/local/share。
  • 卸载这个程序的时候,要么在原来的make目录下用一次make uninstall(前提是make文件指定过uninstall),要么去上述目录里面把相关的文件一个个手工删掉。
  • 指定prefix,直接删掉一个文件夹就够了。

使用make前需先安装gcc和g++

yum install gcc automake autoconf libtool make
yum install gcc-c++

VMWare Workstation下安装CentOS 8详细说明

第一步:安装VMWare Workstation

安装完打开软件,显示如下界面:
file

第二步:下载CentOS ISO

从CentOS官网上下载ISO文件到本地。
我下载后的文件名是:CentOS-8-x86_64-1905-dvd1.iso

第三步:在VMWare WorkStation中创建虚拟机。

分步操作截图及解释如下:

1. 创建新的虚拟机

file

2. 使用:自定义(高级)

file

3. 无需修改,直接下一步

file

4. 选择ISO,然后下一步

file

5. 设定Linux账户信息

file
全名:主机名称(可以理解为上图Windows系统中的计算机全名)。
用户名:可以使用小写字母、数字和破折号,但不要在用户名中以破折号作为起始字符。请勿使用 root 作为名称。
密码:用户名和root用户的密码。
file

6. 设定虚拟机名称

file
虚拟机名称:这个是为虚拟机取得名字,方便日后在VMWare WorkStation中区分。这个名字最终会显示在WorkStation左侧的列表中。
位置:默认是C盘,我选择放在F盘。

7. 普通应用一个处理器就够了

file

8. 普通应用一个G的内存就够了

file

9. 使用网络地址转换(NAT)

file
三种连接方式的解释如下:
- 桥接网络(bridged)
在这种模式下,VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器。
假设你的PC机在当前局域网里面的IP地址是192.168.0.104,那么安装后的虚拟机IP地址就是192.168.0.XXX
- 网络地址转换(NAT)
使用NAT模式可以实现在虚拟系统里访问互联网,但虚拟系统只能和主机通信,而无法和主机本局域网中的其他真实主机进行通讯。相当于虚拟主机和当前主机组件了新的虚拟局域网。
比如,当前主机在局域网中的IP地址是192.168.0.104,那么使用NAT后,当前主机和虚拟主机将会以新的IP段,比如192.168.10.XXX的虚拟地址进行通信。
- 仅主机模式网络(host-only)
在某些特殊的网络调试环境中,要求将真实环境和虚拟环境隔离开,这时你就可采用host-only模式。在host-only模式中,所有的虚拟系统是可以相互通信的,但虚拟系统和真实的网络是被隔离开的。
提示:在host-only模式下,虚拟系统和宿主机器系统是可以相互通信的,相当于这两台机器通过双绞线互连。

10. 下一步

file

11. 下一步

file

12. 下一步

file

13. 设定硬盘空间大小,其实10G足够了。

file

14. 选择和第六步相同的位置方便管理

file

15. 点击完成。开始安装过程。

file

报错1:

file
vmci是一个宿主机和虚拟机之间的交换层,可以帮助虚拟机更快地调用硬件资源,但是win10对其支持不完善,个别机器会报错,解决方法如下:
file
查找到 vmci0.present="TRUE",将TURE更改为FALSE,保存即可。

报错2:

file
主要原因是虚拟机自动加载两个CD。解决方法如下:
在设置里把CD/DVD(IDE)autoinst.iso取消启动时连接,只启用CD/DVD2(IDE)就好了。
file

第四步:在虚拟机中安装CentOS8

1. 选择安装过程中使用的语言。

file

2. 点击有黄叹号的地方。

file

3. 啥也不用干,点击完成。

file

4. 开始安装

file

5. 安装过程中点击【根密码】设置root密码

这时你可能会晕了,为什么又要设root密码?而且还提示没有创建用户呢?刚刚在上面不是为root设密码而且创建了个leon用户吗?
注意:上面那步是快捷安装时才适用的,而CentOS8由于版本比较新,不适用与快捷安装,所以之前的设定相当于没用。如果装CentOS6.5,上面的设置就会生效了。
file

6. 然后就是漫长的等待,最后重启即可进入系统进行配置了。

file

7. 点击接受许可证,大功告成了!

file