commit 0a36cfe300519d2f0c9b732f322db3df08574712 Author: LukeMackin Date: Thu Oct 15 13:09:30 2026 +0800 上传文件至「/」 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8e887cb --- /dev/null +++ b/.gitignore @@ -0,0 +1,22 @@ +# OS +.DS_Store +Thumbs.db + +# IDE +.vscode/ +.idea/ + +# Python +__pycache__/ +*.py[cod] +.venv/ +venv/ + +# Node +node_modules/ +dist/ + +# Build +build/ +*.img +*.bin diff --git a/README.md b/README.md new file mode 100644 index 0000000..1865209 --- /dev/null +++ b/README.md @@ -0,0 +1,822 @@ +# NetFusion + +> **多链路智能网络操作系统 / Multi-Link Intelligent Network Platform** + +NetFusion 是一个面向便携式路由器、移动办公和复杂网络环境的多链路网络平台。 + +它将 **RJ45、USB、4×蜂窝网络、Wi-Fi** 等多种网络接入统一管理,并通过 **Smart Route、Network Bonding、Global Proxy、Tailscale、Communication Gateway** 等能力,实现自动选路、链路聚合、全球互联网访问和远程内网访问。 + +--- + +## 1. 项目愿景 + +NetFusion 的核心目标: + +> **让用户不需要关心“应该走哪张 SIM、哪条 WAN、是否需要代理”,系统自动选择最合适的网络路径。** + +典型场景: + +- 国内网站 → 国内运营商链路直连 +- 海外网站 → 优先使用海外 SIM +- 国内 SIM 无法直接访问海外目标 → 自动切换到全球代理 +- 没有海外 SIM → 通过海外 VPS 建立代理隧道 +- 大文件上传/下载 → 多条 WAN 聚合 +- 远程办公 → Tailscale 访问家庭/公司内网 +- 多张 SIM 收到短信 → 通过互联网转发到 App/Web +- 蜂窝语音 → 在 Modem/运营商支持 VoLTE 的前提下扩展 IP 语音网关 + +--- + +## 2. 整体架构 + +![NetFusion 整体架构](assets/netfusion-architecture.png) + +上图展示了 NetFusion 的完整系统架构,包括: + +- 4× 独立蜂窝 Modem / SIM +- RJ45 WAN +- RJ45 LAN 1~4 +- USB / USB-C +- Wi-Fi 6/7 +- Smart Route +- Network Bonding +- Global Proxy +- Tailscale +- SMS / Voice Gateway +- Cloud VPS / Bond Server + +--- + +## 3. 核心架构 + +```text + ┌──────────────────────┐ + │ Internet │ + └──────────┬───────────┘ + │ + ┌────────────────┼────────────────┐ + │ │ │ + ▼ ▼ ▼ + 国内网站 海外网站 海外服务 + │ │ │ + └────────────────┼────────────────┘ + │ + ┌───────▼───────┐ + │ Smart Route │ + │ 智能选路 │ + └───────┬───────┘ + │ + ┌───────────────────────┼────────────────────────┐ + │ │ │ + ▼ ▼ ▼ + DIRECT FOREIGN-WAN PROXY + 国内直连 海外 SIM D 海外 VPS + │ │ │ + SIM A/B/C SIM D A/B/C → VPS + │ │ │ + └───────────────────────┼────────────────────────┘ + │ + ▼ + ┌───────────────┐ + │ NetFusion OS │ + └───────┬───────┘ + │ + ┌────────────┼────────────┐ + ▼ ▼ ▼ + Tailscale Bond Gateway + │ │ │ + 内网访问 多链路聚合 SMS/Voice +``` + +--- + +# 4. 网络接入 + +NetFusion 将不同类型的网络统一抽象为 WAN Interface。 + +```text +WAN-A ← SIM A / Modem A +WAN-B ← SIM B / Modem B +WAN-C ← SIM C / Modem C +WAN-D ← SIM D / Modem D + +WAN-E ← RJ45 +WAN-F ← USB Network / Modem +``` + +## 4.1 四张 SIM + +建议采用: + +```text +SIM A → 独立 Modem A → WAN A +SIM B → 独立 Modem B → WAN B +SIM C → 独立 Modem C → WAN C +SIM D → 独立 Modem D → WAN D +``` + +而不是一个 Modem 在四张 SIM 之间切换。 + +原因是 NetFusion 的目标是: + +> **四条蜂窝链路同时在线。** + +这样才能进行 Multi-WAN、故障切换和真正的多链路聚合。 + +--- + +# 5. Smart Route 智能选路 + +Smart Route 是 NetFusion 的核心。 + +它不是简单的: + +```text +国内 → SIM A +国外 → SIM D +``` + +而是根据: + +- 目标域名 +- 目标 IP +- 国家/地区 +- 链路可达性 +- RTT +- 丢包率 +- 实时带宽 +- 当前负载 +- 用户策略 +- 网络成本 + +综合决定出口。 + +## 5.1 用户定义的核心策略 + +### 情况 A:国内卡 + 海外卡 + +```text +访问国内网站 + ↓ +Smart Route + ↓ +SIM A / B / C + ↓ +国内互联网 +``` + +海外网站: + +```text +访问海外网站 + ↓ +Smart Route + ↓ +SIM D 是否可用? + │ + ┌─┴─┐ + YES NO + │ │ + ▼ ▼ + SIM D PROXY +``` + +### 情况 B:只有国内卡 + +```text +海外网站 + ↓ +Smart Route + ↓ +没有可用海外 WAN + ↓ +Global Proxy + ↓ +加密隧道 + ↓ +海外 VPS + ↓ +Internet +``` + +因此: + +> **即使四张卡全部是国内运营商,也可以通过全球代理访问互联网。** + +--- + +# 6. 四种主要出口模式 + +| 模式 | 典型用途 | 出口 | +|---|---|---| +| `DIRECT` | 国内网站、可直连目标 | SIM A/B/C/RJ45 | +| `FOREIGN-WAN` | 海外目标 | SIM D | +| `PROXY` | 国内链路无法直接访问的目标 | 海外 VPS | +| `BOND` | 大文件、视频、上传下载 | 多条 WAN | + +--- + +# 7. 网络聚合 Bonding + +普通 Multi-WAN: + +```text +连接 1 → SIM A +连接 2 → SIM B +连接 3 → SIM C +连接 4 → SIM D +``` + +它主要解决多连接负载均衡。 + +NetFusion 的 Bonding 则进一步建立: + +```text + ┌──────────────┐ +SIM A ──────────────────►│ │ +SIM B ──────────────────►│ Bond Client │ +SIM C ──────────────────►│ │ +SIM D ──────────────────►│ │ +RJ45 ───────────────────►│ │ +USB ────────────────────►│ │ + └──────┬───────┘ + │ + Multi-Path Tunnel + │ + ▼ + ┌──────────────┐ + │ Bond Server │ + │ VPS │ + └──────┬───────┘ + │ + ▼ + Internet +``` + +Bond Engine 需要处理: + +- Path Scheduling +- Packet Sequencing +- Packet Reordering +- Loss Recovery +- Congestion Control +- Path Health +- Dynamic Weight +- Connection Persistence + +可评估的底层技术方向: + +- QUIC +- Multipath QUIC +- MPTCP +- 自定义 UDP/QUIC Transport + +--- + +# 8. Global Proxy + +代理应该是 NetFusion 的系统级出口,而不是要求每个终端单独安装软件。 + +```text +手机 +电脑 +平板 +游戏机 +IoT + │ + │ Wi-Fi / LAN + ▼ +NetFusion + │ + ▼ +Smart Route + │ + ▼ +Global Proxy + │ + ▼ +Encrypted Tunnel + │ + ▼ +海外 VPS + │ + ▼ +Internet +``` + +## 两种模式 + +### Router Transparent Proxy + +终端无需安装代理软件。 + +```text +Client + ↓ +NetFusion + ↓ +Transparent Proxy + ↓ +VPS + ↓ +Internet +``` + +### Client Proxy + +NetFusion 提供代理入口: + +```text +HTTP Proxy +SOCKS5 +Mixed +TUN +``` + +终端可以自行选择代理模式。 + +--- + +# 9. Tailscale + +NetFusion 可以作为 Tailscale 节点。 + +主要提供: + +### Subnet Router + +```text +远程手机 + │ +Tailscale + │ +NetFusion + │ + └── LAN + ├── NAS + ├── PC + ├── 摄像头 + └── IoT +``` + +### Exit Node + +```text +手机 + │ +Tailscale + │ +NetFusion + │ +Smart Route + │ +Internet +``` + +因此 Tailscale 与 Smart Route 可以协同工作。 + +--- + +# 10. SMS / Voice Gateway + +## 10.1 SMS + +目标不是: + +```text +收到 SMS + ↓ +再发送一条 SMS +``` + +而是: + +```text +SIM + ↓ +Modem + ↓ +NetFusion SMS Service + ↓ +JSON / WebSocket / HTTPS + ↓ +Cloud + ↓ +App / Web +``` + +例如: + +```json +{ + "sim": 1, + "from": "+86xxxxxxxxxxx", + "time": "2026-10-15T12:00:00", + "text": "验证码 123456" +} +``` + +这样短信实际上是: + +> **蜂窝网络接收 + IP 数据转发** + +而不是重新占用短信通道发送。 + +--- + +## 10.2 Voice + +电话能力比 SMS 复杂。 + +目标架构: + +```text +来电 + ↓ +蜂窝 Modem + ↓ +VoLTE / Voice + ↓ +NetFusion Voice Gateway + ↓ +SIP / IP + ↓ +Internet + ↓ +手机 / App / VoIP Client +``` + +该功能需要在硬件选型阶段确认: + +- Modem 是否支持 VoLTE +- Linux/OpenWrt 驱动能力 +- 运营商语音能力 +- IMS/VoLTE 配置 +- 音频接口 +- SIP/IP 语音实现 + +因此 Voice Gateway 建议作为后续版本开发。 + +--- + +# 11. 软件系统架构 + +```text +┌───────────────────────────────────────────────┐ +│ NetFusion Web UI │ +│ REST / WebSocket API │ +└───────────────────────┬───────────────────────┘ + │ + Controller / API + │ + ┌───────────────┼────────────────┐ + │ │ │ + ▼ ▼ ▼ + WAN Manager Smart Route Service Manager + │ │ │ + ▼ ▼ ┌───────┼────────┐ + Modem nftables │ │ │ + netifd ip rule Proxy Tailscale Gateway + │ │ │ │ + └───────────────────────────┴───────┴────────┘ + │ + ▼ + OpenWrt / Linux + │ + ┌───────────────┼────────────────┐ + ▼ ▼ ▼ + SIM A-D RJ45 / USB Wi-Fi +``` + +--- + +# 12. 推荐硬件架构 + +第一版原型建议优先采用 x86_64 平台,例如: + +- Intel N100 / N305 级别 CPU +- 4 × 独立 4G/5G Modem +- 4 × Nano-SIM +- 1 × 2.5GbE WAN +- 4 × RJ45 LAN +- USB 3.x +- USB-C +- Wi-Fi 6/7 +- 多天线系统 +- 12V 输入电源 + +重点关注: + +1. PCIe / USB 总带宽 +2. 4 个 Modem 同时工作的峰值功耗 +3. 供电峰值电流 +4. 蜂窝 Modem 散热 +5. 5G 射频之间的隔离 +6. Wi-Fi 与蜂窝天线之间的干扰 +7. Modem 驱动与 OpenWrt 兼容性 +8. VoLTE / SMS 能力 + +--- + +# 13. 推荐外部接口 + +```text +┌────────────────────────────────────────────────────────┐ +│ NetFusion Router │ +│ │ +│ [USB-C] [USB-A] [LAN1] [LAN2] [LAN3] [LAN4] │ +│ [WAN 2.5G] [DC] │ +│ │ +│ [SIM1] [SIM2] [SIM3] [SIM4] │ +│ │ +│ Wi-Fi 6 / Wi-Fi 7 │ +└────────────────────────────────────────────────────────┘ +``` + +其中: + +- `WAN`:外部有线网络 +- `LAN1~LAN4`:本地有线设备 +- `USB-A`:Modem / 存储 / 扩展 +- `USB-C`:供电、调试或扩展 +- `SIM1~SIM4`:四个独立蜂窝网络 +- `Wi-Fi`:移动终端接入 + +--- + +# 14. 典型工作流程 + +## 场景 1:国内网站 + +```text +设备 + ↓ +NetFusion + ↓ +Smart Route + ↓ +国内目标 + ↓ +SIM A/B/C + ↓ +Internet +``` + +## 场景 2:海外网站 + D 卡正常 + +```text +设备 + ↓ +NetFusion + ↓ +Smart Route + ↓ +海外目标 + ↓ +SIM D + ↓ +Internet +``` + +## 场景 3:海外网站 + 只有国内卡 + +```text +设备 + ↓ +NetFusion + ↓ +Smart Route + ↓ +无海外 WAN + ↓ +Global Proxy + ↓ +海外 VPS + ↓ +Internet +``` + +## 场景 4:大流量下载 + +```text +设备 + ↓ +NetFusion + ↓ +Bond Engine + ├── SIM A + ├── SIM B + ├── SIM C + ├── SIM D + ├── RJ45 + └── USB + ↓ + Bond Server + ↓ + Internet +``` + +## 场景 5:远程访问家庭内网 + +```text +远程设备 + ↓ +Tailscale + ↓ +NetFusion + ↓ +LAN + ├── NAS + ├── PC + └── Camera +``` + +--- + +# 15. 开发路线 + +## V1 — 基础路由 + +- OpenWrt +- Wi-Fi +- 2.5G WAN +- 4 × LAN +- USB +- 2 × 蜂窝 Modem +- Multi-WAN +- Tailscale +- Global Proxy + +## V2 — 四链路 + +- 4 × 独立蜂窝 Modem +- 四 WAN 同时在线 +- WAN Health Monitor +- Smart Route +- 自动故障切换 + +## V3 — Bonding + +- Bond Client +- Bond Server +- 多路径调度 +- 上传/下载聚合 +- 链路故障恢复 + +## V4 — SMS Gateway + +- 多 SIM 短信接收 +- SMS API +- Web Dashboard +- Cloud Relay +- App/Web 推送 + +## V5 — Voice Gateway + +- VoLTE +- Voice Gateway +- SIP/IP 语音 +- 来电转发 + +## V6 — 产品化 + +- 完整 Web UI +- 移动端管理 +- 远程升级 +- 配置备份 +- 日志与监控 +- 功耗优化 +- 散热优化 +- 量产测试 + +--- + +# 16. 项目目录建议 + +```text +NetFusion/ +├── README.md +├── docs/ +│ ├── architecture.md +│ ├── smart-route.md +│ ├── bonding.md +│ ├── proxy.md +│ ├── tailscale.md +│ └── gateway.md +├── assets/ +│ └── netfusion-architecture.png +├── firmware/ +├── netfusion-controller/ +├── netfusion-bond/ +├── netfusion-route/ +├── netfusion-gateway/ +├── web-ui/ +└── server/ + ├── bond-server/ + └── relay-server/ +``` + +--- + +# 17. 核心设计原则 + +### Principle 1 — 网络抽象 + +所有网络首先统一为 WAN Interface。 + +### Principle 2 — 策略与链路解耦 + +Smart Route 决定“应该走哪里”,WAN Manager 决定“哪些链路可用”。 + +### Principle 3 — Bond 与 Proxy 解耦 + +Proxy 负责出口,Bond 负责多路径传输。 + +### Principle 4 — Tailscale 与业务解耦 + +Tailscale 负责安全组网,不直接承担所有代理/聚合逻辑。 + +### Principle 5 — 自动化优先 + +用户不应该手动选择 SIM。 + +```text +目标 + ↓ +探测 + ↓ +策略 + ↓ +评分 + ↓ +自动选择 + ↓ +自动切换 +``` + +--- + +# 18. 最终产品定义 + +**NetFusion** + +> **一台路由器 · 多种网络 · 智能选路 · 网络聚合 · 全球互联** + +NetFusion 最终不是简单的“4 SIM 随身 Wi-Fi”,而是一个以 Linux/OpenWrt 为基础的 **Multi-Link Network OS**。 + +核心模块: + +```text +NetFusion +│ +├── Connectivity Manager +│ ├── 4× Cellular +│ ├── RJ45 +│ ├── USB +│ └── Wi-Fi +│ +├── Smart Route +│ +├── Bond Engine +│ +├── Global Proxy +│ +├── Tailscale +│ +└── Communication Gateway + ├── SMS + └── Voice +``` + +--- + +## License + +项目早期可暂不确定许可证。正式开源前建议根据以下内容选择: + +- 是否开放核心 Bond Engine +- 是否开放 Web UI +- 是否开放硬件设计 +- 是否允许商业闭源衍生 +- 是否需要区分 Open Source 与商业版组件 + +--- + +## Status + +**Project: NetFusion** + +**Stage: Architecture / Prototype Planning** + +当前重点: + +- [ ] 硬件原型 +- [ ] 4× Modem 同时在线 +- [ ] Smart Route +- [ ] Multi-WAN +- [ ] Bond Client / Server +- [ ] Global Proxy +- [ ] Tailscale +- [ ] SMS Gateway +- [ ] Voice Gateway +- [ ] Web UI