告别端口占用烦恼!PortKiller:高效实用的 macOS 菜单栏开源工具

3 分钟阅读

在日常开发里,端口占用几乎是每个人都会反复遇到的阻塞:3000 / 5173 / 8080Address already in use,你需要切回终端,lsof 查进程、确认 PID、再 kill。这套操作不难,但它的“打断感”很强——尤其在你频繁启停服务、切分支、跑多个项目的时候。

PortKillerproductdevbook/port-killer)瞄准的就是这个高频摩擦点:
它是一款 原生 macOS 菜单栏应用,自动扫描系统中所有监听中的 TCP 端口,支持搜索、收藏/关注端口,并提供一键终止占用进程的交互体验,让“释放端口”变成一个确定性、低成本的动作。

项目信息

安装 PortKiller

PortKiller 的安装方式非常贴合开发者习惯:

1
brew install --cask productdevbook/tap/portkiller

也可以直接从 Releases 下载: https://github.com/productdevbook/port-killer/releases

核心体验:把“查端口→找进程→杀进程”做成菜单栏交互

PortKiller 的目标用户为需要快速释放端口的开发者。其核心特性包括:

  • 菜单栏集成(Menu Bar integration)
  • 自动发现监听中的 TCP 端口(Auto-discovers listening TCP ports)
  • 一键终止占用进程(One-click process termination)
  • 按端口或进程名搜索

这些能力看似“就是把命令行包了一层 UI”,但真正的价值在于:它把高频、打断性的运维动作,变成了随手就能完成的低打断体验。你不必离开当前工作流,不必记命令,也不必反复复制 PID。

不只是“杀端口”

PortKiller 比很多同类工具更“懂开发者”的地方在于:它把端口相关的工作流往前推了一步——不止管理“端口被谁占用”,还开始管理“端口连接是怎么来的”。

云原生友好:Kubernetes Port Forward 管理

如果你经常用 Kubernetes 做开发/联调,kubectl port-forward 基本是日常操作:

  • 它很容易因为网络波动、集群重启、上下文切换而断开
  • 同一时间可能维护多个 port-forward(多个 namespace、多个 service、多个端口映射)
  • 你还需要记住每个映射关系:本地端口、远端端口、服务名、命名空间
  • “端口占用”与“port-forward 连接是否还活着”往往又互相影响(尤其是本地端口冲突时)

PortKiller 把这部分纳入侧边栏/连接管理后,本质是在做一件事:让端口与连接状态可视化、可持久化、可管理

Killer feature:Cloudflared Tunnel 管理

PortKiller 还内置了 Cloudflare Tunnel 的管理能力:让你可以把某个本地端口(比如 localhost:3000)通过 Cloudflare Tunnel 快速生成一个可访问的公网 URL,并且在应用里统一查看/停止这些隧道进程。

这类能力适合的场景包括:

  • 临时把本地 Web 服务给同事/客户预览(无需部署)
  • 远程设备访问你本机跑的调试服务
  • 做 webhook / OAuth 回调时,需要一个公网可访问地址

总结

如果你是 macOS 开发者,这类菜单栏小工具往往是“装上就离不开”的生产力增强器,它最终给开发者提供的是一种“端口层面的秩序感”:你知道哪些端口在用、为什么在用、如何释放、以及某些连接该如何持续维护。而 PortKiller 更进一步,还把 “Kubernetes Port Forward” 与 “Cloudflare Tunnel” 也纳入了端口管理视角,让你可以进一步的发现和管理这些端口和连接。