# Rust Port Kill (rpk)
一个专为 Windows 平台设计的命令行工具,用于管理和监控系统中的监听端口和进程。
## 功能特性
- 📊 **端口监控**: 显示所有监听端口的详细信息
- 🔍 **详细信息**: 展示端口占用、应用程序、进程ID、完整启动参数等
- 📈 **资源监控**: 实时显示CPU和内存使用情况
- ⚡ **进程管理**: 强制终止占用指定端口的进程
- 🔒 **管理员权限**: 自动请求管理员权限以确保完整功能
- 🎨 **友好界面**: 彩色输出和表格化显示
- 📝 **启动参数**: 获取真实的命令行启动参数(使用wmic和PowerShell)
## 安装和使用
### 编译要求
- Rust 1.70+
- Windows 操作系统
- Visual Studio Build Tools 或 Microsoft Visual Studio (用于MSVC工具链)
### 编译
```bash
git clone https://github.com/yourusername/rust-port-kill.git
cd rust-port-kill
cargo build --release
```
编译后的可执行文件位于 `target/release/rpk.exe`
### 使用方法
#### 显示所有监听端口
```bash
rpk
```
#### 显示指定端口详细信息
```bash
# 显示端口 8080 的详细信息
rpk --port 8080
# 使用短命令
rpk -p 8080
```
#### 终止占用端口的进程
```bash
# 终止占用端口 8080 的进程(需要确认)
rpk --port 8080 --kill
# 使用短命令
rpk -p 8080 -k
```
### 输出示例
```
当前监听的端口:
┌────────┬─────────────────┬────────┬──────────┬─────────────┬─────────────────────────────────┐
│ 端口 │ 应用程序 │ 进程ID │ CPU使用率 │ 内存使用 │ 启动参数 │
├────────┼─────────────────┼────────┼──────────┼─────────────┼─────────────────────────────────┤
│ TCP:8080 │ node.exe │ 1234 │ 2.1% │ 45.2 MB │ "C:\Program Files\nodejs\node..." │
├────────┼─────────────────┼────────┼──────────┼─────────────┼─────────────────────────────────┤
│ TCP:3306 │ mysqld.exe │ 5678 │ 8.7% │ 156.8 MB │ mysqld.exe --defaults-file=my... │
└────────┴─────────────────┴────────┴──────────┴─────────────┴─────────────────────────────────┘
总结: 共发现 2 个监听端口
```
## 命令行选项
- `-p, --port <端口号>`: 指定要查询的端口号
- `-k, --kill`: 强制终止占用指定端口的进程(需要与--port一起使用)
- `-h, --help`: 显示帮助信息
- `-V, --version`: 显示版本信息
## 系统要求
- Windows 10 或更高版本
- 网络连接查询权限
**权限管理**: 程序会自动检测是否具有管理员权限,如果没有会提示用户提升权限。
## 安全注意事项
- 程序会在启动时自动检测管理员权限,如果缺少权限会提示用户提升
- 使用 `--kill` 选项前请谨慎确认,强制终止进程可能导致数据丢失
- 建议在生产环境中使用前先在测试环境验证
## 故障排除
### 常见问题
1. **权限不足错误**
- 确保以管理员身份运行命令提示符
- 检查UAC设置是否允许程序提升权限
2. **无法获取某些进程信息**
- 某些系统保护进程可能无法访问
- 确保防火墙没有阻止程序的网络访问
3. **编译错误**
- 确保安装了正确版本的Rust工具链
- 检查是否安装了必要的Windows SDK
## 技术实现
- 使用 Rust 语言开发
- 通过调用 Windows 内置命令(netstat、tasklist、taskkill)获取系统信息
- 支持TCP和UDP协议
- 兼容性更强,避免复杂的 Windows API 调用
- 自动权限管理,使用 `is_elevated` crate 检测和提升权限
## 许可证
本项目采用 MIT 许可证。详见 [LICENSE](LICENSE) 文件。
## 贡献
欢迎提交 Issue 和 Pull Request!
## 作者
- Your Name <your.email@example.com>