Decentralization? We're still early!

家庭网络的策略重构:从自建网关看透明代理与网络主权

  • 家庭网络的策略重构:从自建网关看透明代理与网络主权

    發布人 Brave 2026-05-27 12:22

    一、引子:一个网关脚本的架构野心

    一个数百行的 bash 脚本,把一台普通 PC 变成了 VPN 透明网关 + Wi-Fi 热点。它没有修改一行内核代码,没有刷写固件,没有更换硬件。完成这个转换的是四个抽象层:策略链、DHCP 服务、无线配置和一个状态机。

    这不是一个"配置工具"。它是一个网络操作系统的控制面实现——只不过这个控制面是用 shell 脚本搭的,跑在通用 Linux 上。

    二、家庭网络的演化:从连通设备到策略引擎

    家庭网络的核心抽象经历了一次清晰的三阶段跃迁:

    时期核心抽象控制面策略粒度用户接口
    固件路由器(2000s)NAT 路由固化在固件IP:端口Web 页面
    可刷机系统(2010s)iptables 规则内核 netfilterIP:端口 + 有限 L7SSH + 脚本
    策略引擎(2020s)流量分类 + 执行用户态进程域名/URL/应用/协议YAML / 声明式配置

    传统路由器的策略控制面嵌入在固件中。它的"策略"是厂商预设的:NAT 怎么做、QoS 如何分配、DNS 走谁的服务器。用户能改的只有几个表单字段。

    刷机(OpenWrt/DD-WRT)将控制面从厂商手里夺回,代价是仍然工作在 iptables 层级——要表达"所有 Netflix 流量走 VPN"这样的策略,需要在四个链里写五条规则,且不同版本的 iptables 语法不兼容。

    透明代理方案代表的是第三次跃迁:策略控制面从内核网络栈中被抽离出来,变成了一个独立的应用层引擎。网络策略不再是路由表 + 防火墙规则,而是一份可版本控制、可编程、可共享的策略声明。

    关键架构选择是:不修改一行核心代码。服务组件全是标准发行版,编排只在组织层面。这意味着这台机器可以同时运行其他服务——它不是一台"路由器",而是一台偶尔执行路由功能的通用计算机。

    三、架构模式

    自建网关的核心架构由几个正交维度组成,每个维度都有若干可选策略。

    流量策略链

    内核包过滤规则被组织为自定义链,与标准链解耦:

    • NAT 链:将 LAN 侧流量伪装为 VPN 接口的出站流量
    • 转发控制链:管理 LAN 与 VPN 之间的转发,以及故障时的流量阻断
    • MSS 链:对 TCP SYN 做 MSS clamping,适配隧道封装带来的 MTU 变化
    • DNS 链:劫持下游设备的 DNS 请求,重定向到指定服务器

    每条链独立可开关、独立可审计,可在不触及标准链的前提下完全替换。

    无线接入点

    无线配置需要根据频段、带宽、标准世代动态生成 hostapd 配置。不同搭配对应不同物理层标准,在配置生成时需处理中心信道偏移索引的计算。

    DHCP 的生命期耦合

    DHCP 作为独立实例运行,绑定到 LAN 接口。当网关停止时,DHCP 随之消失,下游设备自动失去 IP。断网信号内建在服务生命期中,而非依赖外部心跳检测。

    状态持久化

    网关维护三类持久化状态:用户配置、系统快照(start 前保存,stop 后恢复)、运行标志。stop 是 start 的精确逆操作,确保可反复启停而不产生残留。

    VPN 接口抽象

    VPN 接口的发现被推迟到运行时,支持自动检测、静态绑定、启动前等待三种模式。这种抽象使 VPN 提供商可替换——只要最终暴露一个网络接口,架构就无需改动。

    四、范式移转

    旧模型 vs 新模型

    维度旧模型(家用路由器)新模型(自建网关)
    控制面所有权固件厂商用户
    策略表达Web 表单声明式规则
    状态持久化NVRAM文件系统
    升级路径刷固件 → 变砖风险编辑配置 → 重启
    故障恢复重置按钮git revert
    可观测性厂商日志tcpdump + API
    与 VPN 的关系固件插件标准网络接口
    硬件依赖专用芯片通用 CPU + 软件转发

    旧模型的本质是"购买一个网络服务"——付钱给厂商,接受它预设的策略和控制粒度。新模型的本质是运营一个策略域——物理连接不变,变的是"谁来决定数据包怎么走"。

    密码朋克的实践传统

    自建网关不是新想法。它是密码朋克运动三十年来一条持续演进的技术路线的最新节点:

    时期形态核心对抗目标
    1990sPGP、匿名转发器内容审查、密钥托管
    2000sTor、I2P流量分析、大规模监控
    2010sVPN 门禁、WireGuard协议简化、可审计加密
    2020s自建 VPN 网关 + 策略引擎流量画像、边界控制

    每一代都在做同一件事:将通信链路上某一层的控制权从中心化实体手中拿回个人手里。PGP 拿回的是消息加密层,Tor 拿回的是路由匿名层,自建网关拿回的是策略决策层。

    自建 VPN 网关的特殊之处在于,它是所有这些技术路线的汇聚点。它并不发明新的密码学原语,而是将已有的工具(WireGuard、iptables、无状态防火墙)组合为一个完整的出口策略执行单元。组合本身不是技术突破,但组合的权力归属是。

    规避大规模监控的实践意义

    大规模监控依赖的核心前提不是"能看到你的内容"(加密已经让这越来越难),而是能建立你的流量行为画像

    • 你什么时间访问哪些服务
    • 你的设备使用哪些协议和指纹
    • 你的 DNS 查询暴露了哪些意图
    • 你的流量模式与哪些已知网络特征匹配

    厂商固件路由器在这些环节中扮演的角色常被低估。它不只是流量通道——它在出厂时就预配置了 DNS 上游(可能是运营商或厂商合作伙伴的)、启用了特定遥测协议、运行着不可审计的闭源固件。用户对数据包离开 WAN 口之后的行为有认知,但对数据包在路由器的 CPU 内被谁处理过、被记录了什么是完全没有可知性的。

    自建网关在这条链上做了三件事:

    1. DNS 本地终结:不再依赖上游 ISP 或第三方 DNS,查询在本地处理并转发到可信递归服务器,消除了 DNS 层面的流量分析入口
    2. 隧道化出口:所有流量通过加密隧道汇聚到单一出口点,将内部多设备的独立流量模式合并为单一隧道流,增加了流量关联的难度
    3. 可审计的策略平面:每一条规则、每一个跳转都是明文存盘的文本文件,可在任意时刻审查"这台机器在替我做哪些决策"

    这三件事都不需要新的技术。它们只是将默认由厂商控制的三项操作,移动到了用户自己控制的执行环境中。

    主权个人视角

    自建网关对个人主权的意义体现在几个维度:

    • 数据控制权:DNS 查询在本机终结,不经过第三方。流量的去向由本地策略决定,而非运营商的路由策略。
    • 计算环境控制权:路由器是家庭网络中唯一一个通常不可审计的黑盒。自建网关将这个盒子替换为一个可以逐行审查配置的操作系统进程。
    • 对第三方的依赖程度:核心依赖只有几个开源组件和一个 VPN 提供商。没有厂商固件锁定,没有硬件代际强制升级,没有 EOL 倒计时。
    • 可退出成本:迁移到另一台机器只需复制配置文件,重新运行初始化。不锁定硬件、不锁定发行版、不锁定 VPN 供应商。

    这些维度的共同特征是:降低了用户对供应链中任意单一环节的依赖度。家用路由器的供应链依赖度极高——固件更新、安全补丁、功能迭代全部取决于厂商的意愿和存续。自建网关将每层依赖拆开,使每一层都可独立替换。

    五、约束

    自建网关的约束也不是技术问题,而是所有权问题的另一面:

    • 维护责任转移:策略面控制权的获得,同时意味着故障面责任的全部内化。没有厂商客服可以打,每条超时不响应的 DNS 查询都可能需要你自己 tcpdump。
    • 物理层性能折让:通用 CPU 无法与硬件 NAT 和无线 offloading 的专用芯片竞争。千兆以上的链路或高密度 Wi-Fi 场景,软件转发的延迟和吞吐上限明显低于同价位专用设备。
    • 供应链仍然存在:自建网关消除的是对路由器固件厂商的依赖,但引入了对 Linux 发行版、内核主线、hostapd 上游的新依赖。每一层都有自己的缺陷和发布时间表。
    • 策略即事故面:声明式规则的灵活性意味着出错面也更大。一条规则的顺序错误可能导致整个 LAN 离线。版本控制可以减少这个风险,但不能消除它。
    • 无线标准的兼容性开销:Wi-Fi 协议栈在通用操作系统上的实现(hostapd + nl80211 + 驱动固件)的测试覆盖远不及闭源路由器 SDK。某些客户端设备的漫游行为、节能模式、MU-MIMO 兼容性可能不如预期。

    六、小结

    自建 VPN 网关不是"用软件模拟了一台路由器"。它是一个运行在通用操作系统上的网络控制面,将家庭网络从购买的硬件服务转变为可编程、可审计、可版本控制的策略域。

    这个选择的前提不是技术优越性——专用硬件在性能上仍然领先。它的前提是所有权:你愿意牺牲多少吞吐量,来换取对数据包在到达公网前所经过的所有代码都有可知性?

    密码朋克运动的历史告诉我们,通信架构的控制权不会自动流向用户。每一层抽象——加密、路由、策略——都需要主动安装。自建网关是这一传统在家庭网络边界上的最新实践:将策略面从固件中提取出来,放在一个你可以逐行审查的文件里。

    Brave 回复 2 weeks, 2 days ago 1 成員 · 0 回复
  • 0 回复

歡迎留言回复交流。

Log in to reply.

讨论開始
00 回复 2018 年 6 月
現在