Port Radar 是一款常驻 macOS 菜单栏的端口与进程管理工具,主要用来查看 Mac 端口占用、找到对应进程,并直接处理没有正常退出的本地服务。
在 Mac 上做本地开发、跑 Docker,或者使用 AI Coding Agent 时,很容易碰到 Port 3000 is already in use、EADDRINUSE 这类报错。原因不一定出在代码本身,也可能只是之前启动的 Vite、Next.js、Python 或其他服务仍在后台运行,占着原来的端口。
传统排查方式通常是打开终端,用 lsof -i :3000 找到 PID,再根据情况结束对应进程。步骤不复杂的,但同时跑多个项目以后,很容易忘记某个端口到底属于哪个服务。Port Radar 把这些信息直接放进菜单栏里,这样就可以少开几次终端,也更方便判断应该处理哪个进程。
Mac 端口占用怎么查?Port Radar 把 lsof 做成了可视化界面
用终端排查端口时,lsof 通常会列出进程名、PID、端口和网络连接等信息。单独查一个端口的话不麻烦,但如果你同时运行多个前端、后端或本地 AI 项目时,只看进程名和 PID,有时很难马上判断它属于哪个服务。
Port Radar 会持续扫描本机正在监听的 TCP 端口,并把端口、对应进程、命令和相关路径信息整理到 macOS 菜单栏里。遇到端口冲突时,可以直接查看是谁占用了端口,而不用反复执行 lsof -i :3000、lsof -i :5173 等命令。
例如同时运行 Next.js、Vite 和 Python API 时,3000、5173、8000 等端口都可能处于监听状态。Port Radar 把这些原本需要在终端里逐个确认的信息集中展示,更适合频繁启动和关闭本地开发服务的场景。
因为Port Radar 不以 root 权限运行的,所以只能查看和操作当前登录用户权限范围内的进程。对常见的本地前端、后端和开发服务来说,这个权限范围通常已经能覆盖日常的端口冲突排查需求。
Port Radar 怎么处理占用端口的进程?
找到占用端口的进程后,Port Radar 可以直接在菜单栏里进行处理,不需要再复制 PID 回终端执行命令。
软件会优先发送 SIGTERM,让服务有机会正常完成清理后退出;如果进程没有响应,也可以选择强制终止。每次执行结束操作前都会要求确认,可以降低误操作的概率。
比如 Vite 开发服务器的终端窗口已经关掉,但对应进程仍在后台占着 5173;或者 Claude Code、Codex 等 AI Coding Agent 临时启动了开发服务,任务结束后端口没有及时释放,都可以直接从 Port Radar 里找到对应进程并处理。
Apple Intelligence 如何在本地解释未知进程?
当你看到一个陌生进程占着端口时,光知道 PID 往往还不够。你可能更关心的是:它属于哪个项目、为什么还在运行,现在结束会不会影响正在使用的服务。
Port Radar 会结合进程命令、路径和运行上下文,把这些信息交给 Apple Intelligence 在设备端解释。它的作用更接近“帮你看懂这个进程在做什么”,而不是替用户直接决定某个进程是否应该关闭。
这部分进程解释由 Apple Intelligence 在设备端完成,不需要配置第三方 AI API Key。对于不支持 Apple Intelligence 的设备,Port Radar 也不会自动切换到其他云端 AI 服务。
所以,如果你要使用Port Radar也有硬件要求限制的:Apple Intelligence 进程解释需要 Apple Silicon 芯片和 macOS 26+。Intel Mac 仍然可以使用 Port Radar 的基础端口扫描和进程管理功能,但不会提供这部分 AI 解释能力。
如何用 Cloudflare Quick Tunnel 分享 localhost?
当你的本地项目跑起来以后,有时还需要临时发给同事、客户预览,或者直接用手机测试。比如网站正在 localhost:3000 运行,正常情况下外部设备并不能直接访问这个地址。
常见做法是单独安装 ngrok、cloudflared 或其他公网隧道工具,再通过终端创建临时访问地址。Port Radar 把这一步直接放进了菜单栏:选中正在监听的端口后即可创建 Cloudflare Quick Tunnel,不需要再手动输入隧道命令。
建立连接后,cloudflared 会生成一个随机的 trycloudflare.com HTTPS 地址。把这个链接发出去,对方就可以临时访问当前运行在 localhost 上的服务。用来给同事看页面、让客户确认 Demo,或者在手机上测试本地网页都比较方便。
Quick Tunnel 临时使用时不需要提前创建 Cloudflare 账号,也不用配置固定域名和完整的 Cloudflare Tunnel。不过它主要面向开发、测试和临时预览,存在并发请求和部分连接方式方面的限制,不适合作为长期运行的生产环境入口。
如果项目需要固定域名、访问控制、长期在线或承载正式业务流量,更适合配置完整的 Cloudflare Tunnel,或者直接部署到正式的托管平台和服务器。
Port Radar 的系统要求和使用限制
Port Radar 的基础功能使用门槛不高,但 AI 进程解释、安装方式和公网分享都有各自的限制,安装前可以先看一下自己的硬件情况:
- 系统版本:端口扫描和进程管理功能需要 macOS 14 或更高版本。
- 首次运行:当前 DMG 尚未完成 Apple 官方公证。如果被 Gatekeeper 拦截,需要前往「系统设置 → 隐私与安全性」手动允许打开。
- 进程权限:Port Radar 不以 root 身份运行,只能查看和操作当前用户权限范围内的进程。
- 公网分享:Cloudflare Quick Tunnel 更适合临时测试、Demo 和真机预览,不适合作为长期运行的生产环境入口。
- 项目阶段:Port Radar 目前仍处于早期开发阶段,后续功能和兼容性可能随版本更新变化。
Port Radar 没有通过 Mac App Store 分发,和它需要读取及操作其他进程有关。App Store 的 App Sandbox 会限制应用检查其他进程以及向进程发送信号,而这些正是 Port Radar 用来识别和结束占用端口进程的核心能力。
目前可以通过官网和 GitHub 获取安装包。如果不想直接运行未公证的 DMG,也可以先查看源码,再按仓库提供的方式自行编译。项目采用 Apache-2.0 协议开源,安装和构建步骤以当前版本 README 为准。
Port Radar 适合哪些人?
Port Radar 更适合经常在 Mac 上跑本地开发服务的人。比如同时使用 Vite、Next.js、Python API、Docker,或者通过 Claude Code、Codex、Cursor 等 AI 开发工具启动临时服务,项目一多,端口冲突和后台进程没有及时退出的情况也会跟着增加。
它处理的主要是一些很具体的小问题:3000 被哪个进程占了、5173 为什么还没释放、后台的 Node 进程属于哪个项目,以及刚跑起来的 localhost 怎么临时发给同事或手机访问。这些事情用终端都能解决,但 Port Radar 把查端口、看进程、结束服务和临时分享集中到了菜单栏里。
如果平时已经习惯直接使用 lsof、ps、kill 和 cloudflared,Port Radar 更多是省去重复输入命令和切换终端的步骤,并不会提供一套完全不同的端口管理方式。对于基本不运行本地开发服务的 Mac 用户,它的用途则比较有限。

评论(0)