Proxmox VE 安装 OpenWrt 软路由:镜像导入、网卡桥接与 IP 配置指南
前言
OpenWrt 常见于物理软路由设备,也可以运行在 Proxmox VE 虚拟化环境中。把 OpenWrt 安装到 PVE 的好处是:硬件利用率更高,备份和迁移更方便,也便于和 NAS、旁路由、测试网络、Docker 服务等环境一起管理。
本文记录在 Proxmox VE 中安装 OpenWrt x86 镜像的完整流程,重点包括:
- 如何选择 OpenWrt x86 镜像;
- 如何在 PVE 中创建虚拟机;
- 如何上传、解压并导入 OpenWrt 镜像;
- 如何挂载导入后的磁盘并配置启动顺序;
- 如何规划单网卡旁路由和双网卡主路由;
- 如何修改 OpenWrt 的 LAN IP、网关、DNS 和 DHCP;
- 常见启动、网络和访问问题怎么排查。
如果你需要自己编译 OpenWrt 固件,可以先参考:使用 WSL 编译 OpenWrt 固件完整指南。本文则以已经准备好的 OpenWrt x86 镜像为例。
适用场景
这套方案适合以下场景:
| 场景 | 说明 |
|---|---|
| 单网卡旁路由 | 家里已有主路由,OpenWrt 只负责插件、DNS、代理、分流等增强能力。 |
| 双网卡主路由 | OpenWrt 作为真正的主路由,一张网卡接 WAN,一张网卡接 LAN。 |
| 实验环境 | 用 PVE 快速启动 OpenWrt,验证插件、网络配置或固件功能。 |
| 虚拟化整合 | 在一台主机上同时运行 NAS、Linux、Docker、OpenWrt 等服务。 |
如果是第一次折腾,建议先用 旁路由模式,不要一开始就把 OpenWrt 放到全家网络的主路由位置,避免配置错误导致整个网络不可用。
Proxmox VE 与 OpenWrt 简介
Proxmox VE 是基于 Debian 的开源虚拟化平台,核心能力包括 KVM 虚拟机、LXC 容器、Web 管理界面、存储管理、网络桥接、备份和集群能力。
OpenWrt 是面向路由器、嵌入式设备和 x86 设备的 Linux 发行版。和普通路由器固件相比,OpenWrt 的特点是可写文件系统、可安装软件包、可通过 LuCI 管理界面配置网络、防火墙、DHCP、DNS、无线和各种插件。
本文安装的是 OpenWrt x86 镜像。如果你使用的是第三方 OpenWrt / LEDE 编译镜像,整体导入流程基本一致,但默认 IP、默认密码、内置插件、网卡命名和防火墙配置可能有所不同。
安装前准备
开始前需要准备:
- 已安装好的 Proxmox VE 主机;
- 能访问 PVE Web 控制台;
- 一个 OpenWrt x86 镜像,常见后缀为
.img.gz或.img; - 明确你的网络模式:旁路由还是主路由;
- 如果要做主路由,建议至少准备两张物理网卡,或提前规划 VLAN / bridge。
本文示例中虚拟机 ID 使用 101,存储使用 local-lvm,镜像文件名使用 openwrt.img。实际操作时请替换为你自己的 VMID、存储名称和镜像文件名。
OpenWrt x86 镜像怎么选
OpenWrt 官方 x86/64 目录通常会提供多种镜像,常见命名包括:
| 镜像类型 | 说明 | 适合场景 |
|---|---|---|
generic-ext4-combined.img.gz |
BIOS 启动,ext4 根文件系统 | 常见虚拟机安装,后续扩容更方便。 |
generic-squashfs-combined.img.gz |
BIOS 启动,squashfs + overlay | 更接近嵌入式固件体验,便于恢复默认状态。 |
generic-ext4-combined-efi.img.gz |
UEFI 启动,ext4 根文件系统 | PVE 虚拟机使用 OVMF / UEFI 启动时选择。 |
generic-squashfs-combined-efi.img.gz |
UEFI 启动,squashfs + overlay | UEFI 场景下使用。 |
对大多数 PVE 用户来说,推荐优先选择:
generic-ext4-combined.img.gz
原因是它使用传统 BIOS 启动,导入到 PVE 后配置简单,ext4 后续扩容也更直观。如果你在 PVE 虚拟机里明确选择了 UEFI,则选择带 efi 的镜像。
下载完成后建议校验文件完整性,例如:
sha256sum openwrt.img.gz
然后和下载目录中的 sha256sums 文件对比,避免镜像下载损坏。
创建 PVE 虚拟机
进入 PVE 管理页面,右键点击节点,例如 pve,然后选择 创建虚拟机。

填写虚拟机名称,例如 OpenWrt,然后点击 下一步。

操作系统这里选择 不使用任何介质。因为 OpenWrt x86 镜像不是通过 ISO 安装系统,而是直接把磁盘镜像导入为虚拟机磁盘。

系统页面如果使用 BIOS 镜像,保持默认 SeaBIOS 即可;如果你选择的是 combined-efi 镜像,则需要对应使用 OVMF / UEFI。

磁盘页面可以先创建一个临时磁盘,后面会删除。也可以根据 PVE 版本不同,在创建完成后再处理磁盘。

CPU 根据实际需求配置。普通家用旁路由 1~2 核通常就够用;如果跑较多插件、代理或流量较大,可以适当增加。

内存可以从 512 MB~2 GB 起步。插件较多时建议 1 GB 或 2 GB。

网络部分建议先选择默认 bridge,例如 vmbr0。网卡模型优先使用 VirtIO,性能更好;如果 OpenWrt 镜像识别不到 VirtIO 网卡,可以再尝试 E1000。

确认配置时,不要勾选 创建后启动。因为后面还要删除临时磁盘、导入 OpenWrt 镜像并调整启动顺序。

删除临时磁盘
如果创建虚拟机时生成了临时磁盘,可以先在虚拟机的 硬件 页面选中磁盘,然后点击 分离。

确认分离。

分离后会出现 未使用的磁盘0,继续选中并删除。

确认删除。

这一步的目的,是让虚拟机后续只使用导入的 OpenWrt 镜像磁盘启动,避免启动顺序混乱。
上传并解压 OpenWrt 镜像
如果下载到的是 .img.gz 文件,可以通过 SFTP、SCP 或 PVE Web Shell 上传到 PVE 主机,例如放到 /tmp 目录。

进入镜像所在目录后解压:
cd /tmp
gzip -d openwrt.img.gz
解压后会得到:
openwrt.img


如果文件已经是 .img,可以直接上传。也可以借助 PVE 的上传入口把文件先上传到某个存储目录,但要注意:OpenWrt 的 .img 不是 ISO 安装盘,上传后仍然需要通过命令导入为虚拟磁盘。

如果不确定文件上传到了哪里,可以用 find 查找:
find / -name 'openwrt*.img' 2>/dev/null

导入 OpenWrt 镜像到 PVE 虚拟机
可以通过 SSH 连接 PVE,也可以直接使用 PVE Web 页面里的 Shell。

进入镜像所在目录,例如:
cd /tmp

推荐使用 PVE 当前命令形式:
qm disk import 101 openwrt.img local-lvm
也可以使用旧文章里常见的别名:
qm importdisk 101 openwrt.img local-lvm
参数说明:
| 参数 | 含义 |
|---|---|
101 |
虚拟机 ID,也就是 VMID。 |
openwrt.img |
OpenWrt 解压后的磁盘镜像文件。 |
local-lvm |
目标存储名称,需要替换为你的 PVE 存储。 |

执行后可以看到导入日志。

导入完成后,PVE 会在虚拟机硬件页面生成一个 未使用的磁盘。

挂载导入后的磁盘
回到虚拟机的 硬件 页面,可以看到新导入的 未使用的磁盘0,点击 编辑。

总线类型可以选择 SATA,也可以选择 VirtIO Block / SCSI。为了兼容性,初次安装可以选择 SATA;如果熟悉 PVE 和 OpenWrt 驱动情况,可以选择性能更好的 VirtIO / SCSI。

添加成功后如下。

配置启动顺序
进入虚拟机 选项,找到 引导顺序。

把刚刚挂载的磁盘,例如 sata0,勾选为启用,并调整到第一位。

确认后可以看到启动顺序已经变成 sata0 优先。

网络拓扑怎么选
OpenWrt 安装本身不复杂,真正容易出问题的是网络拓扑。建议先确认你要做的是旁路由还是主路由。
方案一:单网卡旁路由
旁路由适合家里已经有主路由的情况。OpenWrt 不直接接管所有设备的 DHCP 和默认网关,而是作为同网段中的一台增强设备。
示例:
| 设备 | IP |
|---|---|
| 主路由 | 192.168.1.1 |
| PVE 管理地址 | 192.168.1.10 |
| OpenWrt | 192.168.1.2 |
| 普通客户端 | 192.168.1.x |
旁路由模式建议:
- OpenWrt 的 LAN IP 设置为和主路由同网段,例如
192.168.1.2; - OpenWrt 的网关设置为主路由,例如
192.168.1.1; - OpenWrt 的 DNS 可以指向主路由,也可以指向公共 DNS;
- 如果主路由已经开启 DHCP,OpenWrt 上建议关闭 DHCP,避免地址分配冲突;
- 需要走 OpenWrt 的设备,可以手动把网关或 DNS 指向 OpenWrt。
这是最适合新手的模式,因为即使 OpenWrt 配错了,也不会影响主路由本身。
方案二:双网卡主路由
主路由模式下,OpenWrt 直接承担路由器职责。通常需要两张网卡:
| 网卡 | 作用 |
|---|---|
| WAN | 接光猫、上级路由或运营商网络。 |
| LAN | 接交换机、AP 或内网设备。 |
在 PVE 中一般会有两个 bridge,例如:
| PVE Bridge | 连接对象 | OpenWrt 角色 |
|---|---|---|
vmbr0 |
管理口 / LAN | LAN 或管理网络 |
vmbr1 |
独立物理网卡 | WAN |
主路由模式风险更高,尤其要注意:
- 不要把 PVE 管理地址所在网卡误配置成 OpenWrt 的 WAN,避免失联;
- 如果要调整 PVE 的 bridge,建议先准备显示器、键盘或带外管理;
- 防火墙、DHCP、PPPoE、VLAN 都要规划清楚后再切换;
- 初次配置建议先离线验证,再接入真实家庭网络。
启动 OpenWrt
确认磁盘和启动顺序都正确后,点击右上角 启动。

打开控制台,如果看到类似:
Please press Enter to activate this console.
说明 OpenWrt 已经启动完成,按回车进入控制台。

如果卡在启动阶段,优先检查:
- 镜像是否选择了正确的 BIOS / UEFI 版本;
- 启动顺序是否把 OpenWrt 磁盘放在第一位;
- 磁盘总线是否兼容,必要时换成 SATA;
- 镜像是否完整,必要时重新下载并校验 sha256。
修改 OpenWrt LAN IP
OpenWrt 默认 LAN IP 常见为 192.168.1.1。如果这个地址和你的主路由冲突,需要先修改。
可以编辑配置文件:
vi /etc/config/network

找到 config interface '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'
list dns '192.168.1.1'

保存后重启网络:
/etc/init.d/network restart
也可以使用 UCI 命令修改,更适合复制执行:
uci set network.lan.ipaddr='192.168.1.2'
uci set network.lan.netmask='255.255.255.0'
uci set network.lan.gateway='192.168.1.1'
uci delete network.lan.dns 2>/dev/null
uci add_list network.lan.dns='192.168.1.1'
uci commit network
/etc/init.d/network restart
如果是旁路由模式,并且主路由已经提供 DHCP,建议关闭 OpenWrt DHCP:
uci set dhcp.lan.ignore='1'
uci commit dhcp
/etc/init.d/dnsmasq restart
注意:不同 OpenWrt 版本和第三方固件的默认配置可能不完全相同。修改前可以先备份:
cp /etc/config/network /etc/config/network.bak
cp /etc/config/dhcp /etc/config/dhcp.bak
访问 LuCI 管理界面
配置完成后,在浏览器访问 OpenWrt 的 LAN IP,例如:
http://192.168.1.2

如果无法访问,按下面顺序排查:
- 客户端和 OpenWrt 是否在同一网段;
- PVE 虚拟机网卡是否接到了正确的 bridge;
- OpenWrt 控制台中执行
ip addr看接口是否获取到配置; - 执行
ping 192.168.1.1测试到主路由是否通; - 执行
ping 223.5.5.5测试外网 IP 是否通; - 执行
ping openwrt.org测试 DNS 是否正常; - 检查防火墙区域是否把接口放到了正确的 LAN / WAN 区域。
常见问题排查
1. 导入镜像后没有看到磁盘
检查 VMID 和存储名称是否正确:
qm list
pvesm status
重新导入时注意命令格式:
qm disk import <VMID> <镜像路径> <存储名称>
导入成功后,磁盘通常会显示为该虚拟机的 未使用的磁盘,需要手动添加到硬件配置中。
2. 启动后提示找不到系统
常见原因:
- 没有把导入磁盘挂载到虚拟机;
- 没有把该磁盘设置为第一启动项;
- BIOS / UEFI 与镜像类型不匹配;
- 镜像文件损坏或下载不完整。
可以先把磁盘总线改为 SATA,并确认启动顺序。
3. OpenWrt 识别不到网卡
优先尝试:
- 将网卡模型从 VirtIO 改为 E1000;
- 检查 OpenWrt 镜像是否包含 virtio 网卡驱动;
- 在控制台执行
ip link查看接口名称; - 确认 PVE bridge 是否绑定了正确的物理网卡。
4. PVE 管理页面突然访问不了
这通常和网络拓扑配置有关,尤其是把 PVE 管理口所在 bridge 调整为 OpenWrt WAN 或修改了上级网关。
建议:
- 操作前记录 PVE 管理 IP、网关和 bridge 配置;
- 主路由模式先准备本地控制台;
- 不确定时先做旁路由,不要直接替换主路由;
- 调整 PVE 网络前先备份
/etc/network/interfaces。
5. 旁路由没有效果
旁路由能否生效,取决于客户端是否真的把流量交给 OpenWrt。可以检查:
- 客户端网关是否指向 OpenWrt;
- 客户端 DNS 是否指向 OpenWrt;
- OpenWrt 自己的网关和 DNS 是否正确;
- OpenWrt 是否关闭了和主路由冲突的 DHCP;
- 防火墙、NAT、插件规则是否正确。
小结
在 PVE 中安装 OpenWrt 的核心流程可以概括为:
- 下载 OpenWrt x86 镜像;
- 创建不带安装介质的 PVE 虚拟机;
- 删除临时磁盘;
- 解压
.img.gz; - 使用
qm disk import或qm importdisk导入镜像; - 挂载导入后的磁盘;
- 设置启动顺序;
- 启动 OpenWrt;
- 修改 LAN IP、网关、DNS 和 DHCP;
- 根据旁路由或主路由模式调整网络。
真正需要谨慎的不是镜像导入,而是网络规划。建议新手先从旁路由模式开始,确认 PVE、OpenWrt、主路由和客户端之间的关系后,再考虑让 OpenWrt 承担主路由职责。