不知道你有没有过这种崩溃时刻:
本地启动项目,突然报 port 5000 is already in use;
翻遍终端 lsof、netstat 半天,好不容易找到 PID,敲完命令发现杀错进程;
每次调试 K8s 端口转发、Cloudflare 隧道,还要手动记端口号,来回切换浏览器和终端…
作为一名每天和端口打交道的开发者,我实在忍不了这种低效操作,花了点时间做了这款 macOS 状态栏端口管理工具「PortPilot」,今天分享给大家。
✨ 它解决了什么问题?
一句话:把端口管理从「命令行地狱」拉回「可视化天堂」,常驻状态栏,点开就用,无需额外配置。
🔍 核心功能,全是开发者刚需
- ✅ 全端口实时监控:点击状态栏图标,就能看到系统所有 TCP LISTEN 端口,自动智能分组,进程名、PID 一目了然
- ✅ 一键解决端口占用:每个端口直接右键或点按钮,优雅终止(SIGTERM)或强制终止(SIGKILL),超时自动升级,不用再敲
lsof -i:xxxx和kill -9 - ✅ 快捷操作,效率拉满:
- 一键复制端口号
- 一键在浏览器打开
localhost:端口号 - 支持全局刷新、一键 Kill All 非系统进程端口
- ✅ 适配开发全场景:自动识别并分组管理以下进程类型,开发调试、隧道管理、K8s 本地开发全适配
| 分组 | 识别的进程 |
|---|---|
| Cloudflare 隧道 | cloudflared |
| K8s 端口转发 | kubectl |
| Docker | docker、docker-proxy、containerd |
| 本地开发 | node、python、ruby、java、nginx 等 |
| 系统 | 系统进程和知名端口(22、80、443…) |
🎨 轻量无负担,原生 macOS 体验
- 常驻状态栏,无 Dock 图标,不占后台资源,体积仅 ~1MB
- 支持浅色/深色模式,和系统 UI 无缝适配
- 自定义快捷键:
⌘R刷新、⌘K一键杀进程、⌘,设置,手不离开键盘也能操作 - 支持端口过滤、排除规则配置,不想被系统进程打扰可以一键隐藏
- Intel (x86_64) / Apple Silicon (arm64) 双架构原生支持
📦 怎么获取 & 使用?
- 下载安装包:GitHub Releases,打开 DMG,拖入应用程序文件夹即可
- 启动后常驻状态栏,点击 ⇅ 图标即可查看所有端口
- 鼠标悬停在目标端口上,点击操作按钮或右键,搞定!
🛠 技术栈
AppKit (NSStatusItem + NSPopover) + SwiftUI | Combine | POSIX 信号 | lsof
项目完全开源,欢迎 Star、PR 和 Issue:
🔗 GitHub 仓库:github.com/Ghjsw/PortP…
💡 写在最后
做这个工具的初衷,就是想解决开发者日常最琐碎、最影响效率的小事。 现在我本地启动项目、调试服务,再也不用来回切换终端和浏览器,点开状态栏就能搞定,省下的时间摸鱼香多了 😂
如果你也被端口占用、命令行查进程搞烦了,不妨试试它,有任何问题或功能建议,欢迎在评论区或仓库里反馈,一起迭代优化!
标签:macOS、开发工具、效率神器、端口管理、开源项目