在vmware虚拟机的设置中,共有四种网络模式可以选择:桥接模式、NAT模式、仅主机模式和自定义模式。本文重点讲解前三种网络模式的设置。
下图是我的宿主机的IP信息,在某些场景下需要将虚拟机中的centos8 的IP地址设置为静态IP地址,下面就虚拟机的桥接模式、NAT模式和仅主机模式作以详细的讲解。
1.NAT模式
首先在虚拟机中的centos8.5开机之前将网络模式设置为NAT模式。
进入centos8.5以后,通过ifconfig命令查看系统IP地址。
ifconfig
1.
联通性测试
ping baidu.com
1.
网络是通的,是不是如此的简单啊?
可是你发现没有,centos中的IP地址和宿主机的IP地址并不在同一个子网里。这里涉及到了子网的概念了,不知大家对网络的了解有多少。在这里我只想提醒大家牢记一句话在同一子网中的两台机器,可以直连,大家可以把同一子网想像成同一间教室,你可以和你的同学在同一间教室里直接讲话,而如果想和其他教室中的同学就无法直接讲话了,可能需要使用手机之类的帮助了。
通过前面的学习,大家可能对IP地址并不太陌生了,在我带着大家设置网络的时候只要求大家照猫画虎的去做并没有讲为什么,我怕我讲不明白反而会吓到大家,影响了学习的兴趣。其实基本的网络知识也很简单,刚才已经告诉过大家一句很重要的话了。IP地址是类似于192.168.2.100这么一串数字,这串数字由4个点分成了四段,每一段中的数字必须为1~254之间的一个,192.168.2.254是一个合法的IP地址,而192.168.2.256就不是一个合法的IP地址了,为什么呢?原来IP地址的每段都由8位组成,在2进制中8位最大也就是11111111,再大就溢出了,而二进制11111111代表的最大数字就是256,也就是说这8位最多能表示256个不同的地址,而IP地址的0,和255有别的用途了,所以就只剩下了0-254了。
除了IP地址还有子网掩码,子网掩码是类似255.255.255.0这样的一串数字,在子网掩码中0和255就都可以出现了。子网掩码255.255.255.0表示掩24位,也就是前面的三段3*8=24,掩的是网络地址,后面的8位是主机位,也就是在某个子网内可以出现的主机的地址。如果192.168.2.0/24上述写法表示的意思是子网192.168.2.0掩24位,所包含的主机的IP地址就可以是192.168.2.1到192.168.2.254,子网192.168.2不变,变的是最后那段的1到254。
IP地址和子网掩码共同确定了子网,如果光有两个IP地址,没有告诉你子网掩码你是无法确定这两个IP是否在同一个子网内的。比如IP地址192.168.2.25和IP地址192.168.2.100,它们看着虽然很像但是并不一定是在同一个子网内。
下面我给大家证明一下啊。反正大家牢记住同一子网,直连直通就行了(此处有点难,有兴趣的同学看看,没兴趣的同学记住结论就可以了)。
如上图我在模拟器中已经给两台直连电脑配好了IP,大家想想看,这两台电脑能ping能吗?
大家牢记同一子网的两个终端可以直通直连,那么不同子网之间的终端就要依托路由器来联通了。
ping 不通说明它们不是同一个子网,那么192.168.2.25/255.255.255.248和192.168.2.100/255.255.255.248分别属于哪两个子网呢?
这就是子网掩码神奇的地方了。
大家看一下子网掩码长什么样子吧。255.255.255.0,255.0.0.0,255.255.0.0,都是正确的子网掩码,大家看一下255.255.255.250是不是正确的子网掩码呢?
计算机底层是不认识十进制的,把IP地址、子网掩码、网关写成点分十进制的样子也只是为了方便人们的认识。255.255.255.0用二进制表示为11111111.11111111.11111111.00000000,大家可以使用windows系统自带的计算器来计算。
win+r组合键调出运行框,在运行框中输入calc回车。
如果你的计算器和我的不一样,按照下面设置一下。
在十进制输入模式下输入255。
按照十进制到二进制的转换方式,255.255.0.0,就是11111111.11111111.00000000.0000000,255.0.0.0就是11111111.00000000.0000000.000000,而255.255.255.250转换成二进制就是1111111.1111111.11111111.11111010,看到区别没?最后面的111111010,不是连续的1组成的了,所以它就不是一个合法的子网掩码了。
讲到这里建议大家可以百度一些二进制、子网划分的资料看看,如果看不懂也没关系,多看看多想想就明白了。计算机是真实的人类世界的映射,多用生活中的例子去想像一下计算机内部的世界,反过来想如果你就是冯.诺伊曼那么你怎么去设计计算机呢?
还有一种验证子网掩码是否合法的方法,那就是在windows或linux的窗口界面中直接输入你想设置的IP地址,如果有错会有提示的。
因为255.255.255.250转换成二进制就是1111111.1111111.1111111.11111010,255.255.255.248转换成二进制就是11111111.1111111.111111.11111000,聪明的你看明白了吗?
为了给大家讲明白IP地址、子网掩码、网关,扯的有点远了,还是记结论吧。
网关和IP地址必须在同一子网,大家想一下,网关也是一个IP地址,你暂且把它也想成是一台电脑吧,要想和它直接也必须遵守同一子网才能直通直连的规则,那么网关也必须和IP地址在同一个子网才可以了。
同样在你设置IP的时候,如果网关设置成了和IP不同一子网的话,系统也是会报错的,你的设置同样不会生效。
回到前面的话题,怎么才能让192.168.2.25和192.168.2.100直连能通呢?那就是修改子网掩码把它们修改成同一子网就可以了。
再对ping一下吧。
费了好大的篇幅给大家讲解IP、掩码、网关的问题,不知大家看明白没有,如果不明白可以在评论区留言。
好了还是回到我们的NAT模式的IP设置上来,前面带大家设置了NAT模式,登录centos没用做什么就可以上网了,但是自动获取的IP地址并不和我的宿主机在同一个网段里,那么它们怎么也可以连通了呢?是不是和你讲的有矛盾了?其实虚拟机和宿主机之间是有路由的,只是虚拟机帮你设置好了,你看不到而已。
2.桥接模式
那么我就是想让虚拟机和宿主机在同一个子网怎么办呢?那就需要给虚拟机设置静态IP地址了。
在未登录centos之前先设置虚拟机。
然后登录centos,打开一个终端,并切换到root用户。
通过vi修改ifcfg-ens33网卡配置文件。
vi /etc/sysconfig/network-scripts/ifcfg-ens33
1.
把ifcfg-ens33修改成下面的样子。
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
IPADDR=192.168.2.128
NETMASK=255.255.255.0
GATEWAY=192.168.2.1
DNS1=192.168.2.1
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=ens33
UUID=818a6bc2-1003-4f28-be3b-aa9cd8c1d906
DEVICE=ens33
ONBOOT=yes
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
在centsos8.5中已经无法使用命令systemctl restart network重启网络服务了,应该使用下面的命令先关闭网卡再打开网卡
ifdown ens33
ifup ens33
1.
2.
测试
ping baidu.com
1.
ping宿主机
ping 192.168.2.106
1.
3.仅主机模式
仅主机模式,是vmware虚拟机三种网络模式中相对比较复杂一些的。
将虚拟机设置为仅主机模式,尔后开机登录系统。
下图是我还原默认设置后的。
和前面修改centos静态IP一样将系统的IP地址步骤相同修改成适合你本机的IP地址,我的对应如下。
vi /etc/sysconfig/network-scripts/ifcfg-ens33
1.
注意:"DNS1=192.168.2.1"是你的路由的地址。
ifdown ens33
ifup ens33
1.
2.
3.
测试
ping baidu.com
1.
好了,至此虚拟机的三种网络设置模式的讲解就告一段落了,不知你学会了没有?如果没有学会也不要怕,关注我的博客能让你少走弯路。
vmware15 虚拟机的三种网络设置
https://blog.51cto.com/u_3436241/4883427