架构概览
适用版本:技术预览。 下列设计描述不等同于所有 Linux/OpenWrt 硬件、WAN 或 NAT 环境已经验证。
frp-tun 采用**双平面(Dual-Plane)**架构设计,严格解耦“端到端数据加密面”与“底层穿透传输面”:
- 网络隔离与策略路由层 (
internal/network):- 采用“隔离优先(Isolation-First)”原则,在配置网络接口前预装黑洞路由(
RTN_BLACKHOLE)与策略路由(ip rule),防止在崩溃恢复或接口变动期间发生明文泄漏; - 为每个站点分配独立的路由表 ID、Rule Priority、Mark 与接口别名(
frp-tun:<uid>)。
- 采用“隔离优先(Isolation-First)”原则,在配置网络接口前预装黑洞路由(
- WireGuard Overlay 加密面:
- 运行原生 WireGuard,绑定到确定的回环(Loopback)UDP 源端口;
- 所有业务数据包在触碰用户态传输载体前,已在内核层面完成严格端到端加密。
- Bridge 桥接流水线 (
internal/bridge):- 专用的读写泵 goroutine 在本地 WireGuard 回环与活动 Carrier 之间无锁泵送 UDP 数据报;
ProbeMux在同一信道上复用保活与延迟探测帧,不干扰业务数据泵。
- Carrier Underlay 传输面 (
internal/carrier&internal/supervisor):- 仅复用 frp 协议报文协议规范,通过
SO_MARK避免控制流路由环路; - Supervisor 状态机:优先选择 XTCP/QUIC P2P 直连通道;P2P 不可用时平滑无缝回退到 STCP Relay 中继,并在后台进行非阻塞异步拨号以伺机晋升恢复直连。
- 仅复用 frp 协议报文协议规范,通过
详细拓扑与子系统
Section titled “详细拓扑与子系统”- P2P 优先与 STCP 回退拓扑:直连优先与中继兜底的数据路径流向;
- 双站点网关部署架构:Linux / OpenWrt 真实网关各组件交互位置;
- 私有中继 Hub-and-Spoke 拓扑:多 Peer Mesh 直连与私有中继容灾。