当前位置: 首页 > news >正文

Windows 端口占用排查与释放

Windows 端口占用排查与释放

本文档整理在 Windows 上查找、确认并释放被占用端口的常用命令(CMD / PowerShell 均可)。


1. 查找占用端口的进程

<PORT>替换为实际端口号,例如8000

方法一:netstat(通用,CMD / PowerShell 都可用)

netstat-ano|findstr :<PORT>

示例输出:

TCP 127.0.0.1:8000 0.0.0.0:0 LISTENING 30452

最后一列30452即为PID(进程 ID)

注意:findstr :8000会匹配:8000:18000等,若需更精确可写成findstr ":8000 "(末尾加空格)。

方法二:PowerShell(推荐,信息更全)

Get-NetTCPConnection-LocalPort <PORT>-ErrorAction SilentlyContinue|Select-ObjectLocalAddress,LocalPort,State,OwningProcess

查看 PID 对应的进程名:

Get-Process-Id <PID>

或一步查端口 + 进程名:

Get-NetTCPConnection-LocalPort <PORT>-ErrorAction SilentlyContinue|ForEach-Object{[PSCustomObject]@{Port =$_.LocalPort State =$_.State PID =$_.OwningProcessProcess=(Get-Process-Id$_.OwningProcess-ErrorAction SilentlyContinue).ProcessName}}

2. 根据 PID 查看进程详情

tasklist/FI"PID eq <PID>"

PowerShell 等价写法:

Get-Process-Id <PID>|Format-ListId,ProcessName,Path

3. 终止占用端口的进程

方法一:taskkill(CMD / PowerShell)

taskkill/PID <PID>/F
  • /F:强制终止
  • 若进程有子进程且需一并结束,可加/T
taskkill/PID <PID>/F/T

方法二:PowerShell

Stop-Process-Id <PID>-Force

4. 一键查杀(PowerShell 单行)

按端口直接结束进程(先确认端口无误再执行):

Get-NetTCPConnection-LocalPort <PORT>-ErrorAction SilentlyContinue|Select-Object-ExpandProperty OwningProcess-Unique|ForEach-Object{Stop-Process-Id$_-Force}

仅 LISTENING 状态的连接(更安全,避免误杀已建立的客户端连接):

Get-NetTCPConnection-LocalPort <PORT>-State Listen-ErrorAction SilentlyContinue|Select-Object-ExpandProperty OwningProcess-Unique|ForEach-Object{Stop-Process-Id$_-Force}

5. 常用场景示例

释放 8000 端口(本项目默认 Web 端口)

# 1. 查 PIDnetstat-ano|findstr :8000# 2. 看进程名(假设 PID 为 30452)tasklist/FI"PID eq 30452"# 3. 结束进程taskkill/PID 30452/F

释放 5432 端口(PostgreSQL 默认端口)

netstat-ano|findstr :5432 taskkill/PID <PID>/F

查看所有 LISTENING 端口

netstat-ano|findstr LISTENING

PowerShell:

Get-NetTCPConnection-State Listen|Select-ObjectLocalAddress,LocalPort,OwningProcess|Sort-ObjectLocalPort

6. 常见问题

findstr没有输出

  • 说明该端口当前未被占用,可直接启动服务。
  • 若服务仍报端口冲突,检查是否监听在其他地址(如0.0.0.0vs127.0.0.1),或使用了 UDP:
netstat-ano|findstr :<PORT># UDP 占用需加 -u 参数netstat-ano-p udp|findstr :<PORT>

taskkill提示「拒绝访问」

  • 管理员身份运行 CMD 或 PowerShell 后重试。
  • 确认 PID 是否正确,避免误杀系统进程。

Get-NetTCPConnection报错

  • 部分精简版 Windows 或未启用相关功能时可能不可用,改用netstat -ano即可。

端口被 TIME_WAIT 占用

  • TIME_WAIT是 TCP 关闭后的正常状态,通常不需要手动处理,等待几十秒后会自动释放。
  • 只有LISTENING状态才表示有进程在监听该端口。

7. 命令速查表

目的命令
查端口占用 PIDnetstat -ano | findstr :<PORT>
查 PID 进程名tasklist /FI "PID eq <PID>"
强制结束进程taskkill /PID <PID> /F
结束进程及子进程taskkill /PID <PID> /F /T
PowerShell 查端口Get-NetTCPConnection -LocalPort <PORT>
PowerShell 结束进程Stop-Process -Id <PID> -Force

8. 安全提示

  1. 结束进程前先确认PID 与进程名,避免误杀系统或重要服务。
  2. 生产环境优先用服务管理器(services.msc)或应用自身的停止脚本,而非直接taskkill
  3. 若同一端口被多个 PID 占用(少见),需对每个 PID 分别处理,或使用上文「一键查杀」脚本。
http://www.jsqmd.com/news/1084009/

相关文章:

  • 用你自己的签名,打你自己
  • 微信会话存档亿级数据处理:基于 RSA 混合解密与 Flink 的流式架构实战
  • 第一次写课程论文不会搭框架?Gradpaper 自动生成标准大纲,跟着填就行
  • 【AI大模型进阶】从GPT-1到GPT-4,它到底进化出了什么“可怕”的能力?
  • C#工业相机开发从零到一:图像采集与显示的工程化实战
  • SDR++:零臃肿的跨平台软件定义无线电软件,你值得拥有吗?
  • 企业为什么要关注智能体?数字化转型关键引擎
  • AI 一天开发一个 APP,为什么最后都死在审核?
  • 公平锁和非公平锁,我学了好几次才记住它们的区别
  • 小红书种草笔记的CES评分机制深度拆解——从算法逻辑到实操提分
  • Python+Selenium自动化测试:Chrome Driver版本管理全流程实现
  • 从CTF实战解析SQL注入:绕过过滤与联合查询攻防
  • 2025年网盘直链下载工具深度解析:LinkSwift如何提升你的下载体验
  • XSS攻击全解析:从原理到防御的Web安全实战指南
  • 6月24日豆包上线专业版!办公任务模式实测惊艳,2亿用户开启AI普惠办公新时代
  • 天行健与优胜劣汰:两种文明范式的哲学比较及其现代启示
  • Java基础进阶:位运算体系与字符串底层原理全解析
  • 如何让老旧Mac焕发新生?OpenCore Legacy Patcher终极指南
  • n8n表达式注入漏洞CVE-2025-68613:从原理到RCE的深度剖析与防御
  • 国产化视频会议安全加密:从国密算法到端到端加密的实战解析
  • 版权知识小科普:这些你一定要知道
  • 大模型微调算力选型:8 路 RTX 5090 服务器与单张 A100 80GB 性能、显存、成本场景对比
  • AI算力行情轮到玻璃基板,巨头布局加速商业化,量产还有哪些难关?
  • 北京时间与不同时区时间:来历、介绍与用途
  • 微信私域如何告别“拍脑袋决策”?从 WecomApi 拆解大规模 A/B 测试与增长实验中台架构
  • XXE漏洞深度解析:原理、利用与多语言防御实战
  • 实战指南:解锁Joy-Con手柄自定义功能的完整工具包
  • 文件上传漏洞攻防实战:从绕过检测到Webshell获取
  • 天河应用大讲堂 | 基于人工智能的天气预报技术发展趋势
  • LSR包胶技术深度解析:金属包胶、塑料包胶到底怎么做?