strix-tool/strix-talon
GitHub: strix-tool/strix-talon
一款轻量级的跨平台应用程序出站流量监控与防火墙规则管理工具,无需内核驱动即可实现对进程网络连接的实时可视化与封禁。
Stars: 0 | Forks: 0
# Strix Talon
[](LICENSE)
[](#安装说明)
[](SECURITY.md)

Strix Talon 是开源的 **[Strix Advanced Tools](https://github.com/strix-tool)** 的一部分,
这是一套适用于 Windows 和 Linux 的隐私与安全工具集。
## 为什么需要它?
大多数机器都有充足的*入站*保护,却几乎无法看到自己的应用程序在*出站*时发送了什么。Talon 弥补了这一空白:它实时显示每个具有活动出站连接的进程,以及它们的确切去向;在出现新目标的那一刻提醒你;并允许你立即切断某个应用或地址。
关键的设计选择在于 Talon **不携带任何内核驱动**。它不需要你信任并签名一个 WFP callout 或自定义的 netfilter 模块,而是将你创建的每条规则直接转换为操作系统**自带的**防火墙——在 Windows 上通过 `netsh advfirewall` 使用 Windows Defender Firewall,在 Linux 上通过 `nft`——并将它创建的所有规则保存在一个私有的、命名空间化的区域中,以便可以干净地移除,且绝不会破坏你现有的防火墙配置。
## 功能简介
- **实时应用程序出站监控** — 列出每个具有活动出站连接的应用程序,以及它正在通信的远程 IP / 端口,每约 2 秒刷新一次。只读且无需特殊权限。
- **新目标提醒** — 在目标首次出现的那一刻将其标记出来,这样当一个应用悄悄连接到一个新 endpoint 时就会立刻引人注目。
- **封禁应用或地址** — 通过一个操作封禁程序的出站流量 (Windows) 或特定的远程 IP (所有平台);解除封禁也同样简单。
- **全局熔断开关** — 通过一个开关封禁*所有*出站流量(环回接口除外),可选择保持本地 LAN 可达。环回接口始终豁免,因此该开关永远不会将你锁定在自己的机器之外。
- **一目了然的入站暴露情况** — 显示本地 **LISTENING** 套接字,以及每个套接字是绑定到 `0.0.0.0`(暴露给网络)还是 `127.0.0.1`(仅限本地),让你可以看到哪些流量可以*进入*该主机,而不仅仅是流出。
- **一键还原** — Talon 创建的每条规则都在独立的命名空间内;`revert` 会**仅**移除 Talon 的规则,而保持防火墙的其余部分不受影响。
## 封禁的工作原理(OS 防火墙,无需驱动)
Talon 本身不会拦截数据包,也不安装任何内核组件。每条规则都表示为一个 **argv 列表**(绝不是 shell 字符串),并交给平台原生的防火墙处理:
- **Windows** — 规则将通过 `netsh advfirewall` 添加到 **Windows Defender Firewall**。规则名称以 `StrixTalon-` 为前缀,因此很容易查找、审计和移除。
- **Linux** — 规则存在于一个由 `nft` 管理的**私有 `strixtalon` nftables 表**中。你现有的表和链永远不会被修改。
因为 Talon 写入的所有内容都在独立的命名空间内,`revert` 可以全面拆除 Talon 的规则,而绝不会触及你(或你的发行版)创建的任何规则。
## 仓库结构
| 文件 | 介绍 |
|---|---|
| `strix_talon_core.py` | 纯引擎 + 防火墙 **argv** 构建器(连接/监听器枚举、新目标比对、规则构建、验证)。 |
| `StrixTalon.py` | PySide6 桌面仪表板 — 一个现代化、实时监控和规则更改的 UI。 |
| `talon.py` | Linux CLI:`watch` / `list` / `listeners` / `rules` / `block` / `unblock` / `killswitch` / `revert`。 |
| `tests/test_talon.py` | 自运行测试套件 — `python tests/test_talon.py`。 |
| `requirements.txt` | GUI 依赖项:PySide6, psutil。 |
## 安装说明
**从源码运行(任何 OS):**需要 Python 3。GUI 需要 **PySide6** 和 **psutil**;CLI 和测试只需要标准库加上 **psutil**。
```
git clone https://github.com/strix-tool/strix-talon
cd strix-talon
pip install -r requirements.txt
# GUI (Windows 和 Linux)
python StrixTalon.py
# CLI (Linux)
sudo python3 talon.py watch
```
### Windows
准备好后,请从
[Releases](https://github.com/strix-tool/strix-talon/releases) 页面下载安装程序,
或者从源码运行 `StrixTalon.py`。监控是只读的,不需要任何权限;
**更改防火墙规则需要管理员权限**,因此 GUI 会提供使用绝对解释器路径(而不是 `PATH`)重新以高权限启动的功能。
### Linux (Ubuntu / Debian)
准备好后,请从 [Releases](https://github.com/strix-tool/strix-talon/releases)
安装 `.deb` 包,或从源码运行。监控不需要特殊权限;
更改防火墙规则的命令使用 `nft`,并通过 `sudo` 运行。
## 用法
### GUI (`StrixTalon.py`)
```
python StrixTalon.py
```
一个现代化的单窗口仪表板:一个包含应用及其出站目标的实时表格(新目标会被高亮显示),一个显示 `0.0.0.0` 与 `127.0.0.1` 暴露情况的本地监听套接字面板,针对每行的**封禁 / 解除封禁**操作,全局**熔断开关**,以及一键**还原**。
### CLI (`talon.py`)
```
python3 talon.py watch # live per-app egress monitor (read-only)
python3 talon.py list # snapshot of current outbound connections
python3 talon.py listeners # local LISTENING sockets + exposure
sudo python3 talon.py block 203.0.113.5 # block outbound to a remote IP (nft)
sudo python3 talon.py unblock 203.0.113.5 # remove that rule
sudo python3 talon.py rules # list Talon's own rules
sudo python3 talon.py killswitch on # block all outbound except loopback
sudo python3 talon.py killswitch on --allow-lan # …but keep the LAN reachable
# 按应用程序屏蔽(“此应用程序可能永远无法连接互联网”)在 Windows 的
# GUI 中可用;Linux CLI 按地址屏蔽(nft 无法按程序匹配)。
sudo python3 talon.py killswitch off # lift the kill-switch
sudo python3 talon.py revert # remove ALL Talon rules, restore your firewall
```
监控、列表和列出监听器是只读的,且不需要特殊权限;只有添加或移除规则的命令(`block`、`unblock`、`killswitch`、`revert`)才需要管理员/root 权限。
## 安全性
防火墙工具会更改敏感的 OS 安全设置,因此其设计核心在于确保它不会对你造成伤害。Talon **不携带任何内核/WFP 驱动** —— 执行完全委托给 OS 自带的防火墙。每条规则都处于**独立的命名空间内**(Windows 上的 `StrixTalon-` 规则名称,Linux 上私有的 `strixtalon` nftables 表),因此 `revert` **仅**移除 Talon 的规则,绝不会破坏你现有的规则集。这里**不存在自我锁定** —— 环回接口始终豁免,熔断开关会保持环回接口(以及可选的 LAN)可达,并且每一次更改都可以一键还原。**没有代码注入** —— 每条防火墙命令都是一个 argv 列表,目标 IP 通过 `ipaddress` 进行验证,并且在构建规则之前,程序路径必须是真实存在的文件。它以**最小权限**运行 —— 可见性是只读的,且不需要特殊权限;只有规则更改才需要管理员/root 权限。请在 **[SECURITY.md](SECURITY.md)** 中阅读完整的威胁模型。发现了漏洞?请参阅其中的报告部分。
## 已知限制
- **v1 版本没有交互式的允许/拒绝弹窗。**“允许或拒绝*此*新连接”的提示(Little Snitch 的标志性功能)在 Windows 上需要 WFP callout 驱动程序 / 在 Linux 上需要 NFQUEUE,这**不在 v1 的开发范围内**。Talon v1 提供的是实时可见性 + 基于规则的 OS 防火墙封禁 + 新目标提醒。
- **按应用程序封禁仅限 Windows。**`netsh` 根据程序路径匹配出站规则。在 Linux 上,`nft`/`iptables` 原生不支持将运行中的进程映射到规则,因此在 Linux 上 Talon 是通过**目标 IP** 进行封禁的 —— 并对此有明确提示。
- **未签名的 Windows 构建可能会触发 SmartScreen / AV。**防火墙工具会触及安全敏感设置,因此未签名的构建版本在首次运行时可能会被标记;请验证来源并选择**更多信息 → 仍要运行**。
## 致谢
Strix Talon 不调用任何第三方服务,也不捆绑外部防火墙代码;它构建于标准库的 `ipaddress` 模块、`psutil`、PySide6 以及 OS 自带的防火墙工具之上。致谢与参考:**[ACKNOWLEDGEMENTS.md](ACKNOWLEDGEMENTS.md)**。
## 开源协议
[MIT](LICENSE) © 2026 Strix Advanced Tools。请仅在你拥有或被授权管理的机器上使用。
标签:出站流量管理, 子域名枚举, 系统安全, 网络安全, 逆向工具, 防火墙, 隐私保护