爱意满满的作品展示区。
ihciah
0.2D
0.03D

Tinect:支持精细路径控制与自动故障切换的三层 Overlay 网络

  •  
  •   ihciah ·
    ihciah · 5h 2m ago · 221 views

    背景与动机

    之前使用 tinc 组网时,我遇到的主要痛点是路径不可控。对多出口、多节点的网络来说,我希望能明确指定不同流量经过哪些线路和节点,并配置备用路径与故障回退策略。基于这个需求,我实现了 Tinect。目前在我的家庭网络中稳定运行了大概两个月。

    我的网络拓扑与需求

    我的家庭网络有公网 IP ,朋友家有一条没有公网 IP 的联通 9929 加速线路,以及多台 VPS 。VPS 节点之间也有优先级:优先使用高优先级且可用的节点,节点不可用时切换到其他可用节点。

    默认选路和故障回退顺序是:

    1. 9929 加速线路可用时,优先经朋友家的这条线路连接 VPS ,并按优先级选择可用的 VPS 节点。
    2. 加速线路不可用时,改为从家宽直连 VPS ,并按优先级选择可用节点。
    3. 所有 VPS 节点都不可用时,流量从家庭网络的本地出口直接路由出去。 此外,GPT 相关站点等特定流量可以设置单独的出口策略,例如优先走日本 VPS ,不沿用默认的 VPS 优先级。

    Tinect 是什么

    Tinect 是一个策略驱动的三层 Overlay 网络,将目的路由、出口选择和节点路径分开管理。可以为出口配置优选路径和候选路径,并根据链路健康状态进行故障切换。路径也可以按方向分别编排:对同一节点,去程和回程流量可以选择不同路径。可选的 FakeIP 域名路由支持按站点指定出口。

    链路质量增强方面,动态 FEC 会根据链路丢包情况动态调整冗余比例,以减轻晚高峰丢包影响;另外,UDP 被限速或不适用时,可以使用 Fake TCP 作为替代承载。

    节点间连接经过身份认证,Circuit 流量端到端加密,中继节点无法解密数据包。项目支持 Linux 和 macOS ; Fake TCP 和本机直连回退目前仅支持 Linux 。项目仍处于实验阶段,欢迎试用、反馈问题或参与贡献。

    与 Tailscale 的区别

    两者都是 Mesh VPN ,都可以用于节点组网,但设计取舍不同:

    • 控制平面与密钥管理:Tinect 不依赖中心控制平面,节点公钥由使用者手动交换并配置,节点关系和路由策略也由本地配置管理。这种设计可以让网络中所有节点完全去中心化,避免控制面成为单一故障点,也减轻系统部署和运维复杂度;但缺点是手动密钥交换略为复杂。未来如果有大规模组网需求,计划支持基于 PKI 的身份体系。
    • 路径控制粒度:Tinect 可以显式配置流量经过的节点、优先级和候选路径,并按方向分别设置路径,让同一节点的去程和回程经过不同路径。它更适合需要精细控制转发拓扑的场景。
    • 链路承载:Tinect 提供 FEC 和 Fake TCP ,以应对物理链路丢包,或 UDP 被限速、不适用的情况; Fake TCP 目前仅支持 Linux 。

    部署方式

    Tinect 已开源: https://github.com/cross-io/tinect

    支持 Nix/NixOS 、Linux 容器镜像和预编译二进制部署,节点通过 YAML 配置身份、Peer 、路由和路径。每个节点需要生成独立的 Ed25519 密钥对,并在配置中填写对端节点的公钥。 详细配置和使用方法见 Tinect 仓库。

    1 replies  •  2026-10-15 15:09:18 +08:00
    skyduy
        1
    skyduy  
       4h 35m ago
    [666] shadow-tls 大佬又出手了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3422 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 63ms · UTC 11:44 · PVG 19:44 · LAX 04:44 · JFK 07:44
    ♥ Do have faith in what you're doing.