虚拟机-VMware虚拟机三种网络模式(Centos虚拟机)
Posted zhang_xinxiu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了虚拟机-VMware虚拟机三种网络模式(Centos虚拟机)相关的知识,希望对你有一定的参考价值。
最近在学习hadoop,主要是由于hadoop的鲜明特点,不仅可以分布式处理大数据,而且可以充分发挥集群的力量,可以部署到低廉的硬件上,提供高吞吐量来访问应用程序的数据。总结一句话就是,hadoop运行机器的们门槛低,并且提供分布式的集群服务来处理大数据。现在很多公司在处理大数据时,首选的框架就是hadoop,所以学习它能为将来在技术职业生涯中发挥作用。
在学习hadoop集群前,首先要学习如何搭建hadoop集群,我自己搭建的虚拟机分配双cpu,双核,4G运行内存,80G的物理内存,虚机的系统安装的是CentOS-7-x86_64。因为这是以前做的系统,很久没用过,在用的时候发现局域网的机器根本没法使用ssh远程连接,经过一宿的排查,发现问题出在了网络配置上,所以把问题记录下来,希望能帮助其他朋友。
在解决问题之前先研究点虚机网络相关的问题,为以后排查虚机网络问题打下基础。
network三种工作模式
虚机的网络模式分为三种,分别是Bridged、NAT(Network Address Translation)、Host-only,翻译成中文分别是桥接、网络地址转换、仅主机,这三种模式都可以链接到主机,三种模式可以在Virtual的network编辑器中查看到。
VMnet0是桥接模式;VMnet1是仅主机模式,对应着物理机的以太网2;VMnet8是网络地址交换模式,对应着物理机的以太网4。物理机网卡名称因系统而异,可通过查看网卡ip来找到对应关系。
1.1 桥接模式
桥接模式像是一种嫁接模式,把主机主机网卡和虚拟机网卡嫁接到一起,这个连接的工具就是虚拟网桥。虚拟机上的虚拟网卡连接到虚拟交换机Vmnet0上,Vmnet0又通过虚拟网桥与主机网卡相连。这种方式的虚拟机类似于和主机在同一网段中的物理机一样,可以访问局域网中的任何机器,主机能够上网,虚拟机也可以上网。但是有个问题是此模式下如果物理机的ip发生变化,虚拟机的ip也会去相应的改变。
打开虚拟机的网卡设置,并选择Bridged模式,作为虚拟机的网络连接方式。
然后查看下主机网卡的ip地址、子网掩码、dns、dhcp。
设置虚拟机的网络连接数据。
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# ls
ens33 ifdown ifdown-ib ifdown-isdn ifdown-routes ifdown-TeamPort ifup-aliases ifup-ib ifup-isdn ifup-post ifup-sit ifup-tunnel network-functions
ifcfg-ens33 ifdown-bnep ifdown-ippp ifdown-post ifdown-sit ifdown-tunnel ifup-bnep ifup-ippp ifup-plip ifup-ppp ifup-Team ifup-wireless network-functions-ipv6
ifcfg-lo ifdown-eth ifdown-ipv6 ifdown-ppp ifdown-Team ifup ifup-eth ifup-ipv6 ifup-plusb ifup-routes ifup-TeamPort init.ipv6-global
[root@localhost network-scripts]# vim ifcfg-ens33
[root@localhost network-scripts]# service network restart
Restarting network (via systemctl): [ OK ]
设置完成,可以通过使用如下的连接方式远程控制虚拟机了:
1.2 NAT(地址转换模式)
NAT,是用来共享主机IP的方式,同样的Vmnet8作为虚拟机的交换机,它是通过虚拟的NAT设备和主机网卡互联,来实现网络访问的。另外Vmnet8也连接了虚拟DHCP服务器,可以动态的对虚拟机进行ip的分配。Vmnet8虚拟交换机和主机的主机的通信并不是通过虚拟NAT设备,而是通过以太网4(Vmware Network Adapter Vmnet8)和主机进行通信。此模式下主机如果可以访问网络,那么虚拟机也是可以的,默认情况下和主机同一网段的其它物理机是无法访问虚拟机的,但虚拟机可以访问其它物理机。如果想要其它物理机访问虚拟机,可以通过使用主机转发物理机的端口方式来实现互相通信。
NAT模式中主机网卡直接与虚拟NAT设备相连,而虚拟NAT设备和虚拟的DHCP服务器由连接了Vmnet8。同时Vmnet8又和Vmware Network Adapter Vmnet8相连,来实现主机和虚拟机的互相通讯。
设置网络链接模式为NAT,这里使用动态获取ip的方式来为本机分配ip。
在vmware设置好使用NAT访问后,然后需要在虚拟机中设置网络ip以及相关信息,在NAT模式下,ip获取方式可以更改为动态获取,设置方式如下
设置完成后使用如下的代码来重启虚拟机的网络服务
[root@localhost ~]# service network restart
Restarting network (via systemctl): [ OK ]
重启完成后就可以在主机中使用ssh来访问虚拟机了。但是这种模式下同一网段中的其它物理机无法访问虚拟机,想要访问的话就必须使用端口转发来实现,具体操作方法如下。
先打开vmware的网络编辑器,选择NAT模式,并点击NAT编辑器,进入编辑器后将网关设置成和主机一样的网关地址。
设置好后,添加端口转发,这里要注意的是端口的转发是指物理主机转发虚机的端口,如下图所示的9999端口是主机的端口号,是作为在同一网段中其它物理机访问的端口,当其它物理机访问主机的9999端口时会把此端口转发到物理机中的22端口,来实现和其它物理机的互相通信。
设置好后可以使用ssh工具来测试,ssh访问的ip即为虚拟机中的主机的ip,端口号即为上面设置的9999,连通后在命令行查看下ip地址,会发现是虚拟机的地址,这就是通过端口转发来实现互相通信的方式。
1.3 Host-Only(仅主机模式)
Host-Only其实就是NAT模式提出了NAT虚拟设备,然后使用Vmware Network Adapter VMnet1虚拟网卡连接主机,通过虚拟网卡和Vmnet1虚拟交换机互联,实现虚拟机和主机的互相通信。此模式将虚拟机和外网隔离,使得虚拟机成为一个独立的系统,使得虚拟机无法联网,但是所有的虚拟机之间可以互相通信。此模式下的IP信息,是由host-only虚拟网络的DHCP服务器来分配的,如果想要上网可以将能上网的主机网卡共享给Vmware Network Adapter Vmnet1,这样可以实现虚拟机联网。
首先通过在虚拟机网络编辑器中编辑网卡的链接方式,并设置虚拟机动态ip的网段地址。
设置完成后在虚拟机网卡里设置将虚拟机的网路连接方式改成host-only模式,如下
最后一步设置虚拟机的ip链接,host-only模式提供了虚拟的DHCP服务器,所以可以将虚拟机设置为动态获取ip的方式,如下
最后重启网络,并查看ip,通过ssh方式访问虚拟机。
[root@localhost ~]# service network restart
Restarting network (via systemctl): [ OK ]
[root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.23.128 netmask 255.255.255.0 broadcast 192.168.23.255
ether 00:0c:29:7c:ae:d8 txqueuelen 1000 (Ethernet)
RX packets 1999 bytes 140956 (137.6 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 737 bytes 70264 (68.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)
RX packets 364 bytes 26376 (25.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 364 bytes 26376 (25.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
因为此模式下虚拟机是作为一个独立的系统运行的,无法和外网连接,但是很多时候我们有些需求需要连接外网来获取一些信息,可以通过能联网的主机网卡共享给Vmware Network Adapter Vmnet1来实现虚拟机联网,如下
需要说明的是在选择共享后,Vmware network adapter vmnet1的默认ip地址为192.168.137.1,然后需要设置虚拟机的网关和dns和虚拟网卡在同一ip下,并设置host-only模式下的虚拟机的ip网段在137下,设置如下:
设置完成后,需要设置虚拟机的网络连接数据,将网关和dns改为Vmware network adapter vmnet1的ip地址。
[root@localhost network-scripts]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# vim ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=dhcp
NAME=ens33
UUID=9e7270e4-d2e2-4bf1-b6c9-ce2368b8a866
DEVICE=ens33
ONBOOT=yes
#IPADDR=192.168.1.130
#NETMASK=255.255.255.0
GATEWAY=192.168.137.1
DNS1=192.168.137.1
[root@localhost network-scripts]# service network restart
Restarting network (via systemctl): [ OK ]
设置完成后就可以正常上网了。
结语
桥接模式:此模式下,虚拟机的操作系统就像和物理机同一段网络中的物理机一样,它可以访问网络中的任何机器,同时只要物理机可以访问网络,虚拟机也可以实现上网。但换来一个问题就是,如果你的物理机网络IP发生变化,虚拟机的IP也会相应的改变。
NAT模式:使用NAT模式,就是让虚拟机借助NAT(网络地址转换)功能,通过物理机来访问网络。此模式下,如果物理机可以访问互联网,那么虚拟机也可以,默认情况下 和物理机同一网络中的其它机器不能访问虚拟机,但虚拟机可以访问其它物理机。但可以通过主机的端口转发让局域网中的物理机和虚拟机进行互相通信。
Host-only模式:在一些网络环境中,由于安全,调试等原因,可能需要讲虚拟机和真实的物理环境隔离开来,那么此模式是首选。此模式下的所有虚拟机可以相互访问,但和真实的物理网络环境是隔离开的,此模式下的IP信息,是由host-only虚拟网络的DHCP服务器来分配的。
以上是关于虚拟机-VMware虚拟机三种网络模式(Centos虚拟机)的主要内容,如果未能解决你的问题,请参考以下文章