运行软件或者项目的时候,出现以下问题:
panic: blademaster: listen tcp: 0.0.0.0:8080: listen tcp 0.0.0.0:8080: bind: An attempt was made to access a socket in a way forbidden by its access permissions.
第一种情况:确实被占用
1、首先判断端口是被谁占用的。
1)使用运行打开cmd,直接输入 netstat -ano ,回车,最右面对应的是PID=1328.
注:不建议使用此命令,端口太多,看不过来
2) 使用运行打开cmd,直接输入 以下命令 ,回车。
netstat -aon | find "8080" 或 netstat -aon | grep "8080" #是查看8080这个端口的占用情况
******************************************************************************************************
netstat -aon | findstr "80" 或netstat -aon | findstr :80 #是查看包含80的一系列端口,例800,8080
2、根据进程号杀掉进程
taskkill -PID 19468 -F
第二种情况:
提示端口被占用,但是却查不到占用的进程。
原因是 Windows 会保留一些端口,这些端口刚好处于被系统保留的端口序列里。
使用以下命令查看
netsh interface ipv4 show excludedportrange protocol=tcp
Windows 保留这些端口可能的原因:
- 因为发现病毒活动而被微软屏蔽
- 安装过windows update以后,保留的端口列表发生了变化
- 开启了 Hyper-V 特性
有以下三种解决办法:
- 换用其他端口
- 关闭 Hyper-V 特性(可能关闭后还是会占用)
- 将这些端口设置为 Administered port exclusions
netsh int ipv4 add excludedportrange protocol=tcp startport=8000 numberofports=300
执行该命令之后,进行重启,再次查询保留端口,会发现端口列表末尾会出现一个 * 号,此时这些端口就不会被 Hyper-V 使用。