2022年5月5日

故事会 好好的程序咋就天天报错呢?WinNAT?

作者 TheWhiteDog9487

事情是这样的:

最近微软画的饼:Windows Subsystem for Android,基本上算是落地了(我写了一篇文章介绍这家伙,但我太懒了,一个月了文章都还没落地)。我自己也正在用,总体评价是:
做得很好,下次别再做了(doge)
其实这货还可以啦,通过这个项目挂载上Magisk和LSPosed之后可玩性还是挺高的,所以我也一直没卸载
但是,自从安装WSA之后我的系统老是会出一些奇奇怪怪的问题,像是什么Android调试桥连接不上WSA啦,JetBrains全家桶无法启动啦(我目前为止就遇到这两个)。经过反复折腾,查资料顺便联系了一下JetBrains的技术客服,最终确定,就是Hyper-V带起来的WinNAT弄出来的问题
提示:Windows Subsystem for Android依赖于Hyper-V

起初是我安装WSA之后Android调试桥无法连接,具体什么报错我也没截图,现在想复现也不简单。反正就是adb connect 127.0.0.1:58526和adb connect [::1]:58526都无法连接到WSA。我以为是我调试桥的问题,开代理去Android Developer重新下载,无果。承重墙的软件也不行。
这,多少就是不给面子了。
我就去查,结果发现有文章说是Hyper-V会随机保留一些端口,具体干什么我也不记得了,问微软去。反正就是会绑定一组随机端口(是一组不是一个),如果你很幸运,保留范围里面有58526,那你不管怎么折腾都不可能连接上WSA。
怎么解决呢?遇事不决先重启,重启电脑和WinNAT服务都可以
重启服务简单一点,像这样:

以管理员身份运行命令提示符/Powershell(不用管理员会报错访问被拒绝,你可以试一下),输入这个指令:

net stop winnat
net start winnat

其实理论上只要stop生效了就可以
一次不行就再重启一次

现在应该就可以连接了。
这是今年4月9号的事情

TheWhiteDog9487的动态-哔哩哔哩

然而,WinNAT并没有就此消停
前天,我准备学习Python,打开PyCharm报错,CLion也一样。
欸不对啊!昨天不是还好好的,怎么回事呢?

就是这样,CLion的报错差不多

我首先尝试了重装软件,很遗憾,没反应
后来我又左左右右试了下解决问题,没办法,根本修不好
然后我就去联系了JetBrains的技术支持,等了两天,今天我看到给我回信,是这样的:

Revise IDE folders locking mechanism (don’t fail startup if all ports in range are taken, limited network due to firewall/VPN) : IDEA-238995

我看到重启WinNAT的指令就意识到这是怎么回事了,试了下,成功
{2022 05 29更新}:哦对了,如果你受不了赌运气的重启服务,那你可以参考解决 Windows 10 端口被 Hyper-V 随机保留(占用)的问题 | 一个兆基来把保留端口的范围修改一下

就是这样,故事完结了
你还没听够吗?这里还有一个事故:

话说WordPress有现成的插件可以调用Bilibili的表情嘛?我想要用那个狗头