Proxifier和wsl2不能共存

Proxifier和wsl2不能共存

关于proxifier的解决方法,下面贴一段github上的原文和翻译

简述就是

1
2
3
4
5
6
7
8
9
10
11
Works for me, steps:

将NoLsp.exe放到D盘根目录

Run powershell as Administrator.

Run command cd d:/

Run command .\NoLsp.exe c:\windows\system32\wsl.exe

Then you well see return: Success!
1
2
3
4
5
6
7
8
9
10
Proxifier的开发人员告诉了我原因并给出了解决方案。谢谢你的信息。
我们转载了这一期。显然地,wsl.exe文件如果Winsock LSP DLL加载到其进程中,则显示此错误。
最简单的解决方案是使用WSCSetApplicationCategory WinAPI调用wsl.exe文件为了防止这种情况。
在引擎盖下,调用为wsl.exe文件在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinSock2\Parameters\AppId_Catalog中,
这会告诉Windows不要将LSP DLL加载到wsl.exe文件过程。
我们有一个工具可以进行此调用:www.proxifier.com/tmp/Test20200228/NoLsp.exe
请以管理员身份运行,完整路径为wsl.exe文件作为参数:
NoLsp.exe c:\windows\system32\wsl.exe
这就解决了我的问题。请让我知道它是如何为你工作的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Developers of Proxifier told me the reason and gave me a solution.

Thanks for the info.
We have reproduced this issue.
Apparently, wsl.exe displays this error if Winsock LSP DLL gets loaded into its process.
The easiest solution is to use WSCSetApplicationCategory WinAPI call for wsl.exe to prevent this.
Under the hood the call creates an entry for wsl.exe at HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinSock2\Parameters\AppId_Catalog
This tells Windows not to load LSP DLLs into wsl.exe process.
We have a tool that can make this call:
www.proxifier.com/tmp/Test20200228/NoLsp.exe
Please just run as admin with the full path to wsl.exe as the parameter:
NoLsp.exe c:\windows\system32\wsl.exe
This has fixed the problem in my case.
Please let me know how it works for you.