Singborg

sing-box 在 Arch / CachyOS 笔记本上的透明代理、规则分流和本地面板实践。这里不只记录最终配置,也保留完整审计、eBPF 验证、功能验收、优化评审、daed 历史、踩坑记录、运维脚本、试跑套件和脱敏配置结构。

当前状态

截至 2026-10-02 收尾:

  • eBPF:local.cgroup 本机数据面 + shared.packet_rewrite / TCX 共享数据面已经实测
  • 分流:国内直连、海外代理,Proxy → Auto URLTest 自动选优
  • DNS:53 端口全部劫持;海外 DoH 走代理侧,国内走阿里 / 腾讯 DoH
  • 广告拦截:DNS 层 predefined + NXDOMAIN,连接层再用规则集兜底
  • 规则集:15 份,其中 6 份来自自建 sing-box-rule-sets 包
  • 面板:自研 sing-box-panel(127.0.0.1:9096,内嵌 zashboard)+ 官方 dashboard
  • 安全配置管线:check → 备份 → 原子替换 → 重启 → 健康检查 → 失败回滚
  • 历史方案:daed 已弃用,相关文档保留用于记录故障定位和迁移过程

完整文档导航

文档 讲什么 什么时候看
01 审计报告 一整轮真流量审计:DNS 泄露、广告覆盖、geoip 误判、分流验证、应用前后对比 想知道“这台机器上到底哪里不对”
02 eBPF 可行性验证 51 项内核预检、A/B 试跑、fork 与上游差异、TUN→eBPF 判据 想上 eBPF 之前
03 面板指南 面板使用、订阅、分应用策略、安全配置管线 日常使用
04 功能测试报告 分流、DNS、DoH、下载、容器等安装后验收 换机器重装时照做
05 网络审计 更早一轮网络层体检 做前后对比
06 优化评审 面板选型、DNS 策略、规则结构取舍 想改架构时
07 daed DNS 故障诊断 daed 时代的 DNS 故障完整定位;daed 已弃用 想了解为何没走 daed
08 daed 迁移计划 daed → sing-box 的历史迁移方案,已执行完毕 查迁移过程
09 踩坑与经验 sing-box、内核、容器、测试方法等工程坑位 最推荐先看
11 个运维脚本 安装、审计修复、切换 TUN/eBPF、规则刷新、状态诊断等 直接使用
eBPF A/B 试跑套件 独立状态目录、不动线上配置的 eBPF 验证工具 想验证 eBPF 是否适合自己
脱敏配置与规则集 配置结构、DNS 设计、15 份规则集及来源 学配置结构

最值得先看的结论

eBPF 不是“预检全绿就能用”

51 项内核预检只是能力筛选;真正决定能否落地的是实际数据面 A/B 试跑。当前本机 local 的 TC 数据面不支持,但 shared 的 TCX / packet_rewrite 路径已经实测可用。因此不能把 local 与 shared 的结论混在一起。

DNS 广告拦截不要只依赖 reject

当前 DNS 层使用 predefined + NXDOMAIN,避免 REFUSED 触发客户端反复重试;连接层继续保留规则集作为浏览器 DoH 等路径的兜底。

rootless pasta 是覆盖边界

eBPF 可以接管本机和桥接进来的共享流量,但 rootless Podman 的 pasta 用户态转发不属于同一覆盖路径。需要容器完整走代理时,应使用 host network 或回到 TUN。

技术栈

sing-boxeBPFArch LinuxDNS / DoHWeb PanelPodman

GitHub · 完整实践总览


评论
avatar
emoeem
技术博客 · 开源项目 · Linux · Rust · AI Coding · 音视频
GitHub
公告
代码、Linux、Rust、AI、音视频与开源项目。记录正在做的事情。
Now
正在做什么

一苇 · Yiwei、VoiceFox,以及 Linux / Rust 工具链。

查看 Now →