AcoranGonzalezMoray/TraceTUI
GitHub: AcoranGonzalezMoray/TraceTUI
TraceTUI 是一个终端工具,用于实时网络监控、连接分析和进程管理,帮助用户快速识别可疑活动并进行深入调查。
Stars: 0 | Forks: 0
# TraceTUI
### 面向网络与进程调查的现代化终端智能工具
[](https://www.rust-lang.org/)
[](LICENSE)
[](CONTRIBUTING.md)
[](#-安装说明)
## 功能特性
### 实时网络智能
- **深度监控**:以亚秒级延迟追踪活动的 TCP/UDP 连接
- **端口过滤**:排除常用端口(80/443)以专注于异常流量
- **地理定位**:使用 ip-api.com 为远程连接端点提供可视化地理指示
- **批量 GeoIP 查询**:高效的批量 IP 查询,提升性能
- **排序与搜索**:通过实时搜索(`/` 键)在数百个连接中导航
- **过滤高风险**:仅显示可疑连接(`F` 键)
### 高级进程管理
- **系统枚举**:完整的进程可见性,包括路径和命令行
- **资源追踪**:每个进程的实时 CPU 和内存使用率
- **安全终止**:通过多步确认终止可疑进程(`X` 键)
- **连接终止**:终止某个进程的所有连接(`-` 键)
- **窗口集成**:(仅限 Windows)提取应用程序图标和元数据
- **剪贴板集成**:将进程路径复制到剪贴板(`Ctrl+C` 或 `C` 键)
- **在线搜索**:在线搜索进程信息(`G` 键)
### 深度调查套件
- **IP 调查**:对远程 IP 进行详细分析,包括:
- 地理位置(城市、国家、坐标)
- ISP 和组织详情
- ASN 和网络信息
- 时区和连接类型(移动/代理/托管)
- **DNS 查询**:正向和反向 DNS 解析(`nslookup`/`dig`)
- **网络诊断**:
- Ping 延迟测量
- 带地理跳点映射的 Traceroute
- WHOIS 记录查询
- **风险评估**:基于以下因素的自动化风险评分:
- 域名/进程不匹配检测
- 网络匿名性指标(代理、VPN、Tor)
- 延迟异常
- 托管提供商和移动网络检测
- **可视化映射**:连接路由和端点的交互式地图视图
### 自动化批量分析
- **风险评分**:检测可疑网络模式和孤立进程
- **启发式分析**:基于连接频率和行为识别威胁
- **过滤模式**:自动过滤已知安全的签名进程以突出显示未知进程(`H` 键)
- **JSON 导出**:将完整分析导出为带时间戳的 JSON 文件(`S` 键或操作面板 #5)
- **暂停/恢复**:临时停止后台分析(`R` 键)
- **手动刷新**:触发立即分析更新(`Ctrl+R` 键)
### 防火墙管理
- **逐连接阻止**:选择单个连接通过 Windows 防火墙进行阻止
- **已阻止 IP 查看器**:查看和解除之前阻止的地址
- **批量操作**:一次阻止/解除多个连接
- **防火墙模式**:切换防火墙管理(`B` 键或操作面板 #7)
### 用户体验
- **全面输入支持**:全面的键盘快捷键和鼠标交互
- **自适应布局**:根据终端大小自动缩放面板
- **多语言支持**:内置 i18n,支持 9 种语言环境(EN、ES、FR、DE、IT、PT、JA、ZH、RU)(`L` 键或操作面板 #8)
- **Nerd Font 支持**:可选 JetBrains Mono Nerd Font 以增强图标显示
- **系统托盘**:Windows 系统托盘集成,支持后台运行
- **更新检查**:自动检查 GitHub releases 的版本更新
- **安装助手**:用于轻松设置和依赖安装的脚本
### 调查面板
- **连接视图**:带过滤功能的网络连接详细表格
- **风险分析**:进程风险评分和威胁指标
- **时间线视图**:历史活动跟踪和趋势
- **地图视图**:连接路由的地理可视化
- **进程详情**:可执行路径、签名和资源使用情况
- **防火墙管理**:连接阻止和 IP 白名单/黑名单
## 外部依赖
TraceTUI 在运行时连接到以下外部服务:
| 服务 | URL | 用途 |
|---|---|---|
| **ip-api.com** | `http://ip-api.com/json` | 远程 IP 地址的地理定位(城市、国家、ISP、坐标)。用于调查面板和连接位置列。 |
| **ip-api.com(批量)** | `http://ip-api.com/batch` | 分析期间的批量 GeoIP 查询,以提高性能。 |
| **GitHub API** | `https://api.github.com/repos/.../releases/latest` | 版本检查 — 在启动时比较本地版本与最新的远程 release。 |
| **GitHub Releases** | `https://github.com/.../releases/latest` | 当用户接受更新对话框中的更新时,打开下载页面。 |
| **Google Search** | `https://www.google.com/search?q=` | 通过“在线搜索”操作打开所选进程名称的网页搜索。 |
| **Nerd Fonts** | `https://github.com/ryanoasis/nerd-fonts/releases/.../JetBrainsMono.zip` | 当用户选择从 Nerd Font 对话框安装时,下载 JetBrainsMono Nerd Font。 |
| **WHOIS 服务** | 各种 | 查询区域 WHOIS 注册机构以获取域名和 IP 注册信息。 |
所有 URL 集中在 [`resources/external_urls.json`](resources/external_urls.json) 中,并在编译时通过 `include_str!` 加载。
## 安装说明
### 前置条件
- **Rust 工具链**(v1.70+):[安装 Rust](https://rustup.rs/)
- **管理员权限**:建议用于防火墙操作和进程终止
- **Nerd Font**:建议用于最佳图标显示(JetBrains Mono Nerd Font)
### 从 Release 二进制文件安装
预构建的二进制文件可在 [Releases 页面](https://github.com/AcoranGonzalezMoray/TraceTUI/releases) 获取。
**Windows:**
1. 下载 `tracetui-x86_64-pc-windows-gnu.zip`
2. 解压并运行 `installOrUpdate.ps1`(将 `tracetui` 添加到用户 PATH)
3. 重启终端并运行 `tracetui`
**Linux:**
1. 下载 `tracetui-x86_64-unknown-linux-gnu.tar.gz`
2. 解压:`tar xzf tracetui-x86_64-unknown-linux-gnu.tar.gz`
3. 运行安装脚本:`chmod +x installOrUpdate.sh` 然后 `sudo sh ./installOrUpdate.sh`
4. 运行 `tracetui`
### 从源码构建
```
git clone https://github.com/AcoranGonzalezMoray/TraceTUI.git
cd TraceTUI
cargo build --release
./target/release/tracetui
```
## 快速入门
| 操作 | 快捷键/输入 |
| :--- | :--- |
| 面板导航 | `Tab` / `BackTab` |
| 选择应用/操作 | `Up` `Down` |
| 确认/进入 | `Enter` |
| 搜索 | `/` 然后输入查询 |
| 切换过滤(高风险) | `F` |
| 切换猎手模式 | `H` |
| 暂停/恢复分析 | `R` |
| 手动批量刷新 | `Ctrl+R` |
| 导出为 JSON | `S` 或操作面板 #5 |
| 防火墙模式 | `B` 或操作面板 #7 |
| 显示语言模态框 | `L` 或操作面板 #8 |
| Nerd 字体对话框 | 操作面板 #9 |
| 中心标签页:连接 | `1` |
| 中心标签页:风险 | `2` *(需要选中的应用)* |
| 中心标签页:时间线 | `3` |
| 切换地图视图 | 操作面板 #0 *(调查期间)* |
| 终止选中进程 | `X` 或操作面板 #1 |
| 终止所有连接 | `-` 或操作面板 #2 |
| 在线搜索 | `G` 或操作面板 #3 |
| 复制进程路径 | `Ctrl+C` 或 `C` 或操作面板 #4 |
| 切换过滤 | `F` 或操作面板 #6 |
| 退出 | `Q` 或 `Esc` |
## Rust 命令
```
# 构建
cargo build # Debug build
cargo build --release # Release build
# 运行
cargo run # Run in debug mode
cargo test # Run all tests
# Lint
cargo fmt # Format code
cargo clippy # Lint with clippy
```
## 架构设计
### 项目结构
```
resources/
└── external_urls.json # Centralized external API URLs (loaded at compile time)
scripts/
├── installOrUpdate.ps1 # Windows first-time install script
├── installOrUpdate.sh # Linux first-time install script
├── tracetui.desktop # Linux desktop entry
└── icon_extractor.ps1 # Windows icon extraction helper
src/
├── main.rs # Entry point
├── app/
│ ├── mod.rs # App struct, state, core logic
│ ├── analysis.rs # Auto-analysis, geo lookup, investigation
│ ├── firewall_service.rs # Firewall panel state machine
│ ├── grouping.rs # ConnectionGrouper: process→connection→risk
│ ├── input.rs # Key/mouse event dispatch, actions
│ ├── installation.rs # Net-tools installation helpers
│ ├── investigation_service.rs # Deep-dive IP investigation
│ ├── io.rs # Terminal setup/restore
│ ├── nerdfont.rs # Nerd Font detection
│ ├── risk.rs # RiskAnalyzer: scoring engine
│ ├── types.rs # Core enums, structs, traits
│ ├── network/
│ │ ├── mod.rs # NetworkAnalyzer, connection parsing
│ ├── process/
│ │ ├── mod.rs # ProcessManager, ProcessInfo
│ └── ui/
│ ├── mod.rs # UI render dispatch
│ ├── center_panel.rs
│ ├── dialogs.rs
│ ├── firewall.rs
│ ├── footer.rs
│ ├── header.rs
│ ├── sidebar_left.rs
│ ├── sidebar_right.rs
│ ├── theme.rs # Glassmorphic theme
│ └── widgets.rs # Custom widgets (scrollbar, etc.)
├── resources.rs # Centralized external URLs (Lazy标签:DFIR, DNS枚举, GeoIP查找, Rust开发, TUI应用, 可疑活动分析, 可视化界面, 安全研发, 安全调查, 安全调查工具, 端口过滤, 系统取证, 系统枚举, 终端界面, 终端监控, 网络分析工具, 网络安全, 网络安全工具, 网络情报, 网络调查, 资源跟踪, 进程终止, 连接分析, 通知系统, 隐私保护, 高性能监控, 高风险连接过滤