VMware Player在Windows系统下使用NAT模式的端口映射

2020/01/14 VMware

VMware Player在功能完整性不如其专业版本VMware Workstation Pro,在VMware Player中不存在网络设置的相关工具和其他一些常用功能。但是,VMware Player是免费版本,并且具有核心的虚拟机安装和播放的功能。于是,因为穷(误……),我毅然决然地选择使用VMware Player。不过,由于需要在虚拟机中搭建Web服务器,如果不做NAT模式的端口映射,宿主机和同一局域网下的其他PC是无法直接访问虚拟机中的Web服务的,所以在VMware Player下使用NAT模式的端口映射还是一件必须的事情。

下面是修改配置文件,使VMware Player能够进行NAT模式的端口映射的流程:

  1. 设置虚拟机NAT模式共享的网卡为固定IP:

    VMware虚拟机使用NAT模式时,是VMware Network Adapter VMnet8网卡提供的nat服务。查看VMware Network Adapter VMnet8网卡的网址,比如我的是:

     IP: 192.168.150.128
    
     MASK: 255.255.255.0
    

    此时可以在虚拟机中将NAT的那个网卡设置固定ip地址,比如我是Ubuntu 18.04的虚拟机系统:

    • 停止Network-manager服务:
        sudo service network-manager stop
      
    • 设置IP地址、子网掩码和网关:
        sudo ifconfig eth0 192.168.144.128 netmask 255.255.255.0 # IP可以按规则任意设置
      
        sudo route add default gw 192.168.144.1 # 网关一般是.1
      
    • 设置DNS,修改/etc/resolv.conf:
        sudo su
        echo "nameserver 192.168.199.1" >> /etc/resolv.conf # 希望修改成的DNS
      
    • 重启网络服务:
        sudo /etc/init.d/networking restart # 使网卡配置生效
        sudo /etc/init.d/resolvconf restart # 使DNS生效
      

    不过,需要注意的是,上面的设置一般情况下在重启虚拟机后就会失效。

    第二种方法具有持久性,需要直接修改系统的配置文件/etc/network/interfaces

    • 修改IP地址:
      • 打开/etc/network/interfaces:
          sudo vim /etc/network/interfaces
        
      • 加入以下语句:
          auto eth0 # 要设置的网卡
          iface eth0 inet static # 设置静态IP;如果是使用自动IP用dhcp,后面的不用设置,一般少用
          address xxx.xxx.xxx.xxx # IP地址
          netmask xxx.xxx.xxx.xxx # 子网掩码
          gateway xxx.xxx.xxx.xxx # 网关
        
    • 修改DNS:
      • 打开/etc/resolv.conf:

          sudo vim /etc/resolv.conf
        

        改为如下内容:

          search localdomain # 如果本Server为DNS服务器,可以加上这一句
          nameserver 172.16.3.4 # 希望修改成的DNS
          nameserver 172.16.3.3 # 希望修改成的DNS
        

        上面设置的文件重启后会覆盖,如果要持久的保存,请修改etc/resolvconf/resolv.conf.d/base

    • 重启服务生效:

      先运行一次,然后在rc.local里加入这个重启网络配置的命令:

        sudo /etc/init.d/networking restart #使网卡配置生效
        sudo /etc/init.d/resolvconf restart #使DNS生效
      

    一般情况下,使用第一种方法即可。持久化的不是必须的,在同一网络下,虚拟机的IP地址等属性一般都有默认的值,直接使用默认值也是可以的。

  2. 给虚拟机NAT网卡开启端口映射:

    Windows XP操作系统中,找到VMware NAT的配置文件在:

     C:\Documents and Settings\All Users\Application Data\VMware\vmnetnat.conf
    

    Windows 7/10系统中,VMware NAT的配置文件在:

     C:\ProgramData\VMware\vmnetnat.conf
    

    如果想使用Web服务,则修改对应的配置选项,如:

     8888 = 192.168.20.56:80
    

    其意思是将宿主机的8888端口映射到虚拟机的80端口,这样其它的机器只要访问这台宿主机的8888端口,就可以访问到其虚拟机的80端口了。

    最后需要在主机上重新启动一下VMware NAT Service服务,然后就可以正常访问了。

    该服务的查看方法可以通过在cmd中执行:

     sc query|find /i "vmware"
    

    执行后发现有如下服务名:

     DISPLAY_NAME: VMware Authorization Service
    
     DISPLAY_NAME: VMware DHCP Service
    
     DISPLAY_NAME: VMware USB Arbitration Service
    
     SERVICE_NAME: VMware NAT Service
    
     DISPLAY_NAME: VMware NAT Service
    

    cmd中使用如下命令可以重启服务:

     net stop "VMware NAT Service"
     net start "VMware NAT Service"
    

    如果访问不了,请查看Windows防火墙是否阻止了这些端口。

Search

    Table of Contents