关于我把物理机网络变成虚拟机内网的网络一件事

需求

众所周知虚拟机网络有几个模式:

桥接

虚拟机跟物理机在同一个网段下,相当于连同一wifi,网关都是同一个路由,网络都走一同一个路由

image.png

NAT

虚拟机变成物理机的内网,虚拟机的路由是物理机,一切网络都是从物理机出去

image.png

仅主机

把虚拟机变成独立的主机,没有路由没有网络,类似于拔了网线的电脑

image.png


ok,介绍完模式,可能会有人问,都是上网为啥我要大费周章的把物理机的网络在虚拟机的NAT里成为虚拟机的内网的一部分呢?

确实,都是上网没必要这样弄,这是专门为我自己的工作环境来部署的

在我工作的环境里,甲方要求每个工作的机子里必须要装他们购买的终端杀毒软件天擎

天擎是网络安全厂商奇安信研发的一个杀毒软件,这个杀毒软件有一个最大的优点,就是主动防御,灵活规则,j天擎会配套一个服务端版和终端版,(我猜测)甲方设置天擎服务端部署在网络的最上层,内网内的所有终端都必须安装了终端版的天擎才可以使用网络,即所有的终端都需要使用终端天擎向服务端天擎进行认证才可以访问其他终端。服务端的天擎就可以监控内网所有的流量,只要有敏感操作,就会发出警报,甲方的人就会来找你喝茶

因为奇安信是从360分出去的公司,所以他们的天擎基本上就是用360杀毒软改的(全家桶被干掉了),360杀毒软的优缺点它都有(为了效率狂吃计算机性能),因为是改的,所以360没有的它还有(比如退出必须要密码,以及网络认证),然后我所在的公司也是一个安全厂商,旗下也有一款杀毒软件,员工也必须安装他们的杀毒软件,虽然小巧简洁挺好用的,但是按不住它俩经常打架,把我电脑那点可怜的性能完全榨干,有时候奇卡无比。我受不了了,所以有了一个想法,不在电脑里安装天擎,我又需要网络来工作。这个时候一个想法出现在我的脑海中~---------->我在虚拟机里装然后物理机的网络走虚拟机

理论

有需求,就需要理论去实现,这里我有两个理论去实现这样

一、代理(仅理论本人未实践只是共享出思路)

给虚拟机搭建一个代理服务,然后物理机的系统代理就是设定这个虚拟机代理服务器

此方法比较大众简单,github也有一键搭建代理服务器的脚本

此方法优点:相对简单

此方法缺点:代理服务器脚本也因为作者的实力来决定稳定性,自己搭建稳定性的强弱也是根据使用者的维护能力强弱来决定

二、虚拟机网络共享

使用虚拟机使用桥接,并搭建dhcp服务与路由nat服务,物理机的dhcp设定为虚拟机,ip、网关与dns都由此虚拟机发送,物理机的网络就走了虚拟机

此方法优点:稳定

此方法缺点:对使用者要求门槛偏高


此方法是在上面的理论的基础上进行优化的优化,是本人与@tutouc 共同讨论得出,仅需要两张虚拟网卡就可以完成需求,方法简单且稳定

拓扑图↓

image.png

相当与用物理机给虚拟机的仅主机网卡接了根网线,物理机可以与虚拟机仅主机网卡通信,然后桥接网卡在服务器那获取到了ip,然后再与仅主机网卡进行网络共享,也相当于虚拟机桥接网卡也给虚拟机仅主机网卡接了根网线。

具体流程则是这样物理机<--流量-->虚拟仅主机网卡<--流量-->虚拟桥接网卡<--流量-->服务器<--流量-->外网

创建一个虚拟机,虚拟机有两张网卡一张桥接,一张仅主机

image.png

进入虚拟机,设置仅主机的网卡,把网关和dns给去掉

image.png

给桥接网卡设置网络共享(如果有设定专用网络的选项,则选择仅主机的网卡)

image.png

ok,虚拟机的设置就完成了(就这么简单)之后就是物理机的设置了

给在物理机中把上网的物理网卡给设置未不可用(不可以禁用),只需要把物理网卡的网关给清空,ip想给啥给啥,如果用的wifi上网,则改wlan的设置

image.png

最后一步,设置物理机里的仅主机虚拟网卡,ip设置为与虚拟机里仅主机的网卡ip一个网段,

然后网关则是虚拟里仅主机网卡的ip

image.png

这样就可以使用网络了

验证:

虚拟机安装了天擎

image.png

物理机未安装image.png

部署前访问摸鱼派,会被重定向到安装天擎的页面

image.png

部署后

image.png

访问成功~成功使用网络!!

结语

以上方法都可以使用其他系统实现,理论上可以设置网关ip的系统都可以实现

在这里使用win7的原因是因为终端天擎被甲方设置成了只能在非服务器版的windows以及windos7以上的系统上安装,所以有需求的小伙伴可以自行部署。再次感谢@tutouc与我一起讨论的优化方案