概述
iStoreOS 是基于 OpenWrt 的软路由系统,集成了 iStore 应用商店,适合作为旁路由使用。本文介绍如何在 PVE 中安装 iStoreOS 并配置 OpenClash 实现科学上网。
什么是旁路由
旁路由是指不作为主路由,而是作为网络中的一个节点,通过特定配置实现网络流量的分流、加速等功能。
优势:
- 不影响现有网络结构
- 可随时启停
- 配置灵活
- 便于测试和调试
前置条件
- Proxmox VE 已安装
- 至少 2GB 内存
- 8GB 存储空间
- 网络环境正常
第一步:下载 iStoreOS 镜像
官方下载地址
访问 iStoreOS 官网:https://www.istoreos.com/
或 GitHub Release 页面:https://github.com/istoreos/istoreos/releases
选择合适的版本
- x86_64 架构:适用于物理机和虚拟机
- ARM 架构:适用于 ARM 设备
下载文件示例:istoreos-22.03.6-2024-xxxx-x86-64-squashfs-combined.img.gz
解压镜像
gunzip istoreos-22.03.6-2024-xxxx-x86-64-squashfs-combined.img.gz上传到 PVE
方法 1:通过 Web 界面上传
- 登录 PVE Web 界面
- 选择存储(如 local)
- 内容 → 上传
- 选择解压后的.img 文件
方法 2:通过 SCP 上传
scp istoreos-*.img root@PVE-IP:/var/lib/vz/template/iso/方法 3:直接在 PVE 上下载
cd /var/lib/vz/template/iso/wget https://github.com/istoreos/istoreos/releases/download/xxx/istoreos-xxx.img.gzgunzip istoreos-xxx.img.gz第二步:创建虚拟机
通过 Web 界面创建
点击右上角”创建虚拟机”
常规设置
- 节点:选择 PVE 节点
- VM ID:如 101
- 名称:iStoreOS
操作系统
- 不使用任何介质(Do not use any media)
- Guest OS 类型:Linux
- 版本:6.x - 2.6 Kernel
系统
- 图形卡:默认
- 机器:默认 (i440fx)
- BIOS:默认 (SeaBIOS)
- SCSI 控制器:VirtIO SCSI
硬盘
- 总线 / 设备:VirtIO Block (scsi0)
- 存储:local-lvm
- 磁盘大小:8 GB
- 缓存:Write back
- 勾选:丢弃(Discard)
CPU
- 核心:2
- 类型:host
内存
- 内存:2048 MB
- 最小内存:512 MB(可选)
网络
- 桥接:vmbr0
- 模型:VirtIO (paravirtualized)
- 防火墙:关闭
完成但不要启动
通过命令行创建
qm create 110 --name iStoreOS --memory 4096 --cores 4 --cpu host --net0 virtio,bridge=vmbr0 --ostype l26qm set 110 --scsi0 local-data:8,cache=writeback,discard=on第三步:导入 iStoreOS 镜像
删除默认创建的磁盘
qm set 110 --delete scsi0导入镜像到虚拟机
qm importdisk 110 /var/lib/vz/template/iso/istoreos-xxx.img local-lvm参数说明:
101:虚拟机 ID/var/lib/vz/template/iso/istoreos-xxx.img:镜像路径local-lvm:存储位置
等待导入完成,会显示类似:
Successfully imported disk as 'unused0:local-lvm:vm-101-disk-0'附加磁盘到虚拟机
qm set 110 --scsi0 local-lvm:vm-101-disk-0设置启动顺序
qm set 101 --boot order=scsi0或通过 Web 界面:
- 选择虚拟机
- 选项 → 启动顺序
- 将 scsi0 拖到第一位
第四步:配置虚拟机网络
查看 PVE 网络配置
cat /etc/network/interfaces确认主网桥名称(通常是 vmbr0)
配置虚拟机网络(可选添加第二块网卡)
如果需要双网卡配置:
qm set 101 --net1 virtio,bridge=vmbr1第五步:启动虚拟机
启动虚拟机
qm start 101或通过 Web 界面点击”启动”
查看控制台
在 Web 界面点击”控制台”查看启动过程
第六步:访问 iStoreOS
默认 IP 地址
iStoreOS 默认 IP:192.168.100.1
修改网络配置(如果无法访问)
在 PVE 控制台中:
- 等待系统启动完成
- 按回车进入命令行
- 编辑网络配置:
vi /etc/config/network修改 lan 接口配置:
config interface 'lan' option device 'br-lan' option proto 'static' option ipaddr '192.168.1.2' # 修改为你的网段 option netmask '255.255.255.0' option gateway '192.168.1.1' # 主路由 IP option dns '192.168.1.1'重要:旁路由配置要点
- IP 地址:与主路由同网段,但不冲突(如主路由是 192.168.1.1,旁路由设为 192.168.1.2)
- 网关:填写主路由 IP
- DNS:填写主路由 IP 或公共 DNS
保存并重启网络:
/etc/init.d/network restart访问 Web 界面
浏览器访问:http://192.168.1.2(根据实际 IP 修改)
默认账户:
- 用户名:
root - 密码:
password或无密码
首次登录建议立即修改密码。
第七步:基础配置
修改密码
系统 → 管理权 → 密码
配置网络
网络 → 接口 → LAN → 编辑
确认配置:
协议:静态地址IPv4 地址:192.168.1.2IPv4 子网掩码:255.255.255.0IPv4 网关:192.168.1.1(主路由 IP)自定义 DNS 服务器:192.168.1.1 或 223.5.5.5保存并应用
关闭 DHCP 服务器
网络 → 接口 → LAN → 编辑 → DHCP 服务器
勾选”忽略此接口”(旁路由不需要 DHCP)
配置防火墙
网络 → 防火墙 → 常规设置
- 入站数据:接受
- 出站数据:接受
- 转发:接受
第八步:安装 OpenClash
方法 1:通过 iStore 安装(推荐)
- 访问 iStoreOS 主页
- 点击”iStore”图标
- 搜索”OpenClash”
- 点击”安装”
- 等待安装完成
方法 2:手动下载安装
下载 OpenClash
访问 GitHub Release 页面: https://github.com/vernesong/OpenClash/releases
下载最新版本的 ipk 文件:
luci-app-openclash_x.xx.x-x_all.ipk
上传并安装
通过 Web 界面:
- 系统 → 文件传输
- 上传 ipk 文件到
/tmp - 系统 → TTYD 终端
执行安装:
opkg updateopkg install /tmp/luci-app-openclash_*.ipk或使用 iStore 命令:
is-opkg install /tmp/luci-app-openclash_*.ipk安装依赖
opkg updateopkg install coreutils-nohup bash iptables dnsmasq-full curl ca-certificates ipset ip-full iptables-mod-tproxy iptables-mod-extra libcap libcap-bin ruby ruby-yaml kmod-tun kmod-inet-diag unzip luci-compat luci luci-base第九步:配置 OpenClash
访问 OpenClash
服务 → OpenClash
下载内核和数据库
配置设置 → 版本更新
点击以下按钮下载:
- ✓ 下载 Dev 内核(开发版,推荐)
- ✓ 下载 Meta 内核(Meta 版本)
- ✓ 下载 GeoIP 数据库
- ✓ 下载 GeoSite 数据库
等待下载完成(可能需要几分钟)
导入订阅配置
配置订阅
配置设置 → 配置文件订阅
点击”添加”
填写:
- 配置文件名称:自定义名称
- 订阅地址:你的订阅链接
- 自动更新:启用(可选)
- 更新间隔:选择合适的时间
保存配置
点击”更新配置”
手动导入配置文件
如果有本地配置文件:
- 配置设置 → 配置文件管理
- 上传配置文件(.yaml 格式)
- 选择上传的配置文件
基础设置
模式设置
配置设置 → 模式设置
- 运行模式:Fake-IP(增强)模式(推荐)
- 或选择:Redir-Host(兼容)模式
DNS 设置
配置设置 → DNS 设置
启用自定义 DNS:✓NameServer: - 223.5.5.5 - 119.29.29.29FallBack DNS: - 8.8.8.8 - 1.1.1.1IPv6 设置
配置设置 → IPv6 设置
- 禁用 IPv6 类型 DNS 解析:✓(如果不需要 IPv6)
流量控制
配置设置 → 流量控制
- 仅允许内网:✓
- 绕过中国大陆 IP:✓(根据需求)
启动 OpenClash
全局设置
- 启用 OpenClash:✓
- 点击”保存并应用”
等待启动完成,查看运行日志确认无错误。
第十步:客户端配置
方法 1:修改设备网关(推荐)
在需要使用旁路由的设备上:
Windows:
- 控制面板 → 网络和共享中心
- 更改适配器设置
- 右键网卡 → 属性 → IPv4
- 修改:
- IP 地址:自动或手动
- 默认网关:
192.168.1.2(旁路由 IP) - DNS 服务器:
192.168.1.2
Android/iOS:
- WiFi 设置 → 高级选项
- IP 设置:静态
- 网关:
192.168.1.2 - DNS:
192.168.1.2
macOS:
- 系统偏好设置 → 网络
- 高级 → TCP/IP
- 路由器:
192.168.1.2 - DNS → 添加:
192.168.1.2
方法 2:在主路由配置 DHCP(全局生效)
登录主路由管理界面,修改 DHCP 设置:
- 默认网关:
192.168.1.2(旁路由 IP) - DNS 服务器:
192.168.1.2
保存后,所有通过 DHCP 获取 IP 的设备都会使用旁路由。
方法 3:使用策略路由
在主路由上配置策略路由,指定某些设备或 IP 段走旁路由。
第十一步:验证配置
检查网络连接
ping baidu.comping google.com检查 DNS 解析
nslookup google.com访问测试网站
浏览器访问:
查看 OpenClash 状态
服务 → OpenClash → 运行状态
检查:
- 运行状态:运行中
- 连接数:有数据
- 上传 / 下载:有流量
查看节点延迟
服务 → OpenClash → 节点配置
点击”延迟测试”查看各节点延迟
常见问题和解决方案
无法访问 iStoreOS 管理界面
检查网络配置:
# 在 PVE 控制台中ip addr show确认 IP 地址正确
重置网络配置:
uci set network.lan.ipaddr='192.168.1.2'uci set network.lan.gateway='192.168.1.1'uci set network.lan.dns='192.168.1.1'uci commit network/etc/init.d/network restartOpenClash 无法启动
查看日志:
服务 → OpenClash → 日志
常见原因:
- 内核未下载:重新下载内核
- 配置文件错误:检查配置文件语法
- 端口冲突:修改监听端口
重启 OpenClash:
/etc/init.d/openclash restart无法访问外网
检查网关配置:
ip route show应该显示默认路由指向主路由
检查 DNS:
cat /etc/resolv.conf测试主路由连接:
ping 192.168.1.1部分设备无法使用
检查设备网关:
确保设备网关指向旁路由 IP
检查防火墙:
网络 → 防火墙 → 流量规则
确保没有阻止规则
OpenClash 订阅更新失败
手动更新:
# SSH 登录 iStoreOScd /etc/openclashwget -O config.yaml "你的订阅链接"/etc/init.d/openclash restart检查网络:
curl -I https://www.google.com虚拟机性能问题
优化 CPU:
qm set 101 --cpu host启用 VirtIO:
确保网卡和磁盘都使用 VirtIO
增加资源:
qm set 101 --memory 4096qm set 101 --cores 4高级配置
配置多个网卡
添加第二块网卡用于管理:
qm set 101 --net1 virtio,bridge=vmbr1在 iStoreOS 中配置:
vi /etc/config/network添加:
config interface 'wan' option device 'eth1' option proto 'dhcp'配置端口转发
网络 → 防火墙 → 端口转发
添加规则转发特定端口到内网设备
安装其他插件
通过 iStore 安装:
- AdGuard Home(广告拦截)
- KMS 服务器
- 文件浏览器
- Samba 共享
- Docker
配置 OpenClash 规则
自定义规则
配置设置 → 规则设置 → 自定义规则
添加规则示例:
# 直连规则- DOMAIN-SUFFIX,cn,DIRECT- DOMAIN-KEYWORD,baidu,DIRECT- GEOIP,CN,DIRECT
# 代理规则- DOMAIN-SUFFIX,google.com,PROXY- DOMAIN-SUFFIX,youtube.com,PROXY- DOMAIN-KEYWORD,github,PROXY
# 拦截规则- DOMAIN-SUFFIX,ad.com,REJECT策略组配置
配置设置 → 策略组设置
自定义策略组:
- 自动选择:根据延迟自动选择节点
- 故障转移:主节点失败时切换
- 负载均衡:分散流量到多个节点
配置流媒体解锁
配置设置 → 流媒体解锁
选择支持流媒体的节点,配置规则:
- DOMAIN-SUFFIX,netflix.com,流媒体- DOMAIN-SUFFIX,hulu.com,流媒体- DOMAIN-SUFFIX,disneyplus.com,流媒体定时任务
系统 → 计划任务
添加定时任务:
# 每天凌晨 3 点更新订阅0 3 * * * /usr/share/openclash/openclash.sh
# 每周日凌晨 4 点重启0 4 * * 0 reboot备份和恢复
备份 iStoreOS 配置
系统 → 备份 / 升级 → 备份 / 恢复
- 点击”生成备份”
- 下载备份文件(.tar.gz)
备份 OpenClash 配置
# SSH 登录cd /etc/openclashtar -czf openclash-backup.tar.gz *下载备份文件
恢复配置
系统 → 备份 / 升级 → 备份 / 恢复
- 上传备份文件
- 点击”恢复备份”
- 等待系统重启
备份整个虚拟机
在 PVE 中:
# 停止虚拟机qm stop 101
# 备份虚拟机vzdump 101 --storage local --mode stop
# 或通过 Web 界面:备份 → 立即备份性能优化
启用 BBR 加速
echo "net.core.default_qdisc=fq" >> /etc/sysctl.confecho "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.confsysctl -p验证:
sysctl net.ipv4.tcp_congestion_control优化 DNS 缓存
uci set dhcp.@dnsmasq[0].cachesize='10000'uci commit dhcp/etc/init.d/dnsmasq restart调整连接数限制
echo "net.netfilter.nf_conntrack_max=65535" >> /etc/sysctl.confsysctl -p优化虚拟机配置
# 启用 CPU host 模式qm set 101 --cpu host
# 优化网络qm set 101 --net0 virtio,bridge=vmbr0,queues=4
# 优化磁盘qm set 101 --scsi0 local-lvm:vm-101-disk-0,cache=writeback,discard=on,iothread=1安全建议
- 修改默认密码:首次登录后立即修改
- 关闭不必要的服务:系统 → 启动项
- 配置防火墙:只开放必要端口
- 定期更新:系统 → 软件包 → 更新列表
- 使用 HTTPS:系统 → 管理权 → HTTPS 证书
- 限制管理访问:只允许内网访问管理界面
- 定期备份:配置定时备份任务
监控和维护
查看系统状态
状态 → 概览
监控:
- CPU 使用率
- 内存使用率
- 网络流量
- 磁盘使用
查看实时日志
状态 → 系统日志
或使用命令:
logread -f查看网络连接
netstat -an | grep ESTABLISHED查看 OpenClash 连接
服务 → OpenClash → 连接
实时查看活动连接和流量
故障排除命令
# 重启网络/etc/init.d/network restart
# 重启 OpenClash/etc/init.d/openclash restart
# 重启防火墙/etc/init.d/firewall restart
# 查看路由表ip route show
# 查看 DNScat /etc/resolv.conf
# 测试 DNS 解析nslookup google.com
# 查看端口监听netstat -tlnp
# 查看进程ps | grep clash
# 查看内核日志dmesg | tail -50参考资料
Auth_Verified: 2026.04.08
