分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

daeuniverse/honk

运维与部署

一个早期 alpha 阶段的 Linux 透明代理引擎,用 eBPF 将局域网与主机流量转发到可配置的出站。

914
75
Rust
GPL-3.0
创建于 3 个月前

honk 是一个用 Rust 编写的实验性 Linux 透明代理引擎。它拦截 TCP 和 UDP 流量——既包括局域网转发流量,也包括主机自身发起的流量——并将其发往可配置的出站与分组。它借鉴了 dae 的 eBPF 数据通路与配置语法,以及 sing-box 的出站分组和 Clash API 模式,但属于独立实现,而非二者的移植 Capabilities 仓库。

实际改变什么

你不再需要为每个应用单独配置代理,而是在网络层安装 honk。它通过 TC eBPF 以及 dae0/daens 接口配合编译式路由来捕获流量,再应用 dae 语法的配置 启动指南 配置。出站包括 SOCKS5、Shadowsocks/2022、Trojan、AnyTLS、Hysteria2、TUIC、Juicity、VMess、VLESS、direct 和 block;分组包括 Selector、URLTest、LoadBalance、Fallback 和 Score。协议特定限制需要留意——VMess 仅支持 TCP,Trojan/VMess/VLESS 的 H2 XHTTP 覆盖 packet-up、stream-up 和 stream-one 协议限制。

DNS 解析支持 UDP、TCP、DoT、DoH、DoQ 和 DoH3 上游,可选经由节点或分组,并带路由与缓存。配置可重载,也支持订阅。

控制方式与构建

Web UI 有两条路径。原生 API 搭配 doona,后者提供观测、诊断和配置编辑;单独的 native-api 构建可以服务已安装的 doona,full 构建则可内嵌对应版本。Clash 仪表盘(如 zashboard)搭配 Clash 兼容的 REST/WebSocket API,设置 experimental.clash_api 后 honk 会在首次启动时下载它 Web 界面 实验性设置。构建矩阵为 full(原生 API、Clash API、内嵌 doona)、native-api(无 Clash API)和 clash-api(无原生 API);所有构建均提供静态 musl 二进制 安装。OpenWrt 用户被指向单独的软件包源 OpenWrt 源。

要求与注意事项

项目自称早期 alpha,不建议用于生产,并警告会有破坏性变更、功能不完整以及有限的真实环境验证 README。透明代理需要 root、Linux 6.12+、特定内核选项和 bpffs 启动指南。初次部署会修改网络钩子、命名空间和 sysctl,因此文档建议保留带外管理通道 安装。

它没有 FakeIP 引擎,没有与 mihomo 完全对齐,也没有 Windows/macOS 数据通路;由于数据通路基于 Linux eBPF,macOS 和 Windows 支持仍只是探索项 README。发布从 v0.1.0 起遵循 SemVer,1.0 之前次版本可能改变配置或行为,升级前应阅读发布说明;原生 API 的 /api/v1 契约也可能在次版本中变化 README。源码构建需要额外步骤——普通的 cargo build --release 不会启用真实数据通路 源码构建。mock 模式(--mock-ebpf)允许非特权开发,但不拦截流量,也不测试数据通路 非特权开发。

项目采用 GPL-3.0-only;仅用于开发的 dae 解析器 oracle 链接 AGPL-3.0 的 dae,但不会随发行版发布,也不会链接进 honk-core 许可证 解析器 oracle。

本文由 AI 根据项目 README 生成,更新于 2026年10月30日,以项目官方文档为准。