正文共:999 字 15 图,预估阅读时间:1 分钟
不知道各位遇到过没有,VMware Workstation的NAT网卡经常出现一种情况:在虚拟机里面访问外部网络还是正常的,但是从宿主机却访问不到虚拟机。
说实话,这个问题在我的办公电脑上面几乎是必现,每次电脑重启过之后80%以上概率会遇到这个问题(最近是100%)。
解决方案也比较简单,重启网卡就能解决。
但是,我的电脑是Windows 11的操作系统,要重启网卡操作时真的麻烦啊。首先是右击网卡图标,点击“网络和Internet设置”,进入到设置页面。
然后点击“高级网络设置”。
找到网卡VMware Network Adapter VMnet8,先点击“禁用”。
等网卡状态变为“已禁用”之后,再点击“启用”。
大概是需要这4步,一般操作需要将近一分钟的时间。
还有一种方式,我们在(网络之路1:初识网络)中介绍过,也可以通过运行“ncpa.cpl”来打开“网络连接”页面。
通过这种方式来操作,能稍微快一些,但一般也要半分钟左右了。同样的,如果我们通过控制面板打开“控制面板\网络和 Internet\网络连接”,时间会稍微再长一点。
这个时候我就想到了命令行,能不能写个脚本,简单快捷的完成这一系列操作呢?
所以我前面研究了netsh interface命令(Windows通过netsh interface命令配置接口网络),终于有所收获。
首先,我们需要以管理员身份运行命令提示符(CMD)。
在CMD命令行中,我们首先运行以下命令查看当前的网络适配器列表:
netsh interface show interface
在列表中找到名为“VMware Network Adapter VMnet8”的适配器,确认其显示的接口名称,即接口索引号。
然后,我们使用以下命令确认接口索引号是否正确。
netsh interface show interface "VMware Network Adapter VMnet8"
接下来,我们就可以运行以下命令来禁用该适配器:
netsh interface set interface <接口索引号> admin=disable
注意将“<接口索引号>”替换为命令行中获得的正确的适配器接口索引号。
netsh interface set interface "VMware Network Adapter VMnet8" admin=disable
此时接口状态变成了已禁用,然后再运行以下命令来启用该适配器:
netsh interface set interface <接口索引号> admin=enable
同样,需要将“<接口索引号>”替换为正确的适配器接口索引号。
netsh interface set interface "VMware Network Adapter VMnet8" admin=enable
测试命令可用之后,我们就可以编写bat脚本了。我们想要的效果是执行完命令之后有个提示,并调用命令展示状态,最后停留在结果页面,按键退出。脚本如下:
@echo off
netsh interface set interface "VMware Network Adapter VMnet8" admin=disable
echo 接口 VMware Network Adapter VMnet8 已被禁用。
netsh interface show interface "VMware Network Adapter VMnet8"
timeout /t 1
netsh interface set interface "VMware Network Adapter VMnet8" admin=enable
echo 接口 VMware Network Adapter VMnet8 已被启用。
netsh interface show interface "VMware Network Adapter VMnet8"
pause
执行看一下效果。
中文显示为乱码,从网上找了两种方法,一种是在脚本开始增加一行“CHCP 65001”,要求CMD使用了65001代码页(Unicode UTF-8)来进行编码。
但是发现系统的输出却变成了英文。
还有一种方法是变换脚本的编码格式,在“文件”中选择“另存为”,将编码格式从“UTF-8”修改为“ANSI”。
再次测试,成了!
现在,我终于可以在5秒之内完成网卡的重启了!
当然,我还找了一种使用PowerShell进行配置的方法。
首先,打开PowerShell窗口。运行以下命令获取适配器对象:
$adapter = Get-NetAdapter | Where-Object {$_.Name -eq "VMware Network Adapter VMnet8"}
这将获取名为“VMware Network Adapter VMnet8”的适配器对象。
然后运行以下命令来禁用该适配器:
Disable-NetAdapter -Name $adapter.Name
等待片刻,然后运行以下命令来启用该适配器:
Enable-NetAdapter -Name $adapter.Name
以上几种方法都可以禁用并重新启用VMware Network Adapter VMnet8适配器,实现对该适配器的重启操作。你更喜欢哪一种呢?
长按二维码
关注我们吧