# Netstat Cat 网络监控工具 > 一款功能强大的网络监控工具,具备实时连接跟踪和高级过滤功能
Light theme on macOS
Dark theme on macOS
高级过滤 on macOS
Light theme on Windows
Dark theme on Windows
## 快速开始
### 系统要求
- macOS 10.15+ 或 Windows 10+
- Node.js 20+
- npm
- Rust(通过 [rustup](https://rustup.rs/) 安装)
### 安装步骤
```bash
# 克隆仓库
git clone https://github.com/XueshiQiao/netstat-cat.git
cd netstat-cat
# 安装依赖
npm install
```
### 开发环境
```bash
# 启动 Tauri 开发服务器(编译 Rust 后端 + 启动 Vite)
npm run tauri:dev
# 运行类型检查
npm run typecheck
# 运行代码检查
npm run lint
```
### 构建应用
```bash
# 构建当前平台
npm run tauri:build
```
## 使用指南
### 基础监控
1. 启动应用程序查看所有活跃的网络连接
2. 使用过滤按钮快速按协议、IP版本或连接状态筛选
3. 启用自动刷新进行实时监控
### 高级过滤
- **简单搜索**: 输入进程名、PID 或端口(如 `chrome`、`8080`)
- **通配符**: 使用 `*` 进行模式匹配(如 `*.exe`)
- **端口范围**: 使用范围如 `80-443`
- **语义查询**: 使用高级语法如 `process=chrome && lport>1000`
完整过滤文档请参考 [filters_cn.md](filters_cn.md)。
## 技术架构
### 前端技术栈
- **React 19** 配合 TypeScript
- **Tailwind CSS** 样式框架
- **React Virtuoso** 虚拟化滚动
- **Vite** 前端构建工具
### 后端(Rust)
- **Tauri v2** 原生桌面集成(使用系统 WebView,二进制文件约 5MB)
- **netstat2** crate 跨平台 socket 枚举
- **sysinfo** crate PID 到进程名解析
- **Tauri IPC** 前端与 Rust 后端通信
### 性能特性
- 进程路径延迟加载
- 虚拟化表格渲染
- 高效缓存策略
- 优化的系统调用
## 开发指南
### IDE 设置
推荐: [VSCode](https://code.visualstudio.com/) + [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) + [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode)
### 项目结构
```
netstat-cat/
├── src/ # React 前端
│ ├── App.tsx # 主界面组件
│ ├── main.tsx # 入口文件
│ ├── assets/ # CSS 和图片
│ └── utils/ # 查询解析器、进程缓存
├── src-tauri/ # Rust 后端
│ ├── src/
│ │ ├── lib.rs # Tauri 应用配置与命令注册
│ │ ├── netstat.rs # 网络 socket 获取逻辑
│ │ └── process_info.rs # 数据结构
│ ├── Cargo.toml
│ └── tauri.conf.json # Tauri 配置
├── index.html
├── vite.config.ts
└── resources/ # 图标和权限配置
```
### 脚本命令
- `npm run tauri:dev` - 启动 Tauri 开发模式
- `npm run tauri:build` - 生产构建
- `npm run typecheck` - TypeScript 类型检查
- `npm run lint` - ESLint 代码检查
- `npm run format` - Prettier 代码格式化
## 贡献指南
1. Fork 仓库
2. 创建功能分支
3. 进行更改
4. 运行测试和代码检查
5. 提交 Pull Request
## 许可证
本项目采用 GNU General Public License v3.0 许可证 - 详见 [LICENSE](LICENSE) 文件。
## 相关文档
- [过滤指南 (英文)](filters_en.md)
- [过滤指南 (中文)](filters_cn.md)