项目目标
验证一个中心协调、数据面尽量端到端的边缘连接模型:中心负责节点发现、策略和候选路径协调,节点之间优先建立直接连接,在受限网络中允许明确、可观测的回退路径。
这是一个独立个人实验,不复用雇主代码。它起源于我长期使用的旧 C 虚拟网络工具,但不是对旧实现逐行翻译。
后续还形成了独立的 relay-l3-poc:跨平台 TUN 与集中接入,与这里的 L2 / P2P 实验分别演进。
约 2 天第一条可用路径追平旧工具核心功能
真实网络持续承载日常工作流验证
P2P + Relay直接路径优先,回退显式可观察
从想法到真实使用
第一阶段
借助 AI 在约两天的早晚时间里完成可运行版本,追平旧 C 工具的核心连接和转发能力,并立即进入自己的远程开发链路。
后续数周
没有停留在“重写成功”,而是继续加入中心协调、P2P 候选、受控回退、状态观测和 Noise 会话。
当前阶段
功能扩张让位于真实网络稳定性、安全假设和代码主权审查,持续记录路径是否真的直连、何时回退以及能否恢复。
当前能力
二层数据通道
在节点之间转发以太网帧,并维护受控的逻辑 peer 与路径状态。
P2P 与回退
尝试直接 UDP 路径;失败时可按策略回退,并保留重新探测直接路径的空间。
会话安全
实验性采用 Noise 握手建立数据面会话,区分节点身份、授权材料与会话密钥。
可观测性
记录选中路径、候选结果、连接状态和经中心转发的流量,用于验证实际行为。
验证状态
项目已在真实网络中承载日常开发流量,并完成多节点、直接连接、受控回退和恢复场景的持续验证。验证重点不是记录“用了多少天”,而是确认直接路径、显式回退、控制面重建和路径恢复是否符合预期。
当前重点从“增加功能”转向稳定性观察、安全边界说明和代码主权审查。
工程取舍
- 中心可协调候选地址并下发 pair-scoped 授权材料,但数据面会话密钥由两端通过 Noise 握手派生。
- 当前路径与历史候选结果分开表达,避免把“曾经尝试”误认为“正在使用”。
- 回退必须显式、可观测,并有清晰的恢复条件,不能让中心转发悄悄成为永久路径。
- 先验证简单状态机;只有真实网络暴露问题后,才增加复杂评分和自动切回策略。
我实际验证了什么
- 中心协调后的直接路径是否真的承载数据,而不是界面显示“已连接”。
- 直接路径被破坏后,回退是否按照显式策略发生,并能持续工作。
- 控制面重建后能否重新协商并恢复直接路径,而不是永久停留在回退状态。
- 路径、候选结果和进程运行期累计转发量能否从状态与 TUI 中被观察和解释。
我的职责与边界
- 定义中心协调与数据面分离的目标,决定 P2P、relay fallback 和可观测状态的边界。
- 与 AI 共同拆分协议、状态机、测试和部署任务,由我决定方向、取舍和验收条件。
- 使用真实工作流验证,而不是只以编译通过、单元测试或界面状态作为完成标准。
- 不声称已经逐行审查全部实现;当前正在回收关键路径的代码主权,并明确未完成的安全生命周期。
后续方向
- 持续收集不同运营商、热点和 NAT 环境下的自然样本。
- 完善路径健康、重新探测和自动切回的状态模型。
- 补充密钥轮换、节点撤销和密钥泄露响应等完整生命周期。
- 把安全假设、失败边界和验证方法整理成公开文档。
这是实验性系统项目,不宣称已经达到开放产品或通用 VPN 的成熟度。
后续的 L3 PoC:集中接入
状态整理:2026-09-08 · 独立项目 relay-l3-poc
另起一个较小的三层实验,让 Linux、macOS 与 Windows 的原生 TUN 接口承载 IPv4 数据包。它已有固定两节点的 TCP / UDP 隧道,也支持 Agent 主动接入 Hub,再由中心转发节点间流量。
- 已经走通:Noise 握手、token 准入、Label 与在线 IP 绑定,以及中心转发。Windows、macOS 和 Linux 节点的虚拟地址已有实际 ping 输出支持,并开始进入自己的日常网络。
- 与 relay-rs 的关系:复用公钥、token 哈希名单等凭据格式,但协议独立。relay-rs 传以太网帧,L3 PoC 传 IPv4 包;不能因凭据通用就混接两套数据面,也没有把 L3 合并进原仓库。
- 与 tline 的关系:可复用同一配置文件中的身份材料,但服务端口和协议不同。Relay 解决网络可达性,tline 解决终端和文件访问。
- 当前边界:中心模式没有 P2P,Hub 解密后再加密转发,能够看到明文;获准节点之间可互通,尚无细粒度网络 ACL。IPv6、高可用与完整密钥生命周期不在当前完成范围。
连通和开始使用是已经发生的事实,长期稳定性与产品化仍需分别验证。当前先体验和理解,不把这次接通自动变成继续叠加功能的任务。
返回作品集首页