如何从外网访问VMware虚拟机的Web服务
温馨提示:这篇文章已超过577天没有更新,请注意相关的内容是否还可用!
主机上安装了VMware,VMware上安装了一个Linux虚拟机。我想让虚拟机对外提供web服务。本文记录如何让我的主机和外网用户在VM虚拟机上访问Web。VMware有三种网络连接模式:桥接、NAT和Host-only。这里需要选择NAT模式虚拟机配置web服务器,因为虚拟机没有单独的IP可以使用,只能共享主机IP。在桥接模式下,VMware虚拟出的虚拟交换机Vmnet0相当于一个网桥。例如主机IP为192.168.1.100,虚拟机为192.168.1.101,这是两个状态相同的节点。可以看作是宿主机和虚拟机之间通过Hub的连接。可以认为宿主机和虚拟机是用双绞线连接起来的,它们可以在不同的网段。从VMware菜单栏选择“编辑”→“虚拟网络编辑”,打开虚拟网络编辑器,查看虚拟网络。
目的:
主机上安装了VMware,VMware上安装了一个Linux虚拟机(我安装的是Centos7)。 我想让虚拟机对外提供web服务。 本文记录如何让我的主机和外网用户在VM虚拟机上访问Web。
网络环境:
一台单IP服务器,提供一个固定IP,固定IP允许公网访问。 (屌博客,不能上传图片。。。随便写吧)
\
VMware有三种网络连接模式:桥接、NAT和Host-only。 这里需要选择NAT模式虚拟机配置web服务器,因为虚拟机没有单独的IP可以使用,只能共享主机IP。
在桥接模式下,VMware虚拟出的虚拟交换机Vmnet0相当于一个网桥。 虚拟机和宿主机的位置是对等的,在同一个网段,并且有一个与宿主机同IP段的独立地址。 例如主机IP为192.168.1.100,虚拟机为192.168.1.101,这是两个状态相同的节点。 可以看作是宿主机和虚拟机之间通过Hub的连接。 在 NAT 模式下,虚拟机可以与主机通信并访问互联网服务,但外部主机无法访问虚拟机。 可以认为宿主机是一个路由交换机(网关),虚拟机在网络内部,与虚拟机的所有通信都必须经过网关。 Host-only模式,建立一个全封闭的网络环境,虚拟机唯一能访问的就是主机。 它与NAT非常相似,但与NAT不同的是虚拟机不能访问外网/外网,宿主机和虚拟机可以通信。 可以认为宿主机和虚拟机是用双绞线连接起来的,它们可以在不同的网段。
详见VMware虚拟机三种网络模式及配置方法
VMware NAT 设置:
1、虚拟机访问外网(通过NAT方式)
1.虚拟机设置为NAT模式
选择安装好的虚拟机(Centos 7),右击选择“设置(Settings)”,打开虚拟机设置窗口; 在左侧栏的Hardware选项卡中选择Network Adapter(网络适配器); 在右栏中选择 NAT(NET 模式);
2.VMware编辑虚拟网络
从VMware菜单栏选择“编辑”→“虚拟网络编辑”,打开虚拟网络编辑器,查看虚拟网络。 默认情况下,VMnet0、VMnet1、....
VMnet0:Bridged Network 桥接模式 VMnet1:Host-Only Network host-only 模式 VMnet8:NAT 模式
\
(1)打开主机的网络连接,选择本地连接网卡(一般为Broadcom NetXtreme Gigabit Ethernet#2),右键属性,选择“共享”选项卡;
① 勾选“允许其他网络用户通过这台电脑的互联网连接进行连接”;
②家庭网络连接选择“VMnet8”
(2)从VMware菜单栏中选择“编辑”→“虚拟网络编辑”,打开虚拟网络编辑器,
① 选择上面的VMnet8(NAT模式);
②在下面选择NAT(Shared host's IP address with VMs)(NAT模式(Shared host's IP address with virtual machine));
③点击“NAT设置”;
④ 记录子网IP(192.168.186.)、掩码、网关地址,将这些网卡信息配置到虚拟机中的网卡中;
⑤配置虚拟机(Centos 7)网络连接:
#ip addr# ip addr show #查询网卡信息
#vim /etc/sysconfig/network-scripts/ifcfg-eno16777736 #修改网卡配置信息
关键参数含义:
HWADDR=00:0c:29:15:e1:3e #MAC地址,根据#ip addr show查询到的MAC修改
BOOTPROTO=static #设置静态IP
ONBOOT=yes #这里如果是no,改成yes,表示网卡设备自动启动
GATEWAY=192.168.137.1 #这里的网关地址是VMnet8的IP地址
IPADDR=192.168.137.1 #配置ip,根据VMnet8的IP地址,设置这里的ip在192.168.137.xxx范围内,只要和网关不一样即可
#NETMASK=255.255.255.0 #子网掩码
PREFIXO0=24 #设置子网掩码
DNS1=211.140.13.188 #dns server 1,填写你所在网络可用的dns服务器地址
DNS2=211.140.188.188 #dns server 2关键参数含义:
HWADDR=00:0c:29:15:e1:3e #MAC地址,根据#ip addr show查询到的MAC修改
BOOTPROTO=static #设置静态IP
ONBOOT=yes #这里如果是no,改成yes,表示网卡设备自动启动
GATEWAY=192.168.137.1 #这里的网关地址是VMnet8的IP地址
IPADDR=192.168.137.1 #配置ip,根据VMnet8的IP地址,设置这里的ip在192.168.137.xxx范围内,只要和网关不一样即可
#NETMASK=255.255.255.0 #子网掩码
PREFIXO0=24 #设置子网掩码
DNS1=211.140.13.188 #dns server 1,填写你所在网络可用的dns服务器地址
DNS2=211.140.188.188 #DNS服务器2
子网掩码的简单解释:
24位表示24个二进制1,像这样:11111111.11111111.11111111.00000000,转换成十进制表示就是:255.255.255.0
28位:11111111.11111111.11111111.11110000,转为十进制为255.255.255.240
30位数字:11111111.11111111.11111111.11111100,换算成十进制是255.255.255.252
⑥配置静态IP后重启网络服务
#systemctl restart network.service 或服务网络重启
重启网络服务虚拟机配置web服务器,如果报错,解决方法如下: 第一种方法:与NetworkManager服务冲突,关闭NetworkManger服务
# service NetworkManager stop,并禁止启动 chkconfig NetworkManager off。
重启。
第二种:与配置文件MAC地址不匹配,修改/etc/udev/rules.d/70-persistent-net.rules文件MAC地址与/etc/sysconfig/network相同-scripts/ifcfg-eth0 启动。
第三种方法解决Failed to start LSB: Bring up/down networking问题
一世。 执行service network restart出现如下错误
重新启动网络(通过 systemctl):network.service 的作业失败。 有关详细信息,请参阅“systemctl status network.service”和“journalctl -xn”。
二. 根据以上提示,执行“systemctl status network.service”输出类似如下信息:
[root@localhost ~]# systemctl status network.service
network.service - LSB:启动/关闭网络
加载:加载(/etc/rc.d/init.d/network)