0%

解决 WSL2 和 proxifier 的相互报错问题

转载自知乎:https://zhuanlan.zhihu.com/p/151392411

关于使用WSL2出现“参考的对象类型不支持尝试的操作”的解决方法。

关于使用WSL2出现“参考的对象类型不支持尝试的操作”的解决方法。

问题:

参考的对象类型不支持尝试的操作。(The attempted operation is not supported for the type of object referenced.)

解决方法:

1. 常见临时解决方案(不推荐):

以管理员身份运行CMD,输入:

netsh winsock reset

重启计算机即可修复。

2. 长期解决的方案(推荐):

(1)下载此软件:

http://www.proxifier.com/tmp/Test20200228/NoLsp.exe

(需要挂代理访问下载)

(2)管理员身份运行CMD输入:

NoLsp.exe C:\windows\system32\wsl.exe

请自行注意NoLsp.exe程序的位置,以及你的wsl.exe位置。

产生原因和解决方法分析:

  1. 代理软件和wsl2的sock端口冲突,使用netsh winsock reset重置修复。
  2. 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进程中

上述解决方案来自于:

https://github.com/microsoft/WSL/issues/4177

https://answers.microsoft.com/zh-hans/insider/forum/all/wsl2%E5%AE%89%E8%A3%85kali/b6dd4c62-1130-4a7c-9462-1e9e5f38dab2

坚持原创技术分享,您的支持将鼓励我继续创作!