MikroTik RouterOS 7.x / NAS Docker (飞牛fnOS/群晖/Unraid) / Linux物理机 旁路由透明代理
3.2K
专为 MikroTik RouterOS 7.x、NAS Docker(飞牛 fnOS / 群晖 / Unraid)及 Linux 物理机/虚拟机深度打造的高性能、超轻量旁路由透明代理系统
RouterOS • NAS Docker • Linux Bare-Metal & VM • Sing-Box 1.14 Core • Sub-60MiB RAM • Self-Healing Networking
图 1:ROS-Box 控制台概览页(MikroTik 科技深蓝美学、3D 动力莫比乌斯双环、核心指标实时监控)
图 2:ROS-Box 设置中心(纯净毛玻璃通透层次、无商业引流与广告)
ROS-Box 在保留上游优秀路由规则体系的同时,剥离了对 OpenWrt 宿主系统的强耦合依赖,针对 MikroTik RouterOS 7.x 容器沙盒、飞牛 fnOS / 群晖 / Unraid 等 NAS Docker 以及 Linux 物理机 / 虚拟机(Debian / Ubuntu / Armbian / PVE) 进行了内核级重构:
GOMEMLIMIT=60MiB)GOMEMLIMIT=60MiB 软上限;面板与 Sing-Box 双进程空闲常驻仅 45 ~ 55 MiB,千兆满载峰值不超 80 MiB。Self-Healing ip rule)1: local, 2: main, 3: default),导致 Sing-Box TUN 策略路由被阻断,局域网设备无法走代理。openbox-ctl & entrypoint.sh),启动与运行期自动消解 1/2/3 号冲突规则,实现 0 脚本维护、开机即用、100% 顺畅接管流量。uci 与 dnsmasq,在纯容器或精简 Linux 物理机中易报错、受污染或发生 DNS 泄露。TCP Fast Open (TFO) 压缩首包握手延迟;调优高并发参数(ulimit -n 65535、tcp_window_scaling=1、BBR 适配);内置日志防爆盘裁切(>5MB 自动轮转),保护设备闪存寿命。| 对比维度 | 原版 Open-Box (Upstream) | ROS-Box (本项目专属) |
|---|---|---|
| 适配平台 | 仅限特定 OpenWrt / Debian 环境 | MikroTik RouterOS 7.x + NAS Docker (飞牛 fnOS/群晖/Unraid) + Linux 物理机/虚拟机 (Debian/Ubuntu/Armbian/PVE) |
| 系统依赖 | 强依赖 uci、ubus、procd、宿主 dnsmasq | 零系统依赖,独立沙盒与自包含生命周期管理 |
| ROS 7.22+ 兼容 | ❌ 策略路由冲突,TUN 流量被拦截失效 | ✅ 内置 ip rule 自动修复与自愈引擎 |
| 空闲运行内存 | 180 ~ 350+ MiB (易导致路由器 OOM) | ✅ 仅 45 ~ 55 MiB (GOMEMLIMIT=60MiB) |
| 容器离线打包 | 镜像体积大,无开箱即用 RouterOS .tar | ✅ 内置 Gzip 高压 .tar 离线包 (~111 MB,解压后 223 MiB) |
| 硬件架构 | 视 OpenWrt 编译固件而定 | ✅ 官方双架构:linux/amd64 (x86物理机/工控机/NAS/CHR) + linux/arm64 (RB5009/ARM盒子等) |
| DNS 架构 | 注入宿主 dnsmasq,易受污染/泄露 | ✅ 内置 Smart DNS 多路竞速 (1~3ms) + Split-DNS 零泄露 |
| 视觉与体验 | 原生浅色,包含商业推广卡片与外链 | ✅ MikroTik 科技深蓝美学 + 3D 动力双环 Logo + 纯净去推广 |
| 更新自动化 | 手动下载更新 | ✅ GitHub Actions 每日 11:00 / 23:00 自动巡检上游并自动发版 |
⚠️ 部署前通用说明(必看): 文档中出现的局域网网段示例均为
192.168.88.x(假设主路由网关是192.168.88.1,分配给 ROS-Box 旁路由的空闲 IP 是192.168.88.2)。实际操作时,请务必将其替换为您自己局域网的真实网段与空闲 IP!(例如您的主路由是10.0.0.1,则将容器 IP 设为10.0.0.11/24,网关设为10.0.0.1)。
开启 RouterOS 容器功能: 在 WinBox 打开 Terminal,粘贴执行:
/system/device-mode/update container=yes
执行后按终端提示:拔插一次路由器电源(或按一下物理 Reset 键),或在虚拟机环境执行 /system/reboot 完成确认。
关于存储路径(disk1)的重要说明:
.tar 包直接存放在根目录即可,100% 避免路径不存在报错。disk1,将下方命令中的文件路径加上 disk1/ 前缀即可)。一键创建 VETH 虚拟网卡、网桥端口与持久化挂载卷:
打开 WinBox Terminal,修改第一行的容器 IP(192.168.88.2/24)与主路由网关(192.168.88.1)后整段粘贴执行(内置容错保护,重复执行不会报错):
# 1. 创建 VETH 虚拟网卡(请将 192.168.88.2/24 和 192.168.88.1 改为您的实际局域网空闲 IP 与主路由 IP)
:do { /interface/veth add name=veth-rosbox address=192.168.88.2/24 gateway=192.168.88.1 } on-error={}
# 2. 将虚拟网卡加入局域网 Bridge 网桥(若您的主网桥名称不是 bridge,请修改 bridge= 参数)
:do { /interface/bridge/port add bridge=bridge interface=veth-rosbox comment="ROS-Box Container VETH" } on-error={}
# 3. 创建持久化数据与配置挂载卷(系统会自动创建对应目录,升级容器配置不丢失)
:do { /container/mounts add name=rosbox-data src="disk1/rosbox/data" dst="/opt/ROS-Box/data" } on-error={}
:do { /container/mounts add name=rosbox-etc src="disk1/rosbox/etc" dst="/opt/ROS-Box/etc" } on-error={}
复制对应架构命令粘贴进 WinBox Terminal 回车,自动通过国内高速镜像下载最新离线包并创建容器:
amd64 架构):
/tool fetch url="https://ghproxy.net/https://github.com/zyeyefyass/ROS-Box/releases/latest/download/ROS-Box-amd64.tar" dst-path="ROS-Box-amd64.tar" mode=https; /container add file=ROS-Box-amd64.tar interface=veth-rosbox root-dir=disk1/rosbox/root mounts=rosbox-data,rosbox-etc logging=yes start-on-boot=yes comment="ROS-Box"
arm64 架构):
/tool fetch url="https://ghproxy.net/https://github.com/zyeyefyass/ROS-Box/releases/latest/download/ROS-Box-arm64.tar" dst-path="ROS-Box-arm64.tar" mode=https; /container add file=ROS-Box-arm64.tar interface=veth-rosbox root-dir=disk1/rosbox/root mounts=rosbox-data,rosbox-etc logging=yes start-on-boot=yes comment="ROS-Box"
如果路由器未配置 DNS 或无法联网,用电脑下载后拖入 WinBox 最快:
amd64):国内加速下载 ROS-Box-amd64.tar | GitHub 官方原链arm64):国内加速下载 ROS-Box-arm64.tar | GitHub 官方原链ROS-Box-amd64.tar(或 ROS-Box-arm64.tar)拖拽到 Files 列表最顶层根目录(若拖入了 disk1 文件夹内,请将下方 file= 改为 disk1/ROS-Box-amd64.tar)。ROS-Box-arm64.tar):
/container add file=ROS-Box-amd64.tar interface=veth-rosbox root-dir=disk1/rosbox/root mounts=rosbox-data,rosbox-etc logging=yes start-on-boot=yes comment="ROS-Box"
.tar 包的文件夹打开 PowerShell / CMD 运行:python -m http.server 8000192.168.88.10 替换为您的电脑局域网 IP):
/tool fetch url="http://192.168.88.10:8000/ROS-Box-amd64.tar" dst-path="ROS-Box-amd64.tar"; /container add file=ROS-Box-amd64.tar interface=veth-rosbox root-dir=disk1/rosbox/root mounts=rosbox-data,rosbox-etc logging=yes start-on-boot=yes comment="ROS-Box"
如果您的 RouterOS 可正常连接 Docker Hub,无需下载 .tar,直接拉取官方多架构镜像 fyasshole/ros-box:latest:
/container/config set registry-url=https://registry-1.docker.io tmpdir="disk1/pull"
/container add remote-image=fyasshole/ros-box:latest interface=veth-rosbox root-dir=disk1/rosbox/root mounts=rosbox-data,rosbox-etc logging=yes start-on-boot=yes comment="ROS-Box"
执行导入命令后,打开 WinBox 左侧 Container 窗口,观察容器状态从 extracting 变为 stopped(约需 5~10 秒),然后在 Terminal 执行启动命令(或在界面直接点击 Start):
/container/start [find comment="ROS-Box"]
启动后状态变为 running,浏览器直接访问 http://192.168.88.2:2026(您设定的容器 IP)即可进入管理面板!
本项目已发布至 Docker Hub (fyasshole/ros-box) 与 GitHub Container Registry (ghcr.io/zyeyefyass/ros-box),原生支持 linux/amd64 与 linux/arm64 双架构。
💡 NAS 部署网络模式选择指南(关键防坑):
- Macvlan 独立 IP 模式(最推荐 ⭐⭐⭐⭐⭐):为容器分配局域网独立 IP(如飞牛 NAS 是
192.168.88.10,ROS-Box 是192.168.88.2),彻底避免与 NAS 宿主机争抢 53 (DNS) 端口或污染宿主机路由表,体验等同于一台独立硬件旁路由。 (注:若您的飞牛 fnOS / 群晖安装在 PVE 或 ESXi 虚拟机 内,使用 Macvlan 需在 PVE/ESXi 虚拟网卡设置中开启 混杂模式 Promiscuous Mode;若不想开启混杂模式,请直接使用下方的 Host 网络模式)。- Host 网络模式(最简单,适合虚拟机内安装的 NAS):容器直接共享 NAS 宿主机 IP(访问地址为
http://<NAS_IP>:2026,旁路由网关也指向<NAS_IP>)。- Bridge 端口映射模式:⚠️ 注意:Bridge 模式由于经过 Docker NAT 隔离,不能将容器作为局域网透明旁路由网关(TUN),仅能通过
http://<NAS_IP>:7890在客户端软件中手动填写 HTTP/SOCKS5 代理使用。做透明旁路由请务必选 Macvlan 或 Host!
ros-box(或 fyasshole/ros-box),点击下载官方镜像(标签选择 latest)。通过 SSH 登录飞牛 fnOS,执行以下 3 条命令创建 Macvlan 网络(请将 192.168.88.0/24、网关 192.168.88.1、固定分配 IP 192.168.88.2/32 替换为您实际的局域网参数):
# 1. 查看飞牛主网卡名称(例如 enp3s0、eth0;若飞牛开启了虚拟机网桥通常为 enp3s0-ovs)
ip route | grep default
# 2. 开启物理网卡混杂模式(请将 enp3s0 替换为第 1 步查到的实际网卡名)
sudo ip link set enp3s0 promisc on
# 3. 创建名为 macvlan-net 的独立网络(通过 --ip-range 锁定分配 192.168.88.2)
sudo docker network create -d macvlan \
--subnet=192.168.88.0/24 \
--gateway=192.168.88.1 \
--ip-range=192.168.88.2/32 \
-o parent=enp3s0 \
macvlan-net
(注:由于上一步添加了 --ip-range=192.168.88.2/32,无论您下面用 Compose 还是纯图形界面创建容器,Docker 都会 100% 自动将该容器固定在 192.168.88.2!)
选法 A:通过飞牛「Compose → 新增项目」启动(最推荐,配置一目了然)
打开 飞牛 Docker → Compose → 新增项目,项目名称填 ros-box,选择存放路径后勾选 「创建 docker-compose.yml」,粘贴以下内容(将 192.168.88.2 改为您分配给 ROS-Box 的独立 IP):
services:
ros-box:
image: fyasshole/ros-box:latest
container_name: ros-box
restart: always
privileged: true
cap_add:
- NET_ADMIN
- SYS_ADMIN
devices:
- /dev/net/tun:/dev/net/tun
networks:
macvlan-net:
ipv4_address: 192.168.88.2 # 为 ROS-Box 分配的局域网独立旁路由 IP
dns:
- 223.5.5.5
- 119.29.29.29
volumes:
- ./data:/opt/ROS-Box/data
- ./etc:/opt/ROS-Box/etc
environment:
- TZ=Asia/Shanghai
- PORT=2026
- OPENBOX_PLATFORM=container
networks:
macvlan-net:
external: true
点击创建并启动后,直接在浏览器访问 http://192.168.88.2:2026 即可进入 ROS-Box 控制台!
选法 B:通过飞牛「本地镜像 → 运行」纯图形化向导创建
fyasshole/ros-box:latest 点击右侧 「运行」;data 文件夹 → 装载路径填 /opt/ROS-Box/data(权限:读写)etc 文件夹 → 装载路径填 /opt/ROS-Box/etc(权限:读写)macvlan-net(若不想用 Macvlan,也可在此直接选择 host 模式,此时访问地址与网关均为 飞牛宿主机IP);如果您在飞牛 fnOS / 群晖 / Unraid 上不想配置 Macvlan(或 NAS 运行在未开启混杂模式的虚拟机中),可直接使用 Host 网络模式 的 docker-compose.yml:
services:
ros-box:
image: fyasshole/ros-box:latest
container_name: ros-box
restart: always
network_mode: host
privileged: true
cap_add:
- NET_ADMIN
- SYS_ADMIN
devices:
- /dev/net/tun:/dev/net/tun
volumes:
- ./data:/opt/ROS-Box/data
- ./etc:/opt/ROS-Box/etc
environment:
- TZ=Asia/Shanghai
- PORT=2026
- OPENBOX_PLATFORM=container
如果您使用的是 x86 软路由小主机(N100 / J4125 等)、ARM 旁路由盒子(R2S / R4S / N1 等 Armbian 系统) 或 PVE / ESXi 独立 Linux 虚拟机,直接将该机器本身作为局域网透明旁路由网关时,执行以下命令即可一键完成部署:
# 1. 开启宿主机 IPv4 流量转发(作为旁路由网关必开)
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
# 2. 使用 Host 网络模式一键启动 ROS-Box(直接接管物理机网卡作为透明旁路由网关)
sudo docker run -d \
--name ros-box \
--restart always \
--network host \
--privileged \
--cap-add=NET_ADMIN \
--cap-add=SYS_ADMIN \
--device /dev/net/tun:/dev/net/tun \
-v /opt/rosbox/data:/opt/ROS-Box/data \
-v /opt/rosbox/etc:/opt/ROS-Box/etc \
-e TZ=Asia/Shanghai \
-e PORT=2026 \
fyasshole/ros-box:latest
启动后直接访问
http://<物理机IP>:2026进入管理面板,局域网设备将 网关 与 DNS 指向该<物理机IP>即可享受满血千兆透明代理加速。
面板的订阅配置、策略分流、DNS 防泄露、链式代理及多端客户端配对操作与上游 Open-Box 完全一致,可参考以下官方视频演示(建议**右键「在新标签页中打开」**或按住 Ctrl / ⌘ 点击):
http://<ROS-Box_IP>:2026(例如 http://192.168.88.2:2026),首次打开时设置管理员登录密码;192.168.88.50)255.255.255.0(或前缀长度 24)192.168.88.2)192.168.88.2)192.168.88.2);仓库内置 .github/workflows/upstream-sync.yml CI/CD 自动化流水线:
linux/amd64 与 linux/arm64)镜像编译构建,生成与上游版本号一致的 GitHub Releases 纯净 .tar 离线包,并同步推送至 Docker Hub (fyasshole/ros-box) 与 GHCR (ghcr.io/zyeyefyass/ros-box),实现永久无人值守自动同步。Content type
Image
Digest
sha256:1dab43e38…
Size
112.2 MB
Last updated
9 days ago
docker pull fyasshole/ros-box