Thanks to visit codestin.com
Credit goes to github.com

Skip to content

GaoSSR/Kill-Port-Windows

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🔧 Kill-Port-Windows

一个简单高效的 Windows 端口管理工具,帮助你快速释放被占用的端口。

License: MIT Platform PowerShell GitHub stars GitHub forks GitHub issues GitHub last commit Maintenance PRs Welcome Made with PowerShell GitHub release GitHub repo size HitCount


📋 目录


🎯 为什么需要这个工具?

在开发过程中,你是否经常遇到这样的错误?

Error: listen EADDRINUSE: address already in use :::8089
端口已被占用,无法启动服务...

Kill-Port-Windows 让你用一条命令就能解决这个问题!不再需要:

  • ❌ 手动查找进程ID
  • ❌ 记忆复杂的命令
  • ❌ 重启整个系统

✨ 功能特性

  • 一键释放端口 - 只需指定端口号,自动完成所有操作
  • 智能进程识别 - 自动查找并显示占用端口的进程详情
  • 安全确认机制 - 终止前显示进程信息,支持确认或强制模式
  • 实时验证 - 自动验证端口是否成功释放
  • 彩色输出 - 清晰易读的控制台输出
  • 友好的错误处理 - 详细的错误提示和解决建议
  • 交互式/命令式 - 支持参数模式和交互模式

🚀 快速开始

前置要求

  • Windows 10 或更高版本
  • PowerShell 5.1 或更高版本(系统自带)

安装

  1. 下载脚本

    # 克隆仓库
    git clone https://github.com/GaoSSR/Kill-Port-Windows.git
    cd Kill-Port-Windows

    或者直接下载 kill_port.ps1 文件到你的项目目录。

  2. 设置执行策略(首次使用可能需要)

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

📖 使用方法

方式1:命令行参数模式(推荐)

.\kill_port.ps1 -Port 8089

方式2:强制模式(不询问直接终止)

.\kill_port.ps1 -Port 8089 -Force

方式3:交互式模式

.\kill_port.ps1
# 然后根据提示输入端口号

方式4:查看帮助

.\kill_port.ps1 -Help

💡 使用示例

示例1:释放8089端口

PS> .\kill_port.ps1 -Port 8089

🔍 正在查找占用端口 8089 的进程...

📊 找到以下进程占用端口 8089:

  进程ID:    12345
  进程名称:  python
  程序路径:  C:\Python311\python.exe
  内存占用:  45.23 MB

📡 连接状态:
  0.0.0.0:8089 -> 0.0.0.0:0 [Listen]

⚠️  是否终止这些进程?(Y/N): y

🔨 正在终止进程...
  ✅ 已终止进程 PID: 12345

📈 操作结果:
  成功:1 个进程

🔍 正在验证端口状态...
  ✅ 端口 8089 已成功释放!

=== 操作完成 ===

示例2:强制模式释放端口

PS> .\kill_port.ps1 -Port 3000 -Force

🔍 正在查找占用端口 3000 的进程...

📊 找到以下进程占用端口 3000:
  进程ID:    8765
  进程名称:  node
  ...

🔨 正在终止进程...
  ✅ 已终止进程 PID: 8765
  ✅ 端口 3000 已成功释放!

示例3:端口未被占用

PS> .\kill_port.ps1 -Port 5000

🔍 正在查找占用端口 5000 的进程...

✅ 端口 5000 未被占用,无需操作

🔍 参数说明

参数 类型 必需 说明
-Port 整数 否* 要释放的端口号(1-65535)
-Force 开关 不询问确认,直接终止进程
-Help 开关 显示帮助信息

* 如果不提供 -Port 参数,将进入交互式模式提示输入


❓ 常见问题

Q1: 提示"拒绝访问"怎么办?

原因: 某些系统进程需要管理员权限才能终止。

解决方案:

  1. 右键点击 PowerShell
  2. 选择"以管理员身份运行"
  3. 重新执行脚本

Q2: 提示"无法加载脚本"?

原因: PowerShell 执行策略限制。

解决方案:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Q3: 进程终止后端口仍显示占用?

原因: 可能处于 TIME_WAIT 状态。

解决方案:

  • 等待 30-60 秒让系统自动清理
  • 重新运行应用程序通常会自动清理

Q4: 如何一次性关闭多个端口?

# 方法1:逐个关闭
.\kill_port.ps1 -Port 8089 -Force
.\kill_port.ps1 -Port 3000 -Force
.\kill_port.ps1 -Port 5000 -Force

# 方法2:批量脚本
@(8089, 3000, 5000) | ForEach-Object {
    .\kill_port.ps1 -Port $_ -Force
}

Q5: 如何查看所有监听的端口?

# PowerShell 命令
Get-NetTCPConnection -State Listen | Select-Object LocalPort, OwningProcess | Sort-Object LocalPort

📚 详细教程

如果你想了解更多关于 Windows 端口管理的知识,请查看:

  • 关闭端口教程.md - 完整的 Windows 端口管理指南
    • 手动命令详解
    • 高级技巧
    • 安全注意事项
    • 更多实战案例

🛡️ 安全提示

⚠️ 重要警告:

  1. 不要随意终止未知进程

    • 脚本会显示进程详情,请在确认后再终止
    • 某些系统进程对 Windows 运行至关重要
  2. 谨慎使用 -Force 参数

    • 强制终止可能导致未保存的数据丢失
    • 对于数据库等服务,建议先正常关闭
  3. 避免终止系统服务

    • 不要终止 svchost.exeservices.exe 等系统进程
    • 如果不确定,先搜索进程名称

💻 系统要求

  • 操作系统: Windows 10/11 或 Windows Server 2016+
  • PowerShell: 5.1 或更高版本
  • 权限: 普通用户权限(某些进程可能需要管理员权限)

🤝 贡献

欢迎贡献!如果你有任何建议或发现了 bug,请:

  1. Fork 这个仓库
  2. 创建你的特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交你的更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 打开一个 Pull Request

贡献指南

  • 保持代码风格一致
  • 添加必要的注释
  • 更新文档(如果需要)
  • 测试你的更改

📝 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

这意味着你可以自由地:

  • ✅ 商业使用
  • ✅ 修改
  • ✅ 分发
  • ✅ 私人使用

🌟 Star 历史

如果这个工具对你有帮助,请给我一个 ⭐!

Star History Chart


📞 联系方式


🙏 致谢

感谢所有为这个项目做出贡献的人!


Built with ❤️ by AI Assistant

About

🔧 一个简单高效的 Windows 端口管理工具

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published