由于不懂VMware上网模式以及如何在虚拟机代理被老板狠狠教训,学会后让老板刮目相看

写在前面

本文的目的主要是:

        1,搞懂VMware三种网络模式

        2,如何在宿主机使用代理的情况下,虚拟机也可以使用。

环境说明

1,VMware中安装了Ubuntu20.04虚拟机,其中VM版本信息如下

2,宿主机系统:win10

3,代理软件:clash for windows 0.20.27

VMware三种网络模式介绍:

可以看到有三种网络模式: VMnet0  桥接模式(Bridged) , VMnet1  仅主机模式(Host-Only) ,NAT模式(Network Address Translation,网络地址转换)

打开vmware虚拟机,我们可以在选项栏的“编辑”下的“虚拟网络编辑器”中看到VMnet0(桥接模式)、VMnet1(仅主机模式)、VMnet8(NAT模式),其中VMnet0表示的是用于桥接模式下的虚拟交换机;VMnet1表示的是用于仅主机模式下的虚拟交换机;VMnet8表示的是用于NAT模式下的虚拟交换机

同时在 设置->网路和Internet->状态->更改网络适配器中,在主机上对应的有VMware Network Adapter VMnet1和VMware Network Adapter VMnet8两块虚拟网卡,它们分别作用于仅主机模式与NAT模式下。在“网络连接”中我们可以看到这两块虚拟网卡,如果将这两块卸载了,可以在vmware的“编辑”下的“虚拟网络编辑器”中点击“还原默认设置”,可重新将虚拟网卡还原。

还看到我有一块物理网卡: intel(R) Wi-Fi 6 AX200 160MHz
那为什么没有VMware Network Adapter VMnet0虚拟网卡?不急往下看

 

Bridged(桥接模式)

桥接模式就是将主机网卡与虚拟机虚拟的网卡利用虚拟网桥进行通信。其网络结构如下图所示

 

如何设置桥接模式:

在VMware 编辑中找到虚拟网络编辑器  选对桥接的网卡,这里我选择自己的真网卡 intel(R) Wi-Fi 6 AX200 160MHz

然后点击虚拟机->设置->网络适配器

到此,就算设置好了。当然你也可以设置一下虚拟机的ip(也可以不用,因为虚拟机一般都是自动获取的)

【虚拟机运行命令  nmtui  或者直接在设置网络中 点击右边的齿轮配置  】 

到此虚拟机就可以直接上网了。。。。


但这个时候宿主机是可以ping 虚拟机的

但是发现虚拟机ping 物理机失败 

原来这是因为防火墙设置的原因 ,修改一下防火墙规则

发现就好了,可以互相ping通了(主要是虚拟机可以ping外面的宿主机了)

 

NAT(网络地址转换模式)

NAT模式借助虚拟NAT设备和虚拟DHCP服务器,使得虚拟机可以联网。其网络结构如下图所示:

在NAT模式中,物理机网卡直接与虚拟NAT设备相连,然后虚拟NAT设备与虚拟DHCP服务器一起连接在虚拟交换机VMnet8上,(虚拟NAT设备连接着真网卡和虚拟交换机Vmnet8,于是虚拟机的请求就可以想办法让真网卡代劳) 这样就实现了虚拟机可以上网。

那要虚拟网卡VMware Network Adapter VMnet8有什么用呢?原来我们的VMware Network Adapter VMnet8虚拟网卡主要是为了实现主机与虚拟机之间的通信。在之后的设置步骤中,我们可以加以验证。

(因为NAT模式走的还是物理主机的网络,你可以将物理主机看成是一台代理服务器,当我们要访问外部网络资源的时候,首先会去请求物理主机(看上图),然后物理主机会去外部网络拉取请求,然后再转发给虚拟机,虽然用代理来比喻可能不是很准确,由于我们用的是NAT网络地址转换模式,所以我们的网络地址是经过转换后的网络地址,这个地址跟物理主机是不在同一个局域网内的。

如何设置程NAT模式

首先,设置虚拟机中NAT模式的选项,打开vmware,点击“编辑”下的“虚拟网络编辑器”,设置NAT参数及DHCP参数。

然后设置虚拟机

此时物理机上真网卡ip:192.168.124.21 

  NAT网卡:192.168.121.1

(可以看到物理机和虚拟机有了一个自己的小局域网192.168.121.0小局域网)

此时虚拟机是可以正常上网的


  • 此时虚拟机 ping 真网卡是可以的192.168.124.21    ping NAT网卡:192.168.121.1也可以(ping不通的话就是防火墙的问题)

宿主机ping 虚拟机192.168.121.128是可以的  ,也就是互相可以ping通


之前,我们说过VMware Network Adapter VMnet8虚拟网卡的作用,那我们现在就来测试一下。

将VMware Network Adapter VMnet8虚拟网卡禁用

发现虚拟机依然可以上网,如此看来,虚拟机能连外网,确实不是通过VMware Network Adapter VMnet8虚拟网卡(废话上面都说了为啥,当然不是这块网卡的作用

那么为什么要有这块虚拟网卡呢?VMware Network Adapter VMnet8的作用是宿主机与虚拟机之间的通信,关闭VMware Network Adapter VMnet8虚拟NAT网卡后,宿主机ping不通虚拟机

虚拟机(此时是192.168.121.128)也pingNAT网卡192.168.121.1失败

但是ping真网卡192.168.124.21可以(废话因为此时可以上网,是就是通过真网卡上网的) 

然后,将VMware Network Adapter VMnet8启用之后,发现宿主机可以ping虚拟机了

虚拟机也可以ping通两块网卡 ,可以互相ping通了

编辑

所以由上可以看出VMware Network Adapter VMnet8 的真实作用:完成宿主机与虚拟机之间的通信

这就是NAT模式,利用虚拟的NAT设备以及虚拟DHCP服务器来使虚拟机连接外网,而VMware Network Adapter VMnet8虚拟网卡是用来与虚拟机通信的。

Host-Only(仅主机模式)

Host-Only模式其实就是NAT模式去除了虚拟NAT设备,然后使用VMware Network Adapter VMnet1虚拟网卡连接VMnet1虚拟交换机来与虚拟机通信的,Host-Only模式将虚拟机与外网隔开,使得虚拟机成为一个独立的系统,只与主机相互通讯。其网络结构如下图所示:

通过上图,我们可以发现,如果要使得虚拟机能联网,我们可以将主机网卡共享给VMware Network Adapter VMnet1网卡,从而达到虚拟机联网的目的。接下来,我们就来测试一下。

首先设置“虚拟网络编辑器”,可以设置DHCP的起始范围。

设置虚拟机为Host-Only模式。

发现虚拟机的ip也已经同步更改

宿主机和虚拟机都可以相互ping通,但虚拟机此时无法上网(其实也是可以上网的,由于本人暂时用不到,自行百度)

虚拟机如何使用主机代理:

1.设置程NAT模式(见上文)

2.查看主机上Clash for Windows的端口,并打开Allow LAN开关,表示允许局域网代理。将鼠标悬停在Allow LAN开关上下方可以显示clash的ip

 



设置成NAT网卡地址+端口号

写在后面:

参考链接: https://zhuanlan.zhihu.com/p/345954703

对应文章教程: Vmware虚拟机三种网络模式详解_哔哩哔哩_bilibili

posted @ 2023-12-01 10:23  不买Huracan不改名  阅读(1960)  评论(4编辑  收藏  举报