windows如何解决端口被占用的问题
一、对端口的查看
1、打开黑窗口:
同时按下win+R(快捷键)后,在栏目中输入cmd(命令提示符,即命令窗口),点击确定。
2、查看端口被占用的情况:
(1)、输入命令netstat-ano,会显示所用被占用的端口及其相关信息。
netstat-ano
PID(全称为Process Identification,进程标识符,即进程编号)。
补充:
netstat后还可跟其他参数,参数不同,效果有点点区别。
1>netstat -a会显示自己的主机名,
2 >netstat -an,与netstat -ano相比,缺少端口对应进程的PID,看起来更简洁。
3>LISTENING(listening)状态表示该端口开放,可提供服务,正在监听(等待请求)。
4>ESTABLISHED(established)状态表示连接已经产生,正在进行数据通信。
5>TIME_WAIT(time_wait)状态表示正在等待连接(即端口已经收到了外界发送的连接请求,但可能由于网速,也可能是其他问题,外界请求连接该端口但尚未连上)。
6>SYN_SENT(syn_sent)状态表示三次握手,常时间没TIME_WAIT仍没连上,会转为SYN_SENT状态,即外界(可以是本机)想连接端口,但端口没有响应。
7>FIN_WAIT1(fin_wait1)状态:
在TCP连接中,客户机主动关闭连接,则向服务端发送FIN,客户机进入FIN_WAIT1状态,被关闭服务端响应进行确认(ACK),客户机接收后进入FIN_WAIT2状态。随后被关闭的服务端发送FIN给客户机,客户端响应进行确认(ACK)后,客户机进入TIME_WAIT。
(2)输入命令netstat -ano|findstr "6380":(查询端口6380相关信息)
netstat -ano|findstr "6380"
可查看某一端口的占用状态,这里以端口6380为例,被进程号为18568的进程占用。
二、关闭进程
1、方法一:通过任务管理器关闭占用端口的进程:
(1)同时按下(ctrl+alt+delete,快捷键)后,点击选项中的任务管理器。
(2)点击详细信息,根据之前在黑窗口中查找到的PID,定位到要关闭的进程,选中后,点击结束任务。
2、方法二:通过黑窗口的命令关闭:
(1)根据上面的步骤,已经通过netstat -aon|findstr "6380"找到了端口6380对应的进程号PID为5448。
netstat -aon|findstr "6380"
(2)执行命令tasklist | findstr 进程号,可获取进程号18568对应进程名redis-server.exe。
tasklist | findstr 18568
(3)执行命令taskkill /f /t /im 进程名。
taskkill /f /t /im redis-server.exe
补充:通过进程号PID关闭正在执行的进程。
执行命令taskkill /pid 进程号 /f(因为之前PID18568对应的进程已经被关闭,所以开进程和关进程的操作再重新进行一次)。
1>开启redis:
2>通过端口号6380获取对应进程PID19056:
3>执行命令taskkill /pid 进程号 /f:
C:\Users\HUAWEI>taskkill /pid 19056 /f
三、通过进程号(PID)查看端口(port):
使用命令netstat -ano | findstr 进程号。
如上图,根据进程号18568(PID)可获取该进程对应的端口6380(port)。