|
# Rainbow(彩虹桥)— 通用软路由系统软件



**Rainbow(彩虹桥)** 是一款**纯国产自主研发、MIT 开源**的通用软路由系统软件,基于 .NET 跨平台技术栈构建。以 Linux 为全功能主力平台,逐步适配 Windows 和 macOS。适用于**家庭、工作室、中小企业**等场景,支持**主路由模式**和**旁路由模式**。通过 Web 界面管理多 WAN 负载均衡、PPPoE 拨号、DHCP/DNS 深度管控(含 DHCP 级设备授权)、防火墙/NAT、VLAN、静态路由、VPN、上网防沉迷等全场景需求。
📖 详细文档:[需求文档](/NewLife/RainbowBridge/Blob/master/Doc/需求文档.md) | [功能模块清单](/NewLife/RainbowBridge/Blob/master/Doc/功能模块清单.md) | [架构设计](/NewLife/RainbowBridge/Blob/master/Doc/架构设计.md) | [竞品分析](/NewLife/RainbowBridge/Blob/master/Doc/竞品分析.md)
---
## 核心特性
| 特性 | 说明 |
|------|------|
| **跨平台** | Linux 全功能主力,Windows/macOS 逐步适配覆盖 |
| **双模式部署** | 主路由模式(NAT 网关)+ 旁路由模式(DHCP/DNS 管控节点) |
| **多 WAN 负载均衡** | 多线宽带接入,策略路由、故障切换、权重/轮询/源地址哈希 |
| **IPv6 全支持** | DHCPv6/RA/SLAAC、DHCPv6-PD 前缀委派、ip6tables 防火墙 |
| **DHCP 设备授权** | 已知/未知/访客三态授权,不同设备分配不同 IP 池与 DNS 策略 |
| **DNS 深度管控** | DNS 劫持、广告过滤、儿童模式白名单、黑名单拦截统计 |
| **防火墙/NAT** | 端口映射、IP/MAC 黑名单、时间段规则、IPv4/IPv6 双栈 |
| **VLAN + 静态路由** | 802.1Q VLAN 子接口、IPv4/IPv6 静态路由、策略路由 |
| **VPN** | WireGuard 客户端/服务端 + OpenVPN 客户端/服务端 |
| **上网防沉迷** | 设备分组、定时断网、时长统计、DNS 级内容过滤 |
| **认证安全** | Cube RBAC + OAuth2.0/OIDC SSO + 防暴力破解 |
| **StarAgent 守护** | 自动发现 .NET 项目,崩溃重启,远程管理 |
---
## 快速开始
```bash
# 克隆
git clone https://github.com/newlifex/Rainbow.git
cd Rainbow
# 编译
dotnet build -c Release
# 启动(StarAgent 守护,无需 systemd)
dotnet run --project Rainbow.Web
```
打开 `http://{IP}:8080`,默认账号 `admin` / `admin`。系统服务由 StarAgent 自动管理。
Windows/macOS 同样支持 `dotnet run` 启动,仪表盘和基础网络管理功能可用。
---
## 项目结构
```
Rainbow/
├── Rainbow.Data/ # 数据层(net6.0):XCode 实体 + Services 服务层 + 跨平台适配器
├── Rainbow.Web/ # Web API + Cube 后台(net10.0):RESTful API + /admin 管理
├── Web/ # React 前端(Vite + TypeScript + TailwindCSS)
├── XUnitTest/ # 单元测试 + 集成测试 + E2E:xUnit
├── Doc/ # 项目文档
└── Rainbow.sln
```
---
## 技术栈
| 组件 | 选型 |
|------|------|
| Web 框架 | ASP.NET Core + NewLife.Cube(MVC) |
| 运行时 | .NET 10.0 |
| 进程守护 | StarAgent(星尘代理) |
| 前端 | React 19 + Vite + TypeScript + TailwindCSS + 星语UI |
| 持久化 | SQLite + `Config<T>` JSON |
| DNS/DHCP | dnsmasq(Linux 主力),接口预留自研服务器扩展 |
| 日志 | NewLife.Core XTrace |
---
## 许可证
MIT License
|