diff --git a/README.md b/README.md index e1bd6f7..8f4e4d7 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,10 @@
++ English | 简体中文 +
+
+
+ 面向终端的进程级网络监控工具:实时呈现 TCP、UDP、QUIC 连接,自带深度包检测,默认沙箱隔离运行。 +
+ + + ++ English | 简体中文 +
+ +
+
+
+ 实时洞察机器对外发起的每一条连接:谁在使用它、走的是什么协议。无需 tcpdump,无需 X11 转发,也不必把 root 权限传递下去。 +
+ +## 功能特性 + +- **进程级归属识别**:每一条 TCP、UDP、QUIC 连接都能追溯到所属进程。Linux 使用 eBPF,macOS 使用 PKTAP,Windows 与 FreeBSD 则走原生 API。Wireshark 与 tcpdump 做不到这一点;`netstat` / `ss` 也无法展示实时状态。 +- **深度包检测**:无需外部解析器即可识别 HTTP、带 SNI 的 HTTPS/TLS、DNS、SSH、QUIC、NTP、mDNS、LLMNR、DHCP、SNMP、SSDP 及 NetBIOS。 +- **安全沙箱**:Linux 5.13+ 使用 Landlock,macOS 使用 Seatbelt,Windows 通过 token 降权 + job-object 阻止子进程创建。libpcap 初始化完成后立即丢弃特权。详见 [SECURITY.md](SECURITY.md)。 +- **TCP 网络分析**:实时统计重传、乱序包、快重传,既有逐连接视图也有汇总视图。 +- **智能连接生命周期**:按协议设置超时,以白 → 黄 → 红的颜色指示过期程度。按 `t` 可保留历史(已关闭)连接以便事后追溯。 +- **Vim / fzf 风格过滤**:支持 `port:`、`src:`、`dst:`、`sni:`、`process:`、`state:`、`proto:`,以及 `/(?i)pattern/` 形式的正则。 +- **GeoIP 增强**:基于本地 MaxMind GeoLite2 数据库查询国家信息,不发起任何网络请求。 +- **跨平台**:Linux、macOS、Windows、FreeBSD。 + +## 为什么选 RustNet? + +RustNet 填补了简单连接工具(`netstat`、`ss`)与数据包分析器(`Wireshark`、`tcpdump`)之间的空白: + +- **进程归属**:看清每条连接归哪个应用所有。Wireshark 看不到这一层,因为它只看包,不看 socket。 +- **以连接为中心的视图**:逐连接实时追踪状态、带宽与协议。 +- **SSH 友好**:TUI 可直接在 SSH 会话中运行,远端服务器上发生了什么一眼可见,不必转发 X11 或抓包再回传。 + +RustNet 与抓包工具是互补关系。用 RustNet 看清*谁在发起连接*;若要深入取证,可用 `--pcap-export` 抓取附带进程信息的数据包,再借 `scripts/pcap_enrich.py` 富化后,在 Wireshark 中结合完整的 PID 与进程上下文分析。参见 [PCAP 导出](USAGE.md#pcap-export) 与 [同类工具对比](ARCHITECTURE.md#comparison-with-similar-tools)。 + +基于 ratatui、libpcap、eBPF(libbpf-rs)、DashMap、crossbeam、ring、MaxMind GeoLite2 与 Landlock 构建。完整依赖清单见 [ARCHITECTURE.md](ARCHITECTURE.md#dependencies)。 + +| 概览 连接列表与实时统计、迷你折线图 ![]() |
+ 详情 逐连接展示 SNI、加密套件、GeoIP、DPI ![]() |
+
| 图表 流量曲线、应用分布、Top 进程 ![]() |
+ 接口 各接口 RX / TX 历史曲线、错误与丢包 ![]() |
+