问题描述

使用代理后,因为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

参考文献