返回
Featured image of post WSL2 占用 Windows 端口的解决办法

WSL2 占用 Windows 端口的解决办法

问题背景

在 Windows 上启动 nacos 出现 8848 端口占用的问题。但是使用 netstat -aon | findstr "8848" 却查不到占用端口的 pid

问题原因

Windows 中有一个『TCP 动态端口范围』,处在这个范围内的端口,有时候会被一些服务占用。 例如,如果安装了 Hyper-V,那么 Hyper-V 会为容器宿主网络服务(Windows Container Host Networking Service)随机保留一些端口号使用,这些端口则来自于刚才提到的『TCP 动态端口范围』

  • 使用命令 netsh int ipv4 show dynamicport tcp 可以查看目前的 TCP 动态端口范围
  • 使用命令 netsh int ipv4 show excludedportrange protocol=tcp 可以查看当前已被征用的了的端口

问题解决

手动设置『TCP 动态端口范围』- 需要管理员权限

  • netsh int ipv4 set dynamic tcp start=49152 num=16384
  • netsh int ipv6 set dynamic tcp start=49152 num=16384

设置从『TCP 动态端口范围』中排除的端口

  • netsh int ipv4 add excludedportrange protocol=tcp startport=要排除的端口 numberofports=范围
Built with Hugo
Theme Stack designed by Jimmy