开发时经常遇到端口被占用的情况,这个时候我们就需要找出被占用端口的程序,然后结束它,本文为大家介绍如何查找被占用的端口。
Win10+Docker报错 Ports are not available: listen tcp 0.0.0.0:8080: bind: An attempt was made to acces_m0_58848314
解决方案一:关闭相应端口
- 查看端口
# cmd
netstat -aon|findstr "8080"
- 关闭相应端口
# cmd
taskkill /pid 12948 /f
如果提示没有权限,可以试着使用管理员方式打开cmd。
解决方案二:修改出站规则
- Win + s搜索控制面板
- 找到Windows Defender 防火墙
- 点击高级设置
- 点击出站规则
- 点击新建规则
- 选择程序
- 找到路径 例如:C:\program files\docker\docker\resources\com.docker.backend.exe
- 选择允许连接
- 起个名例如:Docker Desktop Backend
- 重启计算机
如果不想给docker所有端口都开放,可以找到刚才你创建的出站规则,找到协议和端口选项卡,进行自定义修改,再重启计算机。
解决方案三:修改Windows动态端口的范围
- Win + R 输入 cmd 回车
- 查看一下设置
> netsh int ipv4 show dynamicport tcp 协议 tcp 动态端口范围 --------------------------------- 启动端口 : 1024 端口数 : 10000
- 修改范围
netsh int ipv4 set dynamicport tcp start=9000 num=10000
linux ss -ltn
1、打开命令窗口(以管理员身份运行)
开始—->运行—->cmd,或者是 window+R 组合键,调出命令窗口。
2、查找所有运行的端口
输入命令:netstat -ano
该命令列出所有端口的使用情况。
在列表中我们观察被占用的端口,比如是 1224,首先找到它。
3、查看被占用端口对应的 PID
输入命令:netstat -aon|findstr "8081"
回车执行该命令,最后一位数字就是 PID, 这里是 9088。
netstat -a -n -p tcp | findstr LISTENING4、查看指定 PID 的进程
继续输入命令:tasklist|findstr "9088"
回车执行该命令。
查看是哪个进程或者程序占用了 8081 端口,结果是:node.exe。
结束进程
强制(/F参数)杀死 pid 为 9088 的所有进程包括子进程(/T参数):
taskkill /T /F /PID 9088或者是我们打开任务管理器,切换到进程选项卡,在PID一列查看9088对应的进程是谁,如果看不到PID这一列,如下图:
之后我们就可以结束掉这个进程,这样我们就可以释放该端口来使用了。
https://solace.community/discussion/26/how-to-find-a-free-tcp-port-for-testing-pubsub-with-docker
netstat -a -n -p tcp | findstr LISTENING
评论
发表评论