vmware联网解决方案:host-only共享上网
一、需求说明
vmware通过桥接的方式可以上外网,但是虚拟机的IP地址必须和物理网卡在同一网段,上网环境不同虚拟机必须跟着换ip地址很麻烦,所以最好是采用host-only方式上网。
特别是做架构实验的时候,如果设置双网卡。。。经常会出各种问题,用host-only这种方式则简单多了,既能在不同网络环境下使用固定的IP地址,又能访问内外网。
一般情况下host-only模式只是虚拟机和主机之间建立的网络,仅对主机可见,但是通过Windows系统的主机上使用Internet连接共享功能,则可以让虚拟机连接到Internet或其他网络。
二、解决方案
1
“编辑”>“虚拟网络编辑器”这一步是确认虚拟网卡host-only的网卡名称VMnet1以及网段192.168.8.0
2
本地连接上点击鼠标右键“属性”
3
“共享”,选择host-only那块网卡,点击确认之后VMnet1网卡ip会变成192.168.137.1
4
鼠标右键将VMnet1还原成图1中的192.168.8.0段填入IP地址和网关,其他可以不填。
5
设置虚拟机的ip为192.168.8.2,网关和DNS都指向192.168.8.1
6
虚拟机通过host-only网段上网了
END
PS:通过host-only网段上网的疑难杂症?
平时用得挺好的,经常换网络环境使用都正常,但有一天突然只能连内网,外网无法访问。ping 网关可通,ping网内其他机器正常。。。这是一夜回到host-only模式吗?
上网查相关问题,有说重启windows主机的vm相关服务,重启主机,重启虚拟机,关闭防火墙,关闭selinux,重启路由器。。。都没用
各种方法都试了,自己抱着试一试的方式。取消windows主机的共享,然后照以上的方式再配一次。结果,内外网都通了,神奇。
分析原因,难道是IP冲突了?不太像呀,难道是win10和vmware不兼容?难道是什么软件更改了配置???都不清楚,待观察,总之现在问题未再出现~
三、附录:VMeare的三种网络连接模式
VMware 桥接模式
VMware桥接模式,也就是将虚拟机的虚拟网络适配器与主机的物理网络适配器进行交接,虚拟机中的虚拟网络适配器可通过主机中的物理网络适配器直接访问到外部网络(例如图中所示的局域网和Internet,下同)。简而言之,这就好像在上图所示的局域网中添加了一台新的、独立的计算机一样。因此,虚拟机也会占用局域网中的一个IP地址,并且可以和其他终端进行相互访问。桥接模式网络连接支持有线和无线主机网络适配器。如果你想把虚拟机当做一台完全独立的计算机看待,并且允许它和其他终端一样的进行网络通信,那么桥接模式通常是虚拟机访问网络的最简单途径。
VMware NAT模式
NAT,是Network Address Translation的缩写,意即网络地址转换。NAT模式也是VMware创建虚拟机的默认网络连接模式。使用NAT模式网络连接时,VMware会在主机上建立单独的专用网络,用以在主机和虚拟机之间相互通信。虚拟机向外部网络发送的请求数据"包裹",都会交由NAT网络适配器加上"特殊标记"并以主机的名义转发出去,外部网络返回的响应数据"包裹",也是先由主机接收,然后交由NAT网络适配器根据"特殊标记"进行识别并转发给对应的虚拟机,因此,虚拟机在外部网络中不必具有自己的IP地址。从外部网络来看,虚拟机和主机在共享一个IP地址,默认情况下,外部网络终端也无法访问到虚拟机。
此外,在一台主机上只允许有一个NAT模式的虚拟网络。因此,同一台主机上的多个采用NAT模式网络连接的虚拟机也是可以相互访问的。
前面我们已经提到,默认情况下,外部网络无法访问到虚拟机,不过我们也可以通过手动修改NAT设置实现端口转发功能,将外部网络发送到主机指定端口的数据转发到指定的虚拟机上。比如,我们在虚拟机的80端口上"建立"了一个站点,只要我们设置端口转发,将主机88端口上的数据转发给虚拟机的80端口,就可以让外部网络通过主机的88端口访问到虚拟机80端口上的站点。
VMware 仅主机模式
仅主机模式,是一种比NAT模式更加封闭的的网络连接模式,它将创建完全包含在主机中的专用网络。仅主机模式的虚拟网络适配器仅对主机可见,并在虚拟机和主机系统之间提供网络连接。相对于NAT模式而言,仅主机模式不具备NAT功能,因此在默认情况下,使用仅主机模式网络连接的虚拟机无法连接到Internet(在主机上安装合适的路由或代理软件,或者在Windows系统的主机上使用Internet连接共享功能,仍然可以让虚拟机连接到Internet或其他网络)。
在同一台主机上可以创建多个仅主机模式的虚拟网络,如果多个虚拟机处于同一个仅主机模式网络中,那么它们之间是可以相互通信的;如果它们处于不同的仅主机模式网络,则默认情况下无法进行相互通信(可通过在它们之间设置路由器来实现相互通信)。