【开源推广】用 Rust 写了个端口管理 CLI —— 告别 "谁占了我的端口?"

本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容: 我的帖子已经打上 开源推广 标签: 是 我的开源项目完整开源,无未开源部分: 是 我的开源项目已链接认可 LINUX DO 社区: 是 我帖子内的项目介绍,AI生成、润色内容部分已截图发出: 是 以上选择我承诺是永久有效的,接受社...
【开源推广】用 Rust 写了个端口管理 CLI —— 告别 "谁占了我的端口?"
【开源推广】用 Rust 写了个端口管理 CLI —— 告别 "谁占了我的端口?"
本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容:
  • 我的帖子已经打上 开源推广 标签:
  • 我的开源项目完整开源,无未开源部分:
  • 我的开源项目已链接认可 LINUX DO 社区:
  • 我帖子内的项目介绍,AI生成、润色内容部分已截图发出:
  • 以上选择我承诺是永久有效的,接受社区和佬友监督:

以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出


做开发的同学应该都经历过这种场景:

启动项目,报 EADDRINUSE —— 端口被占。
然后开始 lsof -i :3000netstat -tlnptasklist…… 每个系统命令还不一样。

于是我写了 Port Whisperer —— 一个跨平台的端口管理 CLI,一条命令搞定所有端口问题。

核心能力

ports                    # 只看开发端口(自动过滤 Spotify、Slack 等系统进程)
ports --all              # 看全部
ports 3000               # 详细检查 3000 端口(PID、框架、项目路径、Git 分支、内存、进程树)
ports check 3000 5173    # 启动前检查端口是否空闲,退出码 0/1,可写进脚本
ports kill 3000          # 杀掉占用端口的进程
ports logs 3000 -f       # 自动找到日志文件并 tail
ports clean              # 清理孤儿/僵尸进程
ports watch              # 实时监听端口变化
ports open 3000          # 直接在浏览器打开 localhost:3000

几个亮点

  1. 框架自动识别:Next.js、Vite、Django、Rails、Go、Rust……30+ 框架无需配置自动识别,通过 package.json 依赖、配置文件标记、命令行参数多策略检测

  2. 开发者视角过滤:默认只显示开发相关端口,Spotify、Slack、浏览器等系统进程自动过滤,不干扰视线

  3. 跨平台统一体验:macOS / Linux / Windows 原生实现,不依赖特定系统工具,缺 lsof 也能跑

  4. Rust 性能:典型命令 44-100ms,并发获取进程信息、工作目录、Docker 映射

  5. Docker 支持:自动映射容器名、镜像、框架

  6. JSON 输出--json 参数支持,方便接入 CI/CD 或自定义脚本

部分截图

image
image

github.com

GitHub - EasyXdc/PortsWhisper-Rust: 🚀 A fast Rust CLI for discovering port owners,...

🚀 A fast Rust CLI for discovering port owners, inspecting processes, tailing logs, and monitoring local port activity.

:laughing:望各位佬友小星星支持一下!!

6 个帖子 - 6 位参与者

阅读完整话题

来源: linux.do查看原文