在 Windows 操作系统中,时不时会遇到绑定端口失败报错的情况,出现这个问题,可能有以下几个原因:
- 端口被其他程序占用
- 端口被系统保留
- winnat服务运行错误
第一种:端口被其他程序所占用解决方案:
- 查看指定端口占用情况
- 根据进程ID(PID)查看使用该端口的进程或者程序
- 结束相应的进程
下面举例说明:
# 以下命令在终端cmd或者PowerShell中运行
# 使用netstat命令查看端口8080的占用情况
netstat -aon | findstr "8080"
# 输出结果: TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 5120
# 其中,"5120" 就是进程ID, 可以t通过 tasklist命令查找该进程对应的程序
tasklist | findstr "5120"
# 返回结果:http*ex.e** 5120 http services 0 1.201K
# 结束该进程
taskkill /pid 5120 /f
第二种:端口被系统保留
Windows 系统有时会占用某些端口并禁止其他程序使用。可以使用下面的命令查看Windows系统都保留了哪些端口:
netsh interface ipv4 show excludedportrange protocol=tcp
第三种:winnat服务错误
有的时候,端口用的好好的,重启系统后就被拒绝使用了。一般的情况都是 winnat 服务有问题。可以通过重新启动 winnat 服务(需要管理员权限)就可以解决端口被拒绝使用的问题。
(net stop winnat) -and (net start winnat)