NewLife/RainbowBridge

彩虹桥软路由
Detail
Zip
Compare
README.md
# Rainbow(彩虹桥)— 软路由系统 ![GitHub License](https://img.shields.io/github/license/newlifex/Rainbow?logo=github) ![.NET](https://img.shields.io/badge/.NET-10.0-blueviolet?logo=dotnet) ![Platform](https://img.shields.io/badge/platform-Linux%20%7C%20Windows-lightgrey?logo=dotnet) ​ 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](https://newlifex.com/logo.png) 新生命团队(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) ![智能大石头](https://newlifex.com/stone.jpg) > 如果本项目对你有帮助,欢迎 Star、分享给团队,或通过 Issue/PR 反馈改进建议。