花了一个早上在网上找寻了几乎所有关于VMware虚拟机配置上网的问题,但因为校园网锐捷的问题,结果都是以失败而告终,最后参考了网上的一个笨方法可以缓解我们想要上网的迫切心情。
1.校园网锐捷下VMware虚拟机无法上网的原因
虚拟机要想要上网,主机里的VMnetDHCP和VMware NAT Service就必须要开启,可能很多人都没留意这个问题,因为这两个服务好像装好软件之后是默认开启的,在其他网络环境下虚拟机直接选择NAT方式就可以上网了,所以网上请教很多大牛时他们对我们的虚拟机无法上网感到非常费解呀。不过在校园网的话,情况又不一样了,我不知道其他的校园网客户端有没有这种情况,可是使用锐捷校园网客户端的话会自动阻断VMware NAT Service服务的开启,也就是说即使你手动开启了VMware NAT Service过了一会又会被自动关闭,这样就导致不管在虚拟机里面怎么设置都无法上网(注意这里使用的NAT方式,或许其他连接方式有新的解决方法,这里只说NAT方式)。
那么知道是因为VMware NAT Service服务自动关闭的话解决的方法自然是让其一直打开,本来我是打算放弃转而使用VirtualBox的(VirtualBox在锐捷下都是可以上网的),最后想到使用windows批处理的方法,这其实真的是一个笨方法来的,只要写一个无限循序语句判断VMware NAT Service服务是否开启,没有开启就打开,一直循环判断,我试了一下效果,这样虚拟机是可以一直上网的,中间的断网也是不到1s,还是可以接受的,聊胜于无啦。
下面是开启VMware NAT Service服务的方法:
(1)新建一个记事本文件,文件名后缀改成:.bat
(2)用记事本打开或者其他编辑工具也可以
(3)把下面的代码复制进去后保存:
@echo off
:first
for /f "skip=3 tokens=4" %%i in ('sc query "VMware NAT Service"') do set "zt=%%i" &goto :second
:second
if /i "%zt%"=="RUNNING" (
echo 该服务已经在运行
) else (
echo 该服务处于停止状态
net start "VMware NAT Service"
)
ping 127.0.0.1 -n 25>nul
goto :first
注意格式,最好保持相同状态,保存退出。
(4)使用管理员权限打开该文件,然后让其一直运行不要关闭,直到你不使用虚拟机上网为止。
若想把程序变为后台运行,可参考https://jingyan.baidu.com/article/6fb756ec900e1f241958fb51.html
以上是校园网锐捷的解决方法,接下来的步骤不是校园网也通用的。
2.设置网络
VMware三种网络模式联网
首先说一下VMware的几个虚拟设备
安装了VMware虚拟机后,会在网络连接对话框中多出两个虚拟网卡,如图:
VMnet0:用于虚拟桥接网络下的虚拟交换机
VMnet1:用于虚拟Host-Only网络下的虚拟交换机
VMnet8:用于虚拟NAT网络下的虚拟交换机
VMware Network AdepterVMnet1:Host用于与Host-Only虚拟网络进行通信的虚拟网卡
VMware Network Adepter VMnet8:Host用于与NAT虚拟网络进行通信的虚拟网卡
本文主要介绍NAT
(1)首先设置选择虚拟机主机的网络模式为NAT,虚拟机主机--->设置--->网络适配器--->选择NAT模式
(2)查看VMware网络配置里VMnet8的IP和网关
需要记住IP为:192.168.92.128,子网掩码为:255.255.255.0 网关为:192.168.92.2
(3)接着设置虚拟机ubuntu的网络,打开网络设置,把上面的IP,子网掩码,网关写上去
(4)在windows主机中设置以太网为共享网络,并选择网络连接为VMnet8
(5)在虚拟机ubuntu下设置DNS和windows主机的相同
①.要更改ubuntu DNS必须编辑文件 - “/etc/resolv.conf”,打开“终端应用程序”-“附件” - “终端”,在终端里输入下面的命令:
sudo nano /etc/resolv.conf
如果不是管理员,会要求输入密码,如图所示:
如果不是root用户,需要输入密码确认身份
②.打开文档后,找到现有的DNS记录,使用“#”注释掉,然后添加新的DNS记录:
nameserver x.x.x.x 按照该格式
关于如何查看windows主机的DNS,这个自行百度吧。 我的DNS为9.9.9.9,如图所示:
若有老的“nameserver x.x.x.x”DNS记录,需要将其注释掉,然后添加好新的DNS记录后,使用快捷键“CTRL + X”保存文件。
③.有一些文件会自动修改DNS服务器,我们把这些文件进行锁定。使用如下的代码进行锁定操作:
sudo chattr +i /etc/resolv.conf
锁定那些自动修改DNS的文件
如果需要解锁,使用如下的代码:sudo chattr -i /etc/resolv.conf
之后重启下ubuntu的网络就可以上网了。
至此,教程完成!