
netwatch v0.27.0
终端中的实时网络诊断工具。一条命令,零配置,即时可见。
NetWatch
一款终端网络监控工具,可帮助识别连接背后的进程、解密你持有密钥的 TLS 流量,并告诉你哪里出了问题以及如何修复。
netwatch --view dense。四个方框,无边框装饰,每个按键绑定都显示在边框上。下载从轴向上增长,上传向下增长。
单个二进制文件,无需配置。sudo netwatch 即可获得带 L7 解码的实时捕获、可用情况下的进程归属,以及一个诊断引擎——当学习到的基线被打破时它会开启一个问题,当修复持续有效时它会关闭该问题。
安装
brew install netwatch # macOS / Linux
nix-shell -p netwatch # NixOS / Nix
paru -S netwatch-tui-bin # Arch
scoop install netwatch # Windows(需要 Npcap)
cargo install netwatch-tui # 任何有 Rust 和 libpcap 头文件的地方
预编译二进制文件在发布页面。Linux x86_64/aarch64 二进制文件是静态的,内置了 libpcap,因此无需安装任何东西。还有一个针对运行 Debian 的较旧 Marvell Kirkwood NAS 设备(例如 Iomega ix2-dl)的 armv5te 构建——libpcap 以相同方式内置,但它链接 glibc 和 libatomic,因此需要 Debian 12(bookworm)或更新版本并安装 libatomic1。Windows 需要先安装 Npcap;从源码构建需要 libpcap-dev(Debian)、libpcap-devel(Fedora)或 libpcap(Arch)。详情见安装参考。
运行
netwatch # 接口、连接、配置。无需特权。
sudo netwatch # 在需要提升权限的地方启用捕获
netwatch --lite # 一个 80x24 屏幕
netwatch --view dense # 四个方框,130x44 或更大
1 到 9 和 0 切换标签页,V 循环切换三种视图,? 显示所有按键。要在 Linux 上无需 sudo 运行,一次性授予能力:sudo setcap 'cap_net_raw,cap_bpf,cap_perfmon+eip' "$(which netwatch)"(为什么以及何时需要重复执行)。
功能
诊断(标签页 9)。 按指标划分的基线,作用域限定于教会它们的网络;就绪需要 1,800 个不同样本,因此学习时间取决于探测节奏。25 条编目规则,其中 18 个已实现的诊断检测器和七个等待集成。运行时覆盖状态说明哪些输入可用、正在学习、已过期或未测量。抑制图将失效网关及其后果归入一个发现项。每个原因按将其与其他原因区分开的检查进行排序。自动 TUI 解析器更改仍不可用;诊断提供手动步骤。一个显式的 Linux 解析器命令支持对管理员确认的非托管常规文件进行临时更改;托管解析器仍不受支持。演示仍模拟应用和验证恢复。启动时会检查现有日志,不可读或损坏的恢复记录会阻止进一步的宿主机更改。只有当规则自身的成功条件持续满足时,问题才会关闭。不涉及模型。工作原理、设计。
解密你控制的 TLS。 将任何客户端的 SSLKEYLOGFILE 指向 NetWatch,其 TLS 1.3 会话的明文就会在数据包标签页中解码。与 Wireshark 相同的机制,因此仅适用于你持有密钥的流量。TLS 解密。
sudo netwatch # 打开数据包 (4)
SSLKEYLOGFILE=/tmp/keys curl https://example.com # 任何导出密钥的客户端
# 使用以下内容过滤标签页: decrypted:true
出口漂移。 出口标签页(0)学习每个进程访问哪些主机、自治系统和端口。Enter 将该基线提升为规则;下一个新目的地会以 drift 形式到达并发出警报。它只观察,从不阻止。在 strict = true 下,判定结果为 sni、ip、asn、ech、drift、no rule 和 undeclared,因为“按 AS 匹配”会接纳超大规模厂商运行的一切,表格应该如实说明。规则语言和导出模式。
进程归属。 平台套接字轮询、macOS 上的 PKTAP,以及 Linux 上可选的 eBPF kprobe(ebpf 特性)。归属可能缺失或过期,尤其是对于短生命周期流;Windows 使用自己的网络/进程工具。权限。
威胁检测。 C2 信标、端口扫描和 DNS 隧道在后台运行。严重警报会冻结飞行记录器,因此在你查看之前捆绑包就已存在。JA4 对每个 TLS 和 QUIC 握手进行指纹识别,以便你可以转向来自同一客户端的每个流。安全与取证、飞行记录器、JA4。
Linux 工作进程沙箱。 工作进程入口点在处理之前应用准备好的 Landlock 文件系统策略;捕获首先准备其设备。可写授权使用专用的应用程序目录。在沙箱运行中,eBPF 归属暂时禁用,等待 SDK 读取器钩子。网络访问保持不受限制,特权捕获/重启验证待定。范围和限制。
标签页
| # | 标签页 | 显示内容 |
|---|---|---|
| 1 | 仪表板 | 延迟磁贴、镜像吞吐量、承载它的链路、按进程汇总的连接 |
| 2 | 连接 | 每个套接字及其进程、PID、状态、GeoIP、RTT、重传 |
| 3 | 接口 | 地址、MTU、速率、错误、丢包 |
| 4 | 数据包 | 实时解码、TLS 1.3 解密、JA4、流跟踪、显示过滤器、PCAP 导出 |
| 5 | 统计 | 协议细分和握手时序直方图 |
| 6 | 拓扑 | 机器、网关、DNS、顶级主机、traceroute |
| 7 | 时间线 | 按 TCP 状态划分的连接,带警报 |
| 8 | 进程 | 每个进程的带宽 |
| 9 | 诊断 | 问题、原因、修复、验证关闭。从相同对象生成 report.md |
| 0 | 出口 | 学习到的目的地、提升的策略、漂移 |
三种视图,一次捕获
V 在它们之间循环切换而无需重启;收集器持续运行。
完整 是上面的十个标签页。
精简(--lite)适合 80x24:吞吐量、网关/DNS/互联网可达性、顶级通信者、六个按键。适用于到 Pi 的 SSH 会话或 tmux 分屏。
密集(--view dense)是主图。它需要 130x44,并可扩展到任何更大的尺寸。吞吐量是盲文,每个单元格两个样本,按高度着色,因此在你检查轴之前就能读出尖峰。连接表将所选行的详细信息(包括内核 cwnd、ssthresh、mss 和 rwnd)提升到其自身方框的顶部。1 到 4 将方框缩放到整个屏幕。密集和精简。
文档
| 能力矩阵 | 平台差异、诊断限制和验证范围 |
| 归属证据 | 身份、新鲜度、覆盖分母和受控结果 |
| Doctor 命令 | 只读设置报告、JSON 能力和可选捕获检查 |
| 参考 | 按键、过滤器、解码器、配置、权限、安全 |
| 设计 0.30 | 屏幕为何如此呈现 |
| 架构 | 运行时、源码映射、权限模型、如何构建和验证 |
| 出口 linting | 观察、提升、警告 |
| AI 洞察 | 诊断内部的可选 LLM 评论,默认关闭 |
| Prometheus 导出 | 暴露的指标和抓取配置 |
| 变更日志 | 每个版本 |