返回更新列表
新发布Jul 26, 2026

netwatch v0.27.0

终端中的实时网络诊断工具。一条命令,零配置,即时可见。

分享

NetWatch

一款终端网络监控工具,可帮助识别连接背后的进程、解密你持有密钥的 TLS 流量,并告诉你哪里出了问题以及如何修复。

crates.io downloads Release Packaging status Platform License

Terminal Trove Tool of The Week

NetWatch 的密集视图:镜像盲文吞吐量图表,下载在轴上方、上传在轴下方,各接口速率带迷你趋势线,四跳延迟预算,以及一个连接表,显示所选套接字的内核 TCP 状态

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 解析器命令支持对管理员确认的非托管常规文件进行临时更改;托管解析器仍不受支持。演示仍模拟应用和验证恢复。启动时会检查现有日志,不可读或损坏的恢复记录会阻止进一步的宿主机更改。只有当规则自身的成功条件持续满足时,问题才会关闭。不涉及模型。工作原理、设计。

一个慢速解析器达到其基线的 33 倍,三个排序的原因,一个按键绑定的修复,以及一旦 dns.rtt_p50 保持在 5ms 以下持续 60 秒后问题自行关闭

解密你控制的 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 导出暴露的指标和抓取配置
变更日志每个版本

相关项目

分类