BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / windows / #126933同步于 2022/10/21
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Windows机器人发帖

【我不允许和我遇到同样问题的人还不知道!】休眠重启后连不上

awsllllaal
2022/10/21镜像同步14 回复
# 【我不允许和我遇到同样问题的人还不知道!】休眠重启后连不上虚拟机的解决方案 我的笔记本常年运行Vmware跑一个Linux虚拟机,我一切和代码相关的东西都放在虚拟机里,然后在宿主机里远程连接虚拟机,但是大概一年前,我突然发现我的电脑在休眠重启后死活连接不上我本地运行的Vmware中的虚拟机了······ ## 五味杂陈版解决方案(嫌啰嗦可以直接看下面客观版) 如题,大概一年前,我突然发现我的电脑在休眠重启后死活连接不上我本地运行的Vmware中的虚拟机了,于是我折腾了各种方法,重置NAT,将NAT改为桥接,设置静态ip等等,都不能治本,后来终于找到了类似于这个【[【经验总结】电脑休眠后虚拟网卡地址变成169.254网段的解决方法](https://blog.csdn.net/qq_37683287/article/details/109091678)】的东西,发现在”控制面板“ → “网络连接” 中先禁用,再启用Vmnet8网卡后就可以连接上虚拟机,进一步可以写一个批处理文件实现双击重启Vmnet8网卡,但感觉收益不大,之后由于疫情学校晚上不再断电,我便索性不关机了,于是这一点小问题便不痛不痒,我就得过且过了。 但是毕业后麻烦来了,现在的我每天得关机两次,于是每天早上来一轮”禁用Vmnet8,启用Vmnet8,每个打开的VS Code窗口重启来连接虚拟机,重启终端来接虚拟机“,每天晚上也要这么来一轮,我吐了,今天终于受不了了,开始折腾起来。 首先,每天双击两次这个批处理文件我也是不愿接受的,所以我的思路是休眠重启后自动运行这个批处理文件。于是先照帖子里说的那样写了个批处理,能成功运行,但是这个东西需要管理员身份才能成功运行,所以我想着能不能实现自动获取管理员身份,于是参考这个 【[windows以管理员身份运行bat脚本](https://blog.csdn.net/xyy1028/article/details/90744428)】,但是这一方式会弹窗询问是否以管理员身份运行,如果我这么干那每次休眠重启后不还是得点点鼠标吗?而且,到用户干预的时间点时VS Code肯定已经试过重连虚拟机了,所以这个点上VS Code和虚拟机肯定是断开的,所以我用这一方案每次休眠重启后也还是得用鼠标点击确定以管理员身份运行批处理,然后每个VS Code窗口点击重新加载来重连虚拟机,这收益也不大呀。 但是这个时候,我突然鬼使神差的用Google用英文搜了一下这个问题,关键词”windows hibernate vmnet8“,结果tm第一个就是这个问题的解决方案【[After sleep w10 host, can not ping guests (vmware workstation pro 15.5 & 16.0)](https://communities.vmware.com/t5/VMware-Workstation-Pro/After-sleep-w10-host-can-not-ping-guests-vmware-workstation-pro/td-p/2298384)】,照这里的说法,是Wireshark使用的Npcap的某些版本的bug,而我的Wireshark很久没更新了,才3.2,现在的Wireshark都4.0.0了,于是我更新了一下Wireshark,顺道更新了一下Npcap,更新前的Npcap是0.9994,和帖子里说的有bug的版本相近,更新后是1.71,高于没有问题的1.2的版本。 更新后真的没问题了! 这个以不痛不痒的方式缠绕了我大半年的,然后以小痛小痒的方式折磨我3个月的问题终于在今天通过Google用英文搜的方式找到了解决方案,真没想到换成Google加英文的方式两秒找到解决方案。 我真的不知道说什么好! ## 客观版解决方案 电脑在休眠重启后连接不上Vmware中的虚拟机的这个问题是由Wireshark使用的Npcap的某些版本(大概为0.9990-1.2【[NPCAP v0.9990 blocks vmware network stack after wakeup](https://github.com/nmap/npcap/issues/106)】)的bug造成的,解决方案是升级Npcap【[After sleep w10 host, can not ping guests (vmware workstation pro 15.5 & 16.0)](https://communities.vmware.com/t5/VMware-Workstation-Pro/After-sleep-w10-host-can-not-ping-guests-vmware-workstation-pro/td-p/2298384)】。 除此之外,还可以在”控制面板“ → “网络连接” 中先禁用,再启用Vmnet网卡【[【经验总结】电脑休眠后虚拟网卡地址变成169.254网段的解决方法](https://blog.csdn.net/qq_37683287/article/details/109091678)】来暂时性解决这一问题,这一操作可以通过以管理员身份运行批处理文件来简化。 ```powershell netsh interface set interface "VMware Network Adapter VMnet8" disabled netsh interface set interface "VMware Network Adapter VMnet8" enabled ``` 可进一步加入下面代码来使得批处理文件自动申请管理员权限【[windows以管理员身份运行bat脚本](https://blog.csdn.net/xyy1028/article/details/90744428)】 ```powershell @echo on >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system" if '%errorlevel%' NEQ '0' ( goto UACPrompt ) else ( goto gotAdmin ) :UACPrompt echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs" echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs" "%temp%\getadmin.vbs" exit /B :gotAdmin if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" ) ```
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
awsllllaal机器人#1 · 2022/10/21
顺便吐一句槽,真的没想到虚拟机网不行竟然是Wireshark的锅!
superheart机器人#2 · 2022/10/21
把代码都放在虚拟机里有什么好处吗?
awsllllaal机器人#3 · 2022/10/21
主要是想玩Linux,但又不想全托在Linux上 【 在 superheart 的大作中提到: 】 : 把代码都放在虚拟机里有什么好处吗?
byrmmmm机器人#4 · 2022/10/22
bd
hangout机器人#5 · 2022/10/22
wsl2 【 在 awsllllaal 的大作中提到: 】 : 主要是想玩Linux,但又不想全托在Linux上
awsllllaal机器人#6 · 2022/10/22
有空的时候折腾折腾[ema36] 【 在 hangout 的大作中提到: 】 : wsl2
xyz16机器人#7 · 2022/10/22
直接双系统
awsllllaal机器人#8 · 2022/10/22
双系统没法同时使用两个系统 【 在 xyz16 的大作中提到: 】 : 直接双系统
qq290048663机器人#9 · 2022/10/22
【 在 awsllllaal 的大作中提到: 】 : 双系统没法同时使用两个系统 买mac吧!省时省力,反正钱儿也花不完[ema3] [ema25] bing国际版也不错哦: https://cn.bing.com/search?q=windows+hibernate+vmnet8&qs=n&form=QBRE&sp=-1&pq=windows+hibernate+vmnet8&sc=1-24&sk=&cvid=89BCC70200F34B8897143099FC8A0F9B&ghsh=0&ghacc=0&ghpl=