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



Rainbow(彩虹桥)是一款**纯国产自主研发、MIT 开源**的通用软路由系统软件。它运行在各种 x86 小主机、ARM 小盒子、树莓派等设备上,通过浏览器就能管理整个家庭或办公室的网络——不限速、无广告、永久免费。
> **软路由是什么?** 普通家用路由器能干的事(拨号、分配 IP、限制上网、防火墙),Rainbow 都能干,而且更强大——多条宽带叠加、屏蔽小孩游戏网站、远程访问家里设备……它把一台树莓派或小主机变成了"企业级路由器"。
---
## 快速拥有
### 第一步:选一台设备
Rainbow 能跑在各种小设备上,家里闲置的旧电脑也能用:
| 你有的硬件 | 是否可用 |
|-----------|:-------:|
| **x86 工控机** / 迷你主机(推荐) | ✅ **全功能**,性能强劲 |
| **树莓派 4/5** / 其他 ARM 开发板 | ✅ **全功能**,低功耗 24h 开机 |
| **ARM 电视盒子** / 闲置旧手机 | ✅ 需刷 Linux,全功能 |
| 家里吃灰的 **旧电脑 / 笔记本** | ✅ 装 Linux,全功能 |
| 安装了 **Windows** 的常开电脑 | ✅ 基础网络管理 |
> 最低配置:1 核 CPU、512MB 内存、5GB 磁盘。建议使用 **Debian 12/13** 或 **Ubuntu 24.04+**。树莓派推荐 **Raspberry Pi OS(64位)** 或 Ubuntu Server。
### 第二步:下载与启动
如果你会使用命令行,打开终端运行以下命令:
```bash
# 下载 .NET 运行环境(仅首次需要)
wget https://dot.net/v1/dotnet-install.sh -O /tmp/dotnet-install.sh
chmod +x /tmp/dotnet-install.sh
/tmp/dotnet-install.sh --channel 10.0
# 下载 Rainbow
mkdir -p /opt/rainbow && cd /opt/rainbow
wget https://github.com/newlifex/Rainbow/releases/latest/download/Rainbow.zip
unzip Rainbow.zip
# 启动
dotnet Rainbow.Web.dll
```
### 第三步:打开浏览器
浏览器访问 `http://你电脑的IP:3380`,默认账号 **admin** / **admin**。
> **没有 Linux 基础?** 别担心——Rainbow 的"零命令行"安装器正在开发中,届时只需双击安装包即可。你也可以在 Windows 上先体验仪表盘等基础功能。
---
## 它能做什么?
无论你是想**管好孩子上网**、**两条宽带叠加提速**、**远程访问家里设备**,还是**给公司搭建安全网络**,Rainbow 都为你准备好了:
| 功能 | 有什么用? | 适合谁? |
|------|-----------|---------|
| **多 WAN 负载均衡** | 多条宽带同时使用,带宽翻倍,一条断网自动切换 | 工作室、追求网速的家庭 |
| **PPPoE 拨号** | 替代路由器拨号上网,账号密码统一管理 | 所有宽带用户 |
| **DHCP 设备授权** | 每个设备都能单独控制上网权限——已授权/待审核/已拉黑/访客 | 所有家庭、公司 |
| **DNS 广告过滤** | 自动屏蔽视频广告、网页弹窗,孩子上网更清静 | 有小孩的家庭 |
| **儿童模式** | 只允许访问学习类网站,其余全部拦截 | 有小孩的家庭 |
| **定时断网** | 设置孩子每晚 10 点自动断网,周末可以多用一会儿 | 有小孩的家庭 |
| **防火墙 / 端口映射** | 外网访问家里 NAS、远程桌面,安全又方便 | 工作室、远程办公 |
| **IPv6 双栈** | 下一代互联网协议支持 | 所有用户 |
| **VLAN 网络隔离** | 各部门网络互不相通,财务数据更安全 | 中小企业 |
| **VPN** | 出差也能像在公司一样访问内部资源 | 企业、远程办公 |
| **流量统计** | 每月每台设备用了多少流量,一目了然 | 所有用户 |
| **实时仪表盘** | 一眼看清当前网速、在线设备、系统状态 | 所有用户 |
| **系统诊断** | Ping 检测、连接监控、网络排查 | 所有用户 |
---
## 场景速览
### 👨👩👧👦 家庭场景:管好孩子上网
张先生家有 10 岁孩子,担心孩子沉迷游戏和短视频。Rainbow 帮他:
1. 自动发现孩子的 iPad 和电脑,标记为"孩子"分组
2. 设置每天 18:00-21:00 可上网,其余时间自动断网
3. 打开"儿童模式",只允许访问学习网站,游戏广告全部屏蔽
4. 随时在手机浏览器查看孩子今天上网多久、访问了哪些网站
### 🎬 工作室场景:多线宽带提速
李工的视频工作室有电信+联通两条宽带,之前一条满载另一条闲置。Rainbow 帮他:
1. 两条宽带同时用,自动负载均衡,带宽翻倍
2. 某条线路故障时自动切换到正常线路,业务不中断
3. 一键配置端口映射,外出时也能访问办公室的 NAS 和渲染服务器
### 🏢 中小企业场景:网络安全隔离
王经理的公司有 30 人,研发和行政需要网络隔离,总部和分部需要 VPN 互联。Rainbow 帮他:
1. **VLAN 隔离**:研发部和行政部网络互不相通
2. **VPN 站点互联**:总部和分部就像在同一个局域网
3. **防火墙策略**:精确控制每个部门能访问哪些资源
4. **操作日志**:所有管理操作有迹可循
---
## 对于开发者
### 获取与编译
Rainbow 使用 MIT 开源协议,**任何人可任意修改并再次发行**(无需声明来源)。团队公开强命名证书 `Doc/newlife.snk` 以支持独自编译替换程序集。
```bash
# 克隆源代码
git clone https://github.com/newlifex/Rainbow.git
cd Rainbow
# 编译(支持 VisualStudio 最新正式版 或 dotnet CLI)
dotnet build -c Release
# 运行
dotnet run --project Rainbow.Web
```
> **注意**:Linux 为全功能主力平台,支持 x64 和 ARM64 架构(树莓派 4/5 等)。编译前请确保已安装 .NET 10.0 SDK([下载地址](https://dotnet.microsoft.com/download))。
### 项目结构
```
Rainbow/
├── Rainbow.Data/ # 数据层:实体 + 服务层 + 跨平台适配器
├── Rainbow.Web/ # Web 后端:RESTful API + Cube 后台管理
├── Web/ # 前端:React 19 + TypeScript + TailwindCSS
├── XUnitTest/ # 单元测试 / 集成测试 / E2E 测试
├── Doc/ # 需求文档 / 功能清单 / 架构设计 / 竞品分析
└── deploy/ # 部署配置(如 sudo 白名单)
```
### 二次开发
- **修改后台逻辑**:编辑 `Rainbow.Web/Controllers/` 和 `Rainbow.Data/Services/`
- **修改前端页面**:编辑 `Web/src/pages/`,运行 `cd Web && pnpm dev`
- **新增数据表**:编辑 `Rainbow.Data/Network/Model.xml`,运行 `xcode Rainbow.Data` 生成实体
- **防火墙规则**:`IFirewallAdapter` 接口,切换 iptables / nftables / Windows 防火墙
> 详细开发指南见 [架构设计](/NewLife/RainbowBridge/Blob/master/Doc/架构设计.md)、[功能清单](/NewLife/RainbowBridge/Blob/master/Doc/功能清单.md)、[需求文档](/NewLife/RainbowBridge/Blob/master/Doc/需求文档.md)。
---
## 技术栈
| 组件 | 选型 |
|------|------|
| Web 框架 | ASP.NET Core + NewLife.Cube |
| 运行时 | .NET 10.0 |
| 进程守护 | StarAgent(星尘代理) |
| 前端 | React 19 + Vite + TypeScript + TailwindCSS |
| 持久化 | SQLite |
| DNS/DHCP | dnsmasq(Linux 主力),接口预留自研服务器扩展 |
| 日志 | NewLife.Core XTrace |
---
## 新生命项目矩阵
Rainbow 基于 NewLife 组件生态构建,下面是与 Rainbow 相关的生态项目:
| 项目 | 说明 |
|:----:|------|
| [NewLife.Core](https://github.com/NewLifeX/X) | 核心库,日志、配置、缓存、网络、序列化、APM 性能追踪 |
| [NewLife.XCode](https://github.com/NewLifeX/NewLife.XCode) | 大数据中间件,单表百亿级,MySql/SQLite/SqlServer/Oracle/PostgreSql/达梦 |
| [NewLife.Cube](https://github.com/NewLifeX/NewLife.Cube) | 魔方快速开发平台,用户权限、SSO 登录、OAuth 服务端 |
| [NewLife.Net](https://github.com/NewLifeX/NewLife.Net) | 网络库,单机千万级吞吐率 |
| [Stardust](https://github.com/NewLifeX/Stardust) | 星尘,分布式服务平台,APM 监控中心、配置中心、注册中心 |
| [CrazyCoder](https://github.com/NewLifeX/XCoder) | 码神工具,网络、串口、加解密、Modbus、MQTT 等众多开发者工具 |
---
## 许可证 & 团队
### MIT License
Rainbow 使用 MIT 开源协议。这意味着你可以自由使用、修改、分发,甚至用于商业项目,无需支付任何费用。
> 许多企业基于此构建内部路由管理平台,甚至可通过批量替换源码中所有 `NewLife` 字符串为贵公司名实现私有化定制。
### 新生命开发团队

新生命团队(NewLife)成立于 2002 年,是新时代物联网行业解决方案提供者。团队核心组件已在电力、工业、交通、环保、医疗、文博等行业大规模应用。NuGet 累计下载 523 万+。
我们持续改进,力求成为值得长期信赖的 .NET / IoT / 分布式技术伙伴。
- 网站:[https://newlifex.com](https://newlifex.com)
- 开源组织:[https://github.com/NewLifeX](https://github.com/NewLifeX)
- 详细文档:[需求文档](/NewLife/RainbowBridge/Blob/master/Doc/需求文档.md) \| [功能清单](/NewLife/RainbowBridge/Blob/master/Doc/功能清单.md) \| [架构设计](/NewLife/RainbowBridge/Blob/master/Doc/架构设计.md) \| [竞品分析](/NewLife/RainbowBridge/Blob/master/Doc/竞品分析.md)

> 如果本项目对你有帮助,欢迎 Star、分享给团队,或通过 Issue/PR 反馈改进建议。
|