VMware Workstation虚拟机中网络设置

时间:2022-12-30 18:29:03

虚拟机下主要有三种网络设置方式:bridged(桥接模式) nat模式 host-only模式

1 Host-only连接方式

让虚机具有与宿主机不同的各自独立IP地址,但与宿主机位于不同网段,同时为宿主主机新增一个IP地址,且保证该IP地址与各虚机IP地址位于同一网段。最终结果是新建了一个由所有虚机与宿主主机所构成的局域网,但该局域网与宿主主机本身所处的现有局域网是相互独立的,如果不做额外路由设置,这两个局域网之间不会连通,因此新建的局域网可以认为是一个单独从属于当前宿主主机的私有网络,其成员为当前宿主主机和相关的所有虚机,这也是Host-only命名的由来。

从网络技术上相当于为宿主主机增添了一个虚拟网卡,让宿主主机变成一台双网卡主机(宿主网卡+虚拟网卡)。同时在宿主主机后端加设一个虚拟交换机,让宿主主机和所有虚机构成另一个虚拟的局域网。由于具备双网卡,宿主主机可同时参与两个局域网(现有的宿主局域网+新建的虚拟局域网),只不过缺省情况下两个局域网不连通。

2 Bridge(桥接)连接方式

让虚机具有与宿主机不同的各自独立IP地址,但与宿主机保持在同一网段,最终结果是所有虚机都加入宿主主机所在的局域网,这与在该局域网中添加入其他宿主主机在效果上没什么区别。

从网络技术上相当于在宿主主机前端加设了一个虚拟交换机,然后宿主主机和所有虚机共享这个交换机;或者干脆理解成在宿主主机上作点增强,使其兼具一个交换机(当然是虚拟的)功能,供该宿主主机和网段内其他虚机使用。

注:就是在局域网中增加一台主机,不过此主机是虚拟机。

3 NAT连接方式

虽然从表面现象看,虚机无自己的IP地址,而是共享宿主主机的IP地址,但技术本质上却是基于Host-only方式的(即,虚机还是有自己独立IP地址的,只不过实际中不投入使用),与Host-only方式一样,宿主主机成为双网卡主机,同时参与现有的宿主局域网和新建的虚拟局域网,但由于加设了一个虚拟的NAT服务器,使得虚拟局域网内的虚机在对外访问时,完全“冒用”宿主主机的IP地址,这样从外部网络来看,只能看到宿主主机,完全看不到新建的虚拟局域。
注:相当于在虚拟机中新建一个局域网,局域网内的虚拟主机通过NAT利用主机上网。

总结:对于3种方式,用通俗的话来说就是Host-Only方式只有你能访问,外网无法访问,虚拟机也无法访问外网,虚拟机有一个内网IP,与宿主组成局域网;Bridge方式你能访问虚拟机,外网也能访问虚拟机,虚拟机可以访问外网,虚拟机会和主机一样有一个外网IP;Nat方式你能访问,外网无法访问,虚拟机可以访问外网,虚拟机有一个内网IP,与宿主组成局域网。

4 三种模式下的网络连接

Host-only

默认使用vmnet1
将虚拟机ip设置与vmnet1同网段,gateway设置成vmnet1的ip,其余设置与vmnet1相同,dns设置与主机相同
例如 vmnet1 ip :172.16.245.1
虚拟机设置: ip :172.16.245.100 gateway :172.16.245.1
这样就实现了虚拟机<—>主机 通信,但是 虚拟机<—>互联网 仍无法通信

Bridge
默认使用vmnet0
将虚拟机的ip设置与主机同网段未使用ip,其余与主机相同:
例如主机ip是10.70.54.31,设置虚拟机ip为10.70.54.22。netmask,broadcast,gateway,dns都与主机相同即可实现虚拟机<—>主机 虚拟机<—->互联网 通信。

注:如果主机的ip是公网ip(如某些学校网络),此时如果你通过将ip设置与主机一个网段,也不能上网,因为此ip是公网ip,公网ip的上网权限是网络运营商提供的,所以虚拟机连不到互联网。此时只能通过nat的方式上网。
  
NAT
默认使用vmnet8
将虚拟机设置成使用dhcp方式上网,windows下选择”自动获取ip”,linux下开启dhcp服务即可
打开vm的虚拟网络设置,设置局域网的ip和掩码。在dhcp设置中可以设置可分配的局域网ip段。

注:在Linux终端下,虽然这样设置了,可能还是不能连接外网。ifconfig发现eth0(可能是eth1..)没有被分配ip。 使用命令:ifup eth0,开启上网功能。(ifdown eth0 关闭上网功能)

5 其他

1)不能连接互联网的其他可能原因——主机中vm相关的服务没有打开。
我的电脑—管理—-服务—VMware的几个服务全启动。

2)redhat/centos 网络设置文件的目录 /etc/sysconfig/network-script/

3)重启网卡
service network restart
/etc/init.d/network restart

4)检测是否连接了外网
ping 202.108.22.5 (百度的ip)

5)开启和关闭上网功能
ifup eth0
ifdown eth0

参考:

[1] vmware中linux怎么设置网络 http://www.jb51.net/LINUXjishu/10922_2.html
[2] VMware workstation网络设置详解 http://www.server110.com/vmware/201404/9018.html