虚拟机和主机的网络访问

本人的问题是主机可以ping虚拟机,虚拟机可以正常访问端口,主机不能访问虚拟机端口,然后就进行各种问题的排查,一开始把所有的防火墙都关了还不行,所以来到了windows主机虚拟网卡这里设置,使用了手动设置虚拟网卡的ip地址和网关等(显然是不行的,因为网络这方面比较深奥,不止止是这里设置了就可以的,他有分3种设置方法)后来使用下面的方法成功解决了!

1.bridged(桥接模式)

  1. 在这种模式下,VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器。在桥接模式下,你需要手工为虚拟系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主机器进行通信。同时,由于这个虚拟系统是局域网中的一个独立的主机系统,那么就可以手工配置它的TCP/IP配置信息,以实现通过局域网的网关或路由器访问互联网。  
  2. 使用桥接模式的虚拟系统和宿主机器的关系,就像连接在同一个Hub上的两台电脑。想让它们相互通讯,你就需要为虚拟系统配置IP地址和子网掩码,否则就无法通信。   
  3.   如果你想利用VMWare在局域网内新建一个虚拟服务器,为局域网用户提供网络服务,就应该选择桥接模式。   
  4. 这种方法我们在本地与虚拟机之间的设置是不用的,所以可以排除这个问题,不要设置桥接方式。

2.host-only(主机模式)

  1. 在某些特殊的网络调试环境中,要求将真实环境和虚拟环境隔离开,这时你就可采用host-only模式。在host-only模式中,所有的虚拟系统是可以相互通信的,但虚拟系统和真实的网络是被隔离开的。   
  2. 提示:在host-only模式下,虚拟系统和宿主机器系统是可以相互通信的,相当于这两台机器通过双绞线互连。   
  3. 在host-only模式下,虚拟系统的TCP/IP配置信息(如IP地址、网关地址、DNS服务器等),都是由VMnet1(host-only)虚拟网络的DHCP服务器来动态分配的。   
  4. 如果你想利用VMWare创建一个与网内其他机器相隔离的虚拟系统,进行某些特殊的网络调试工作,可以选择host-only模式。   

3.NAT(网络地址转换模式)   

  1. 使用NAT模式,就是让虚拟系统借助NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网。也就是说,使用NAT模式可以实现在虚拟系统里访问互联网。NAT模式下的虚拟系统的TCP/IP配置信息是由VMnet8(NAT)虚拟网络的DHCP服务器提供的,无法进行手工修改,因此虚拟系统也就无法和本局域网中的其他真实主机进行通讯。采用NAT模式最大的优势是虚拟系统接入互联网非常简单,你不需要进行任何其他的配置,只需要宿主机器能访问互联网即可。   
  2. 如果你想利用VMWare安装一个新的虚拟系统,在虚拟系统中不用进行任何手工配置就能直接访问互联网,建议你采用NAT模式。   
  3. 提示:以上所提到的NAT模式下的VMnet8虚拟网络,host-only模式下的VMnet1虚拟网络,以及bridged模式下的VMnet0虚拟网络,都是由VMWare虚拟机自动配置而生成的,不需要用户自行设置。VMnet8和VMnet1提供DHCP服务,VMnet0虚拟网络则不提供。具体可以参考文章:VMware Network Adapter VMnet1/8详解_ziyouniao719672119的专栏-CSDN博客

1.首先检查防火墙是否关闭

(1)window主机的防火墙(一定要关掉的!!!选择“开始” 按钮,然后选择“设置” >“更新和安全” >“Windows 安全中心”及“防火墙和网络保护”。 打开 Windows 安全中心设置)

(2)虚拟机的防火墙(systemctl stop firewalld.service(关闭防火墙))

一般情况下是可以解决了,我是因为之前自己网卡那里乱设置了,所以才失败了。如果都关闭的话还不能访问就下一个问题排查。

2.根据上面的介绍,如果防火墙关闭还不行就得重新弄默认网卡的了。我们是使用nat进行设置就可以了。接下来说一下怎么初始化设置

(1)进行虚拟网络编辑器的还原默认设置

《虚拟机和主机的网络访问》

(2)这里选择nat模式,不要用别的。这个是最方便的配置

《虚拟机和主机的网络访问》

 (3)windows主机的配置

这里要选择默认的,选择自动获得ip地址,之前我自己设置都访问不了。这里在初始化网络编辑器的时候再次打开他会自动获取连接的,相当于我们一开始安装虚拟机一样,什么也不用进行配置。 

《虚拟机和主机的网络访问》

 (4)使用ifconfig查看虚拟机的IP地址,这里的IP地址和之前的不一样,已经更改了,可能是进行网络编辑器的初始化了。

《虚拟机和主机的网络访问》

 (5)到主机中进行测试,我这里用docker开启了80端口进行测试

可以在cmd里进行测试:telnet 虚拟机的ip地址 80

也可以在浏览器进行访问,现在成功了。403是因为我进行了别的配置,和这里没关系,什么都没配置是出现一个nginx的访问界面。希望对大家有帮助!

《虚拟机和主机的网络访问》

    原文作者:A假娃
    原文地址: https://blog.csdn.net/weixin_46025900/article/details/122722473
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞