首先通过netstat命令查看端口占用,再用findstr筛选指定端口获取PID,接着在任务管理器中根据PID结束进程,或使用taskkill命令强制终止,也可通过PowerShell的Get-NetTCPConnection查询PID并Stop-Process结束进程。
如果您尝试启动某个网络服务或应用程序,但系统提示端口已被占用,则需要定位并处理占用该端口的进程。以下是解决此问题的步骤:
本文运行环境:Dell XPS 13,Windows 10。
一、使用命令提示符查看所有端口占用情况
通过系统内置的 netstat 命令可以列出当前所有活动的网络连接和监听端口,帮助您全面了解端口使用状态。
1、按下键盘上的 Win + R 组合键,打开“运行”对话框。
2、在对话框中输入 cmd,然后点击“确定”或按回车键,以打开命令提示符窗口。
3、在命令提示符中输入以下命令并按回车:netstat -ano。
4、等待命令执行完成,系统将显示所有正在使用的端口及其对应的协议、本地地址、外部地址和进程ID(PID)。
二、查询指定端口的占用进程
当您已知需要检查的具体端口号时,可通过筛选命令快速定位占用该端口的进程ID,提高排查效率。
1、在命令提示符中输入命令:netstat -ano | findstr “端口号”,请将“端口号”替换为实际要查询的数字,例如查询8080端口则输入 netstat -ano | findstr “8080”。
2、按回车执行命令,输出结果中将仅显示与该端口相关的连接信息,最后一列为占用端口的进程ID(PID)。
3、记下该PID数值,后续操作将依赖此信息。
三、通过任务管理器查找并结束进程
利用任务管理器的详细信息视图,您可以根据PID找到具体的进程名称,并手动终止其运行。
1、按下 Ctrl + Shift + Esc 组合键,直接打开任务管理器。
2、切换到“详细信息”选项卡。
3、点击“PID”列标题以对进程ID进行排序,便于查找。
4、找到之前记录的PID对应的进程,右键点击该进程,选择“结束任务”以释放端口。
四、使用命令行强制结束占用端口的进程
对于熟悉命令行操作的用户,可直接使用 taskkill 命令根据PID或进程名强制终止进程,操作更为快捷。
1、在命令提示符中输入命令:tasklist | findstr “PID”,将“PID”替换为实际的进程ID,以确认该PID对应的进程名称。
2、执行命令 taskkill /f /pid PID,其中“PID”为实际数值,例如 taskkill /f /pid 1234,即可强制结束该进程。
3、如需通过进程名称结束,可使用命令:taskkill /f /im 进程名.exe,例如 taskkill /f /im nginx.exe。
五、使用 PowerShell 查看端口占用
PowerShell 提供了更现代的命令集,可通过组合 cmdlet 精确获取端口占用信息。
1、按下 Win + X 键,在弹出菜单中选择“Windows PowerShell”或“Windows PowerShell (管理员)”。
2、输入命令:Get-NetTCPConnection -LocalPort 端口号 | Select-Object -ExpandProperty OwningProcess,将“端口号”替换为实际值,该命令将返回占用指定端口的PID。
3、获取PID后,使用 Get-Process -Id PID 查看进程详情,或结合 Stop-Process 命令终止进程。