Docker部署OpenWrt/iStoreOS保姆级教程:NAS变身超级旁路由,网速起飞

Docker部署OpenWrt/iStoreOS保姆级教程:NAS变身超级旁路由,网速起飞

\n\n

\n \n

\n\n

\n 手里的NAS除了存照片、挂PT,还能怎么玩?对于喜欢折腾网络的玩家来说,利用Docker部署OpenWrt或者iStoreOS作为“旁路由(网关)”是性价比最高的玩法。无论你是群晖、威联通,还是树莓派、N1盒子、甚至网心云OEC,只要设备支持Docker,就能通过本教程,在不改动主路由配置的前提下,让家庭网络功能暴增(去广告、解锁更多功能等)。\n

\n

\n 今天这篇教程,我们拒绝废话,直接上实操干货,手把手教你在单网口设备上通过Macvlan模式完美运行OpenWrt。\n

\n\n

\n 一、 避坑指南:选择靠谱的Docker镜像\n

\n\n

\n Docker Hub上的固件千千万,选对镜像能省下一半的排错时间。经过长期实测,以下两个镜像最稳定:\n

\n\n

1. 经典通用版:OpenWrt (Sulinggg)

\n

\n 这是圈内大神苏苏制作的镜像,在Docker Hub上下载量极高。特点是集成度高,该有的插件都有,且同时支持 x86 和 ARM 架构(树莓派、N1等),属于“开箱即用”的省心选择。\n

\n
\n 镜像地址: sulinggg/openwrt\n
\n\n

2. 轻量化UI版:iStoreOS

\n

\n 如果你更喜欢简单的操作界面,或者想体验类似应用商店的插件安装方式,iStoreOS是目前的当红炸子鸡。这个镜像基于R2S固件移植,对新手非常友好。\n

\n
\n 镜像地址: kowming/istoreos-openwrt-n1-aarch64\n
\n\n

终端拉取命令(按需二选一):

\n
# 拉取 OpenWrt 镜像\ndocker pull registry.cn-shanghai.aliyuncs.com/suling/openwrt:armv8\n\n# 拉取 iStoreOS 镜像\ndocker pull kowming/istoreos-openwrt-n1-aarch64:istoreos
\n\n

\n 二、 核心步骤:开启混杂模式与创建Macvlan\n

\n\n

\n 这是旁路由能否成功的关键。我们需要让Docker容器拥有独立的IP地址,仿佛它是一台物理连接在路由器上的设备,这就需要用到 Macvlan 技术。\n

\n\n

1. 确认网卡名称

\n

\n SSH登录你的NAS或盒子(root权限),输入以下命令查看网卡信息:\n

\n
ifconfig
\n

通常显示的 eth0 就是你的物理网卡名称,记住它。

\n\n

2. 开启网卡混杂模式

\n

\n 为了让网卡能接收所有数据包(不仅仅是发给它自己的),必须开启混杂模式:\n

\n
ip link set eth0 promisc on
\n\n

3. 创建虚拟网络 (Macvlan)

\n

\n 请根据你自家的路由器网段修改下方的IP地址。假设你家主路由是 192.168.100.1,网段就是 192.168.100.x。\n

\n
docker network create -d macvlan \\\n--subnet=192.168.100.0/24 \\\n--gateway=192.168.100.1 \\\n-o parent=eth0 macnet
\n
    \n
  • subnet: 你的内网网段。
  • \n
  • gateway: 你的主路由器IP。
  • \n
  • macnet: 我们给这个虚拟网络起的名字。
  • \n
\n\n

\n 三、 启动容器:见证奇迹的时刻\n

\n\n

\n 网络铺好了,现在我们来启动系统。这里建议手动指定一个静态IP,防止IP冲突,方便后续管理。比如主路由是 .1,NAS是 .5,那我们可以把OpenWrt设为 .8。\n

\n \n

OpenWrt 启动命令:

\n
docker run --restart always --name OpenWrt -d \\\n--network macnet --ip 192.168.100.8 \\\n--privileged \\\nregistry.cn-shanghai.aliyuncs.com/suling/openwrt:armv8 \\\n/sbin/init
\n\n

iStoreOS 启动命令:

\n
docker run --restart always --name istoreos -d \\\n--network macnet --ip 192.168.100.7 \\\n--privileged \\\nkowming/istoreos-openwrt-n1-aarch64:istoreos \\\n/sbin/init
\n

⚠️ 注意:--privileged 参数非常重要,它赋予容器特权,否则无法进行网络转发。

\n\n

\n 四、 最后一步:修正容器内部网络\n

\n\n

\n 容器启动后,虽然我们要了指定的IP,但镜像内部的默认配置可能和你的局域网不一致,必须进入容器内部修改配置文件。\n

\n\n

1. 进入容器终端

\n
docker exec -it OpenWrt /bin/sh\n# 如果是iStoreOS,将 OpenWrt 换成 istoreos
\n\n

2. 修改网络配置 (Vim操作)

\n

输入以下命令编辑配置文件:

\n
vim /etc/config/network
\n\n

\n 操作提示:
\n 1. 按键盘 i 键进入编辑模式。
\n 2. 找到 config interface 'lan' 下面的部分。
\n 3. 修改 option ipaddr 为你刚才设定的IP(如 192.168.100.8)。
\n 4. 修改 option gateway 为你的主路由IP。
\n 5. 修改 option dns 为你的主路由IP或公共DNS(如 114.114.114.114)。
\n 6. 修改完成后,按 Esc 键,输入 :wq 回车保存退出。\n

\n\n

3. 重启网络服务

\n
/etc/init.d/network restart
\n

此时,你应该可以打开浏览器,输入 192.168.100.8 进入OpenWrt的管理后台了!默认密码通常是 password。

\n\n

\n 五、 如何愉快地使用?\n

\n\n

\n 部署完成后,家里的主网络并不会发生变化,家里人依然正常上网,不会受到任何影响,这就是旁路由的魅力。\n

\n

\n 如果你想让某台设备(比如手机、电脑、Apple TV)走OpenWrt的流量:\n

\n
    \n
  1. 打开手机/电脑的WiFi设置。
  2. \n
  3. 将 IP地址 改为手动,填入同网段IP。
  4. \n
  5. 将 路由器(网关) 地址填入OpenWrt的IP (192.168.100.8)。
  6. \n
  7. 将 DNS 地址也填入OpenWrt的IP。
  8. \n
\n\n

\n Docker部署OpenWrt不仅资源占用低,而且即使折腾坏了,删掉容器重来即可,简直是NAS玩家的必备技能。赶紧动手试试吧!\n

\n\n\n

六、 QNAP TS-464C2 实操要点:双 2.5G 网口可以更省事

前面的 Macvlan 方案是通用解,适合单网口设备。但如果你手上是 QNAP TS-464C2,它有两个 2.5GbE 网口,可以走一条更干净的路。

先确认你的机器规格

TS-464C2 搭载 Intel Celeron N5095 四核心处理器,标配 8GB DDR4 (可扩充至 16GB),4 盘位,双 2.5GbE 网口,内置 2 个 M.2 PCIe Gen 3 插槽, 运行 QTS 系统(QTS 5.2.1 起可切换至 QuTS hero)。

对旁路由场景来说,关键就一点:网口有两个。这意味着你不必和 Macvlan 的种种限制打交道。

方案对比:Macvlan vs 物理网口直通

Macvlan(通用方案):宿主机与容器不能直接通信,需要额外配置; 要开网卡混杂模式;部分环境下 DHCP 拿不到地址。好处是单网口也能用。

物理网口直通(TS-464C2 可用):把第二个 2.5G 网口单独分给 OpenWrt 容器,用 --network host 或直接指定物理接口。优点是 不需要 Macvlan、不需要混杂模式,宿主机与旁路由各自独立, 互不干扰,网络行为最接近一台真实路由器。

TS-464C2 上的具体做法

  1. 在 QTS 的「网络与虚拟交换机」里确认两个网口的名称(通常为 eth0 / eth1)。
  2. 把 eth0 留给 QTS 主机(管理后台、文件服务继续用它)。
  3. 把 eth1 规划给 OpenWrt 容器使用,接在同一台交换机或路由器上。
  4. 创建容器时用 --network host,或按 QTS 的 Docker 界面把 eth1 映射进容器。
  5. 进入容器后,把 OpenWrt 的 LAN/WAN 配置到 eth1 对应的接口上。

注意:具体接口名与 QTS 版本有关,务必先在「网络与虚拟交换机」里 核实,不要直接照抄 eth0/eth1。QTS 不同版本对 Docker 网络的支持也有差异,建议先在非关键时段试跑。

N5095 跑旁路由够用吗?

够。N5095 是四核 x86 处理器,跑 OpenWrt 这类轻量路由系统的负载远低于它的能力上限。 真正的瓶颈通常在网口带宽而不是 CPU——而 TS-464C2 的 2.5GbE 在这个价位属于宽裕配置。

如果你还想在这台机器上同时跑 Jellyfin 转码、Docker 应用和旁路由, N5095 的内置 GPU 可以分担转码,但建议关注内存占用——8GB 起步, 多容器并行时扩到 16GB 会更从容。

\n

相关阅读:各省 IPv6 可达性监测报告 · NAT 类型检测 · OpenWrt 单线多拨提速

\n