QNAP 部署 iStoreOS 旁路由 · 完整踩坑指南
适用:QNAP x86 机型(ARM 机型不支持 Virtualization Station)+ 想用 NAS 跑软路由旁路由(PassWall / OpenClash / 广告拦截等)。
实测环境:iStoreOS 24.10.8(x86_64)+ QNAP Virtualization Station(BIOS 模式)。
整理日期:2026-08-11
一、核心原理(先搞懂,后面不迷路)
- iStoreOS = OpenWrt 改版,需要完整网络栈,必须用 Virtualization Station 跑虚拟机,不要用 Container Station / Docker。
- 旁路由只需 1 张虚拟网卡,桥接(vswitch)到 QNAP 现有的物理网口,和主路由同 LAN 段。靠”手动改网关”让指定设备走它。
- ❗ 不需要额外网线,不需要 PCI 直通,不需要第二张物理网卡。
- QNAP 单网口:虚拟机和 QNAP 共用同一个口上网,互不冲突。
- 多网口(可选):把第二口接交换机、虚拟机桥接到第二口,旁路由崩了不影响进 QNAP 后台——只是”更稳”,不是”必须”。
二、准备工作
- App Center 安装并启用 Virtualization Station(虚拟机工作站)。
- 建两个共享文件夹备用:
Images(放原始镜像)、iStoreOS(放转换后虚拟盘)。
三、下载固件
去官方镜像站:https://fw.koolcenter.com/iStoreOS/
- 进
x86_64/目录(不是x86_64_efi/,因为你 VM 里 BIOS 设的是”原有 BIOS”非 UEFI)。 - 下载带
squashfs-combined的文件,如:
istoreos-24.10.8-2026073111-x86-64-squashfs-combined.img.gz - 本地用 7-Zip / bandizip 解压,得到
.img文件,上传到 NAS 的Images文件夹。 - 默认账号
root/ 密码password。 - 单网卡设备默认就是 LAN + 旁路由模式(双网卡才是 WAN+LAN 主路由),刚好契合需求。
四、建虚拟机(Virtualization Station)
1. 操作系统类型
下拉里没有 OpenWrt,选最通用的 Linux / Other Linux (64-bit) 即可。实测可选 Rocky Linux 10(列表里最新的 64 位 Linux)。QNAP 只拿这个选项决定默认驱动,最终从你自己的 .img 磁盘启动,不影响运行。
2. CPU / 内存
- 1 核 + 1GB 够旁路由;要跑 OpenClash/PassWall 这类插件建议 2 核 + 2GB。
- 启用内存共享:勾选。
3. BIOS
- 选 「原有 BIOS」(Legacy)。你下的是普通
combined.img(非 EFI 版),必须 Legacy,不要选 UEFI。
4. 网络(旁路由关键)
- 1 张网卡,连接到 Virtual Switch 1(和 QNAP 同一 LAN 段)。
- 型号 VirtIO(iStoreOS 能识别,性能最好)。
- 不需要点”添加网络适配器”。
- MAC 地址:默认即可,不需要改。Virtualization Station 给每个虚拟网卡自动分配独立 MAC,主路由会当作两台独立设备,不会和 NAS 识别成同一个。
五、⚠️ 最关键的坑:QNAP 不认 raw .img,必须转 qcow2
现象
- 创建虚拟机时”硬盘 → 现有映像”看不到你上传的
.img; - “映像转换器”只接受
.vmdk/.vdi作源,不认 raw .img; - “导入虚拟机”只接受
.ova/.ovf/.vmx/.qvm,也不认.img。
根因
威联通虚拟机只认”底层是 qcow2 格式”的 .img 文件。你手上的 iStoreOS .img 是 raw 格式,所以既不显示、转 vmdk 也白搭(QNAP 同样不认 vmdk)。
✅ 正确解法:raw → qcow2,且文件名保留 .img 后缀
在电脑(Windows)上用 qemu-img 转换(转换在本地跑,需要 .img 先在 Windows 上):
# 安装 qemu(Win10/11 自带 winget)
winget install qemu.qemu
# 转换:输出文件名必须是 .img 后缀!
& "C:\Program Files\qemu\qemu-img.exe" convert -f raw -O qcow2 `
"D:\test\istoreos\istoreos-24.10.8-2026073111-x86-64-squashfs-combined.img" `
"D:\test\istoreos\istoreos-qnap.img"
验证转换是否完整(关键!):
& "C:\Program Files\qemu\qemu-img.exe" info "D:\test\istoreos\istoreos-qnap.img"
看到 file format: qcow2 且虚拟大小(virtual size)与原始 raw 文件一致(约 2.38 GiB)即成功。
⚠️ 易错点:qcow2 会压缩空白扇区,磁盘占用只有 ~229MB(源 raw 是 2.37GB),这是正常的,不是截断,虚拟大小不变即可放心用。
之前有人转成.vmdk也是 229MB,但 QNAP 不认 vmdk,必须 qcow2 + .img 后缀。
继续创建虚拟机
- 硬盘 → 新增 → 添加现有硬盘 → 选
istoreos-qnap.img(这次能看到了) - 控制器选 SATA(VirtIO 在部分 OpenWrt 内核上识别不稳,SATA 最稳)
- 完成创建
六、首次启动 & 设定 LAN IP
- 点「开始」开机,打开控制台看跑码,出现登录提示后回车。
- 看 IP:
bash
ip addr
单网卡默认从主路由 DHCP 拿 IP(如192.168.50.178/24),也能去主路由后台客户端列表找它。 - 改成同网段静态 IP(避免 DHCP 变动),主路由是
192.168.50.1就设192.168.50.114:
bash
quickstart
选Change LAN IP→ 填 IP / 掩码255.255.255.0/ 网关填主路由 IP / DNS 填主路由或223.5.5.5→q退出 →service network restart。 - 浏览器访问
http://192.168.50.114,root / password登录。
七、配置为旁路由 + 开 NAT
- 首页 → 网络向导 → 配置为旁路由。
- 填:IP(同段空闲地址)、网关(主路由 IP)、DNS(主路由或
223.5.5.5)。 - 关闭「提供 DHCPv4 服务」(避免和主路由抢 DHCP,否则可能连 QNAP 都连不上)。
- 开启 NAT(IP 动态伪装)。
NAT 怎么补开(若自动配置时漏了)
网络 → 防火墙 → 基本设置 → 编辑 lan 区域 → 勾选 「IP 动态伪装(MASQUERADE)」 → 保存并应用。
或控制台:
uci set firewall.@zone[0].masq='1' # 默认 lan 是 zone[0]
uci commit firewall
service firewall restart
NAT 对「基础旁路由」非必须,但装 PassWall/OpenClash/WireGuard 等代理插件必须开,否则”连上打不开网页”。开后主路由侧设备流量源 IP 都变成旁路由自身,家用基本无影响。
改密码
系统 → 管理权,把 root 默认密码 password 改掉。
八、让设备走旁路由
PassWall 是透明代理,只对”网关指向它”的流量生效:
– 要科学上网的设备:网卡设置里把网关 + DNS 都填成旁路由 IP(192.168.50.114)。
– 没改网关的设备 = 直连主路由。
– 想”全家默认走代理”:主路由关 DHCP、旁路由开 DHCP 并下发自己为网关(新手不建议,旁路由崩了全家断网)。
– 旁路由自身不要动 QNAP 的网关(QNAP 保持走主路由),万一旁路由没配好还能进 QNAP 后台救。
九、安装 PassWall(iStoreOS 商店没有,用 .run 离线包)
商店装不了的原因
iStoreOS 官方源根本没收录 PassWall(有的版本只放 OpenClash),商店里搜不到是正常的。
⚠️ 修源脚本已失效
旧命令 sh -c "$(curl -sSL https://fw.koolcenter.com/iStoreOS/alpha/fix-istore.sh)" 现在返回 404 HTML 错误页,sh 把网页当脚本跑会报 sh: can't open html。真正的修复只是换域名:
sed -i 's/istore.linkease.com/istore.istoreos.com/g' /bin/is-opkg
sed -i 's/istore.linkease.com/istore.istoreos.com/g' /etc/opkg/compatfeeds.conf
sed -i 's/istore.linkease.com/istore.istoreos.com/g' /www/luci-static/istore/index.js
is-opkg update
✅ 推荐:iStore 手动安装 .run 离线包(依赖全打包)
匹配环境(iStoreOS 24.10.x / x86_64)的离线包:
– 文件名:PassWall_26.8.11_x86_64_all_sdk_24.10.run
– 下载:https://github.com/bcseputetto/Are-u-ok/releases/download/iStoreOS_24.10/PassWall_26.8.11_x86_64_all_sdk_24.10.run
安装:
1. 电脑浏览器下载 .run 文件。
2. iStoreOS 后台 → 顶部 iStore 应用商店 → 手动安装(上传/拖放 .run)。
3. 自动处理依赖,装完刷新后台,左侧「服务」出现 PassWall。
或 SSH 直接:
cd /tmp && wget -O passwall.run <上面URL> && sh passwall.run
⚠️ 装之前先ping -c 3 8.8.8.8确认旁路由能上外网,否则.run拉依赖会卡住。
十、PassWall 配置(装好只是壳,需自备节点)
- 加节点(二选一):
- 节点订阅:PassWall → 节点订阅 → 添加(备注 + 订阅 URL)→ 更新订阅 → 节点列表里看是否拉到。
- 手动添加:节点列表 → 添加 → 选 VLESS/VMess/Trojan/Hysteria2/SS → 填地址/端口/UUID/密码/加密/流控。
- 基本设置(核心):
- 启用主开关 ✅
- TCP 节点选一个(先「延迟测试」挑最低)
- UDP 节点可同节点或留空
- 默认代理模式:大陆白名单(国内直连、国外走代理,日常最稳)
- 保存并应用
- 测试:运行状态页点 Google 链接;设备上访问 youtube/google 验证,同时访问 baidu 确认国内直连正常。
常见坑
- 节点拉不到:订阅 URL 失效/被墙,换 URL 或手动填。
- 能连打不开网页:节点无效 / DNS 没设 / 模式错 → 切「全局」测,能通说明是分流规则或节点问题。
- 部分国内网站慢:确认模式是「大陆白名单」(国内应直连)。
十一、避雷速查表
| 坑 | 现象 | 解法 |
|---|---|---|
| QNAP 不显示 .img | 现有映像里看不到、转换器只认 vmdk | raw 转 qcow2,输出文件名保留 .img 后缀 |
| qcow2 只有 229MB | 以为截断 | 正常压缩,看 info 的 virtual size 是否与源一致 |
| 修源脚本 404 | sh: can't open html |
旧域名 istore.linkease.com → 新 istore.istoreos.com |
| 商店无 PassWall | 搜不到 | 用 .run 离线包手动安装 |
| 旁路由开不了网页 | NAT 没开 | lan 区域勾「IP 动态伪装」 |
| 全家断网 | 旁路由抢 DHCP | 关旁路由 DHCP,只改指定设备网关 |
这份指南由一次完整实战整理:从镜像下载、raw→qcow2 转换、建 VM、配旁路由、开 NAT,到 .run 离线装 PassWall,所有踩过的坑都已记录。
发表回复