PHP Laravel NGINX html css Bootstrap Python Symfony Apache Windows linux jquery Django ASP vanilla Slim vagrant docker Homestead MySQL Redis Git SVN ssh Root vim PhpStorm Pycharm sass less PHP Laravel android html css Vue Angular React NGINX html css Javascript

WSL/WSL2 解决某些端口不能访问

原创

原创不易 ~ 转载请注明出处哦

本文解决方案来自github issue地址:

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

在使用WSL2的过程中,经常遇到某些端口访问不了的情况,之前总是没有头绪,今天终于在Github上找到了原因。

具体排查方法如下。

思路很简单,就是找到占用了我们目标端口的进程或者服务,然后关闭它。therealkenccomment中提出,我们需要在Powershell中运行以下命令:

PS C:\> (Get-WmiObject -Class Win32_Service | where ProcessId -eq (Get-Process -Id (Get-NetTCPConnection -LocalPort 5040).OwningProcess).Id).Name

注意上述命令中请将5040替换为我们的目标端口。Powershell的打开方式就不多说了,不明白的请自己面壁3分钟。

上述命令会输出正在使用该端口的进程或服务名,然后我们可以在资源管理器中找到该服务,进入详情后将其停止或禁用。

举个例子来说,我运行命令后,发现占用8000端口的是iphlpsvc进程:

PS C:\WINDOWS\system32> (Get-WmiObject -Class Win32_Service | where ProcessId -eq (Get-Process -Id (Get-NetTCPConnection -LocalPort 8000).OwningProcess).Id).Name
iphlpsvc

之后我在Services中发现服务是IP Helper,于是我将其停止并禁用。这样原来不可访问的地址立马就可以访问了。


正在加载验证码......
请先完成验证