本文主要介绍使用VMware新建一个centOS虚拟机后,如何连接网络并配置静态ip的过程。
上篇文章中我们介绍了如何使用VMware创建一个centOS系统的虚拟机,点击进入传送门。但是虚拟机安装完成后还少了一个步骤:联网。没有连接网络的操作系统能有什么意思?
我们以安装vim编辑器
为例,在centOS系统中,安装vim编辑器
时只需要输入yum install vim
命令即可。现在我们开始安装。
在命令行中输入以下命令
yum install yum
结果如下图所示
从系统输出中第四行我们找到一个关键提示:
Could not resolve host: miirrorlist.centos.org: Unknown error
无法解析主机:miirrorlist.centos.org
,从而导致未知的错误:Unknown error
。
看到这里首先判断该虚拟机是否已经联网。
很多小伙伴检查是否联网的方式非常简单粗暴,直接看VMware右下角的网络状态标识,如下图所示
你看,既然显示断开连接,那不就说明现在是已连接的状态吗?非也,这里的连接状态指的是当前虚拟机与网卡之间的连接,而非网络连接状态。
ping
命令最简单的办法就是ping
一下呀,ping
个百度试试,能ping通,就说明联网,否则未联网。
输入以下命令ping
一下百度
ping www.baidu.com
结果如下
很明显,ping不通,说明未联网。
使用ip addr
命令查看当前虚拟机的ip地址
ip addr
输出如下
从输出中可以看到有两个网卡信息lo
和ens33
,这两个网卡的作用大家可以自行查找资料。
其中我们发现ens33
网卡中没有ip信息,也就是说当前虚拟机没有对外开放的ip地址。
现在去查看一下ens33
网卡信息
ens33
网卡ens33
网卡信息保存在/etc/sysconfig/network-scripts/ifcfg-ens33
中,如下所示
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=c47c82e8-4827-4e0f-9289-8188c6101e72
DEVICE=ens33
ONBOOT=no
现在我们对这些配置进行解释
配置项 | 说明 | 默认 | |
---|---|---|---|
TYPE | 接口类型,常见有的Ethernet以太网 | Ethernet:以太网 | |
PROXY_METHOD | 网络代理方法 | none:无代理 | |
BROWSER_ONLY | 仅开启浏览器模式 | no:非仅浏览器模式 | |
BOOTPROTO | 主机配置协议 | dhcp:动态主机配置协议,即动态ip | |
DEFROUTE | 是否设为默认路由 | yes:是 | |
IPV4_FAILURE_FATAL | 如果ipv4配置失败禁用设备 | no:否 | |
IPV6INIT | ipv6初始化 | yes:是 | |
IPV6_AUTOCONF | ipv6自动配置 | yes:是 | |
IPV6_DEFROUTE | ipv6默认路由 | yes:是 | |
IPV6_FAILURE_FATAL | 如果ipv6配置失败禁用设备 | no:否 | |
IPV6_ADDR_GEN_MODE | IPV6地址生成模型 | stable-privacy:一种ipv6的生成策略 | |
NAME | 网卡名称 | ens33 | |
UUID | 网卡唯一标识 | 随机UUID | |
DEVICE | 此配置文件应用到的设备 | ens33 | |
ONBOOT | 开机自动启动该网卡 | no:否 |
对ens33网卡的配置信息有了大概了解后,发现原来是因为默认的ONBOOT=no
而导致该网卡未开启,现在我们将其设置为开机启动ens33网卡,
如下
ONBOOT=yes
重启虚拟机后,再次输入ip addr
查看本机ip地址
现在看到输出的结果比修改前ens33网卡信息部分发生了变化,即多了两行ipv6的信息,但是依然没什么卵用啊,ipv4的地址依然没有显示。
确定一台主机的ip地址的两个基本条件是什么?网关和子网掩码呀,网关都没有,谈何ip地址呢?
这也是ens33
网卡配置文件中缺少的东西,我们需要给该网卡配置相应的网关和子网掩码。
但是,网关地址并不是随随便便填一个就好了,我们从哪里获取网关地址呢?
我们进入宿主机的网络配置界面,并进入高级网络设置,如下所示
可以发现vmware给我们的宿主机安装了两个虚拟网卡:VMnet1
和 VMnet8
VMnet1
虚拟网卡对应的就是在虚拟机中我们看到的lo网卡
,VMnet8
虚拟网卡对应的就是ens33网卡
。接下来我们进入VMnet8
虚拟网卡查看其详细信息
从该信息中,可以看到,宿主机给该网卡配置的ip地址为192.168.10.1
,子网掩码为255.255.255.0
,将ip地址和子网掩码进行二进制与运算,即可得到该网卡的子网地址:192.168.10.0
,
现在我们得到了子网:192.168.10.0
,子网掩码:255.255.255.0
。
接下来需要对虚拟机进行配置。
打开vmware上方的编辑 -> 虚拟网络编辑器
,如下图所示
我们对当前虚拟机配置的网络连接方式为NAT模式
所以在虚拟网络编辑器中对NAT模式进行配置,将子网和子网掩码分别输入并保存。
在虚拟网络编辑器中对NAT模式进行配置时,点击NAT设置按钮,对网关进行配置,
配置网关时,网关地址必须在子网ip范围内,即192.168.10.0 ~ 192.168.10.255
,但其中192.168.10.0
、192.168.10.1(本机)
和192.168.10.255(广播)
这三个ip地址为保留地址,除此三个,其余ip地址均可作为网关ip,我们以192.168.10.2
作为网关ip。
再次进入ens33
网卡配置文件,在其中添加网关和子网掩码的配置以及DNS地址,如下图所示
保存修改后,我们再次通过ip addr
查看ip地址,结果如下
可以看到,我们在ens33
网卡配置文件中设置的明明是BOOTPROTO=dhcp
动态分配ip地址,但结果是并没有被得到分配的ip。
再次打开虚拟网络编辑器界面,启用DHCP服务,并点击DHCP设置按钮对其进行自定义配置,包括分配的起止ip地址,以及被分配拟的ip地址的有效时间。
保存配置后,重启虚拟机或重启网卡(systemctl restart network
)。
输入ip addr
查看是否已经获取到DHCP分配给当前虚拟机的ip地址,如下图所示
从输出中可以看到,dhcp动态分配ip地址的功能已经生效,当前虚拟机被分配的ip地址为192.168.10.128
。
现在我们再次对百度进行ping
命令,结果如下
能ping通,说明联网成功。
动态ip固然能用,但是dhcp所分配的ip地址存在有效时间,一旦过期,则会重新分配另一个ip地址,频繁变动的ip地址对我们来说是一个麻烦事。因此我们决定使用静态ip地址。
打开ens33
网卡配置文件,对其进行修改
在该文件中所做的修改如下
BOOTPROTO
这一配置由dhcp(动态分配)
改为static(静态)
,192.168.10.0/24
范围内的ip地址192.168.10.20
修改后保存。并重启虚拟机或重启网卡(systemctl restart network
)。
输入ip addr
查看我们指定的静态ip地址是否已生效,如下图所示
从输出中可以看到,我们指定的静态ip地址已经生效。
现在我们再次对百度进行ping
命令,结果如下
能ping通,说明联网成功。
纸上得来终觉浅,绝知此事要躬行。
————————我是万万岁,我们下期再见————————