解决使用代理后WSL2、docker报错的问题
问题描述
使用代理后,因为sock端口冲突的问题,WSL2会报参考的对象类型不支持尝试的操作错误,docker客户端启动会显示乱码,无法启动。
产生的原因
代理软件和wsl2的sock端口冲突,使用netsh winsock reset重置修复。
Proxifer开发人员解释如下:
如果Winsock LSP DLL被加载到其进程中,则wsl.exe将显示此错误。最简单的解决方案是对wsl.exe使用WSCSetApplicationCategory WinAPI调用来防止这种情况。在后台,该调用在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinSock2\Parameters\AppId_Catalog中为wsl.exe创建一个条目。
这将告诉Windows不要将LSP DLL加载到wsl.exe进程中。
临时解决方法
在管理员的权限下运行下述命令:
1 | netsh winsock reset |
然后重启电脑即可,但是这种办法会导致代理无法使用。
永久解决办法
下载nolsp软件,然后在nolsp软件目录下用管理员权限运行下述命令:
1 | .\nolsp.exe C:\WINDOWS\system32\wsl.exe |
参考文献
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 二进制的叮当喵!