常规处理端口占用,我们会使用 netstat 命令
查找所有运行的端口
netstat -ano
# 过滤指定端口
netstat -aon|findstr "3000"
最后一位数字就是 PID
查看指定 PID 的进程
tasklist|findstr "上述的PID"
杀掉不符合预期的进程
taskkill /T /F /PID 上述PID
但是,并不总是有效
比如 Hyper-V占用(WSL 保留端口)导致的端口占用
请注意使用 CMD 用管理员模式运行
netsh interface ipv4 show excludedportrange protocol=tcp
会展示如图所示的列表
修复如下
# 停止 WinNAT 服务以释放被占用的端口
net stop winnat
# 保留想要使用端口
# startport 表示起始端口,numberofports 表示要保留的端口数量。比如保留 1080~1089 端口:
netsh int ipv4 add excludedportrange protocol=tcp startport=1080 numberofports=10
# 重新启动 winnat 服务
net start winnat
此时重新检查 端口占用情况
经检查,我们需要的端口不在排除名单,遂可以使用了。
以上只针对 CMD CMD的管理员模式运行