Linux——网络配置篇

1、前情提要:

今晚在配置Linux (CentOS7完整版)的时候 明明已经配好了网络环境,重启虚拟机后,又出现了Ping不通 主机、Ping不通网关,外网的情况 (NAT)。

让我很费解的一个情况是,同一个VM下,我两台Centos,一个mini版本,ifcfg-ens33 文件配置内容与新配置的 CentOS7 DVD版本几乎相差无几,但是新配置的完整版,就是死活ping不通。

关闭了防火墙,修改了Windows入站出站规则,关闭了NetworkerManager ,没有任何作用。

我回忆了一下:

是否有一次强制退出(非正常退出虚拟机)的情况?

好像有。。。

检查虚拟机在windows下的各种服务有没有打开,嗯,都是打开,且正常的

Linux——网络配置篇_第1张图片

Linux——网络配置篇_第2张图片

 比较值得关注的是Authorization Server、NAT、和VMware workstation Server 三个服务

都没问题。

改用桥接

ping的时候(主机、外网、网关) 依然是:出现Destination Host Unreachable

当我用另一台正常的CentOS 连接SecureCRT时,甚至发现连不上了???

我在在那台刚刚还正常的Centos上 ping 主机、外网、网关,都是正常的,这就说明,主机Ping不通虚拟机了。

我看了一下Windows网络适配器:

vmware network adapter VMnet8消失了  (下文介绍此虚拟网卡的作用)

解决办法:

1、重装VMware,懒得装,太麻烦

2、Vmware工具栏   【编辑】——>【虚拟机网络设置】——>【还原默认设置】

vmware network adapter VMnet8 再次出现,此时,我们更具这个虚拟适配器提供的属性,我们重新配置一下centos的网络

基本就解决问题了。

Linux——网络配置篇_第3张图片

 Linux——网络配置篇_第4张图片

Linux——网络配置篇_第5张图片

2、虚拟机和宿主机的网络连接模式

基本模型

Linux——网络配置篇_第6张图片

1、桥接模式

Linux——网络配置篇_第7张图片

桥接模式:宿主机充当一个网桥,虚拟机的网段要和宿主机保持一致。

这样宿主机形成的局域网可以访问到虚拟机,而虚拟机也可以访问到宿主机局域网,不安全。

虚拟机通过宿主机的路由进行外网连接。

桥接模式下,物理机和虚拟机是等效的,你可以把虚拟机理解成该网段内的普通主机。

桥接模式下如果ping不通,一般都是防火墙没关,或者IP地址冲突,网络配置文件没有配置正确,虚拟机网卡没有激活,桥接选择的主机网卡错误。在虚拟机网络设置里,它对应的是VMnet0

2、NAT模式

Linux——网络配置篇_第8张图片

首先、我们要知道,什么是NAT:
NAT Net Address Translation   网络地址转换协议 

NAT协议是将IP数据报头中的IP地址转换为另一个IP地址的过程,主要用于实现私有网络访问共有网络的功能。

这种通过使用少量IP地址代表较多IP地址的方式,有助于减少IP地址空间枯竭的现象。

Linux——网络配置篇_第9张图片

NAT模式下,主机给我们虚拟了一个网络适配器 VMware Network Adapter  for VMnet8

 这个虚拟网卡,在宿主机也加入了VMnet8子网段的局域网,让NAT模式下,该宿主机内的虚拟机都在此局域网内。

这样的意义其实是为了解决 NAT模式下,主机的本质是充当一个路由,在NAT服务下,帮助虚拟机进行访问外网,但是这样会有一个问题,虚拟机无法访问到主机。

于是,宿主机(物理机)虚拟出来一个网卡,让自己和虚拟机都在这个网段内,这样大家就能互相访问了。

在我的虚拟机配置里

物理机真实IP是192.168.1.3,它相当于一个路由,同时也是提供NAT服务的作用。

Vmnet8虚拟子网是 192.168.190.0

虚拟机ip是192.168.190.127

虚拟子网段的网关是 192.168.190.2

宿主机在Vmnet8子网下的IP是 192.168.190.1

这里我再强调一下,Vmnet8是虚拟子网段的名称,而不是虚拟出的网卡,从设备管理器里我们能看到虚拟网卡的全名

3、仅主机模式

其实简单的来说,仅主机模式就是 NAT模式,去掉主机的NAT服务,路由功能,仅仅虚拟出一个VMnet1子网,并虚拟出一个Vmnet1下的网卡,让主机和虚拟机构成一个专用局域网。仅限于内部访问,不可以连外网。

3、虚拟机的网络配置

1)、配置Linux网络配置文件

前面我们说Linux文件目录的时候说过,配置文件往往都在 /etc目录下

命令如下

 vim /etc/sysconfig/network-scripts/ifcfg-ens33

Linux——网络配置篇_第10张图片

 添加IP,子网掩码,网关,DNS,将DHCP动态获取IP改为 static。ONBoot 改为yes

NETMASK =255.255.255.0 可以简写为prefix=24 (掩24位)

IP地址32位,平时我们写的点分十进制可以转换成二进制32位去理解

比如以C类地址为例:

C类地址前3个段是网络号,最后一个段是主机号,这就是说 转换为32位二进制表示,只有后8位,我们可以划分主机号(且要排除0和255 ),那么前24位就是网络号,且最高位必须是110(即192  二进制1100 0000)

除了点分十进制,我们还可以写成等效斜线记法:

IP地址/掩码位数(网络号长度)

我的虚拟机IP就可以写成

192.168.190.137/24

这里注意一个细节:

我们可以通过虚拟机dhcp设置,看看动态获取的IP的范围,防止我们自己固定IP的时候,越界

Linux——网络配置篇_第11张图片

2)、执行 service network restart 重启网络

3)、修改 IP 地址后可能会遇到的问题

(1)物理机能 ping 通虚拟机,但是虚拟机 ping 不通物理机,一般都是因为物理机的 防火墙问题,把防火墙关闭就行

(2)虚拟机能 Ping 通物理机,但是虚拟机 Ping 不通外网,一般都是因为 DNS 的设置有 问题

(3)虚拟机 Ping www.baidu.com 显示域名未知等信息,一般查看 GATEWAY 和 DNS 设 置是否正确

(4)如果以上全部设置完还是不行,需要关闭 NetworkManager 服务 

        systemctl stop NetworkManager 关闭

        systemctl disable NetworkManager 禁用 

其实NetWorkManager是CentOS7新的网络服务,它的作用等同于centOS6的network.service

这两个服务保留一个就行了,如果都处于active(runing)状态,会产生冲突,导致网络异常

(5)如果检查发现 systemctl status network 有问题 需要检查 ifcfg-ens33

你可能感兴趣的:(Linux,linux,网络,服务器)