这个项目能做什么

Throughline 是一个专门的 Linux 实用程序,旨在提供对网络活动的全面可见性,并提供对流量路由的直观控制。它使用 Rust 构建,没有第三方依赖,强调可审计性和安全性。该工具由两个主要界面组成:可视化屏幕和策略编辑器。 第一个屏幕显示主机上所有网络连接的实时地图,将每个连接归因于打开它的特定进程、服务或容器。它可视化从本地设备通过任何中间本地服务,再通过网络接口,最后到达远程目的地的路径。此视图有助于用户了解他们的机器正在与谁通信,以及如何通信,并区分由主机发起的出站连接和来自网络的入站请求。 第二个屏幕是一个拖放式编辑器,允许用户更改流量的去向。通过将程序拖入“直接出站”、“通过 VPN”或“通过 Tor”等类别,用户可以定义路由策略。界面清楚地解释了每个选择的含义,并预览了将生成的具体防火墙规则(nftables)和命令。最重要的是,不会自动应用任何更改。用户必须显式确认该操作,从而触发一个倒计时计时器(由 systemd 管理),如果在设定的时间内未确认,该计时器会自动恢复更改。这种“死人开关”机制可以防止意外锁定或灾难性的路由错误。 Throughline 依赖于读取系统文件(例如 `/proc` 和 `/etc/services`)来确定进程所有权、服务名称和连接方向。它不维护已知端口或代理的硬编码列表,而是从主机的当前状态动态推导事实。这种方法即使对于非标准或自定义服务也能确保准确性。该工具还包括强大的安全检查,拒绝生成会阻止用户自己的管理会话、创建路由循环或泄露 DNS 流量的规则。它被设计为仅在回环接口上本地运行,以确保敏感的网络拓扑数据不会暴露给网络。还提供了验证脚本,用于在隔离的网络命名空间中测试路由逻辑,并验证真实浏览器中的 UI 行为。