适用场景:在 Proxmox VE (PVE) 中创建 OpenWrt 软路由虚拟机,用作主路由或旁路由。
整理来源:Optimus-Xs Blog《在 PVE 虚拟环境中安装 OpenWRT 流程》,原文发表于 2022-03-02,更新于 2025-07-17。
本文为操作型整理版,加入了主路由模式下常见配置建议和排错检查点。
1. 整体拓扑建议
在 PVE 里安装 OpenWrt,本质是让 OpenWrt 虚拟机接管路由功能。常见拓扑如下:
光猫 / 上级网络
|
PVE 物理网口 eth1 -> vmbr1 -> OpenWrt WAN
OpenWrt LAN
|
vmbr0 / eth0
|
交换机 / 下游电脑 / 手机 / AP
如果 OpenWrt 要作为主路由,核心原则是:
- OpenWrt 的 LAN 地址就是下游设备的网关,例如
192.168.202.1/24。 - 下游设备通过 DHCP 获取 IP,网关应指向
192.168.202.1。 - OpenWrt 的 WAN 口负责连接光猫、上级路由或公网。
- PVE 只是虚拟化平台,不应该和 OpenWrt 的 LAN/WAN 逻辑混乱在一起。
2. 安装 PVE
2.1 下载镜像
到 Proxmox VE 官方网站下载 ISO 镜像。
2.2 制作启动 U 盘
可以使用 Rufus、balenaEtcher、Ventoy 等工具写入 ISO。
2.3 安装 PVE
使用 U 盘启动服务器,按安装向导完成安装。
安装完成后,浏览器访问:
https://PVE_IP:8006
注意是 https,浏览器可能会提示证书不安全,选择继续访问即可。
3. 下载 OpenWrt 镜像
OpenWrt x86/64 镜像常见格式有:
.img
.img.gz
.qcow2
.vmdk
如果你下载的是 .img.gz,需要先解压为 .img:
gzip -d openwrt-x86-64-generic-squashfs-combined.img.gz
建议使用 x86/64 版本,并优先选择适合虚拟机的镜像。
4. PVE 网卡与 Linux Bridge 规划
4.1 基本概念
PVE 里的 vmbr0、vmbr1 可以理解为虚拟交换机。
例如:
| PVE 物理网卡 | Linux Bridge | 用途 |
|---|---|---|
| eth0 / enp1s0 | vmbr0 | LAN / 管理口 |
| eth1 / enp2s0 | vmbr1 | WAN |
| eth2 / enp3s0 | vmbr2 | 备用 LAN 或其他用途 |
| eth3 / enp4s0 | vmbr3 | 备用 LAN 或其他用途 |
实际网卡名可能是 eth0、enp1s0、eno1 等,以你的 PVE 页面或 ip addr 输出为准。
4.2 创建 Linux Bridge
在 PVE 后台:
节点 -> 系统 -> 网络 -> 创建 -> Linux Bridge
每个物理网口通常对应一个 bridge,例如:
vmbr0 -> 绑定 eth0
vmbr1 -> 绑定 eth1
如果应用配置时报错,可能是缺少 ifupdown2,可以在 PVE Shell 中执行:
apt update
apt install -y ifupdown2
5. 创建 OpenWrt 虚拟机
在 PVE 后台点击:
右上角 -> 创建虚拟机
建议配置如下:
| 项目 | 建议 |
|---|---|
| 名称 | OpenWrt 或 Router |
| VM ID | 记下来,后面导入磁盘会用到,例如 100 |
| 操作系统 | 不使用任何介质 |
| 系统 | 默认即可 |
| 硬盘 | 先默认创建,后面删除或分离 |
| CPU | 2 核起步,性能充足可 4 核 |
| 内存 | 512MB 起步,建议 1GB 或 2GB |
| 网络模型 | VirtIO 半虚拟化 |
| 启动自启 | 建议开启 |
6. 导入 OpenWrt 镜像到虚拟机
6.1 上传镜像
可以把 OpenWrt 的 .img 文件上传到 PVE:
local -> ISO 镜像 -> 上传
上传后,镜像路径通常类似:
/var/lib/vz/template/iso/openwrt-x86-64.img
6.2 删除默认磁盘
进入 OpenWrt 虚拟机:
硬件 -> 硬盘 -> 分离
硬件 -> 未使用的磁盘 -> 删除
硬件 -> CD/DVD 驱动器 -> 删除
6.3 导入镜像
在 PVE Shell 中执行:
qm importdisk 100 /var/lib/vz/template/iso/openwrt-x86-64.img local-lvm
说明:
100是你的虚拟机 VM ID。/var/lib/vz/template/iso/openwrt-x86-64.img是镜像路径。local-lvm是目标存储名称,按你的 PVE 实际存储名称修改。
导入完成后,PVE 硬件页面会出现一个“未使用的磁盘”。
6.4 挂载导入的磁盘
进入虚拟机硬件页面:
未使用的磁盘 -> 编辑/添加 -> 作为 SATA 或 VirtIO 磁盘挂载
然后进入:
选项 -> 引导顺序
把刚刚挂载的 OpenWrt 磁盘放到第一位。
7. 添加 OpenWrt 网卡
在虚拟机硬件页面添加网卡:
硬件 -> 添加 -> 网络设备
建议:
| OpenWrt 网口 | PVE Bridge | 用途 |
|---|---|---|
| net0 | vmbr0 | LAN |
| net1 | vmbr1 | WAN |
模型选择:
VirtIO 半虚拟化
如果你有多个 LAN 口,可以继续添加 vmbr2、vmbr3。
8. 启动 OpenWrt
启动虚拟机后,打开控制台。
如果正常启动,会进入 OpenWrt 命令行。
可以查看网卡:
ip addr
也可以查看 OpenWrt 网络配置:
cat /etc/config/network
9. 主路由模式下 LAN 配置重点
如果你的 OpenWrt LAN 网段是:
192.168.202.1/24
OpenWrt 的 LAN 配置建议类似:
config interface 'lan'
option device 'br-lan'
option proto 'static'
option ipaddr '192.168.202.1'
option netmask '255.255.255.0'
option ip6assign '60'
重点:
- LAN 自己就是网关,所以 LAN 口一般不要再配置 gateway 为自己。
- 下游设备的默认网关应该由 DHCP 下发为
192.168.202.1。 - DNS 可以由 OpenWrt 自己转发,也可以设置上游 DNS。
DHCP 配置示例:
config dhcp 'lan'
option interface 'lan'
option start '100'
option limit '150'
option leasetime '12h'
option dhcpv4 'server'
这样下游设备会获取类似:
IP: 192.168.202.x
Gateway: 192.168.202.1
DNS: 192.168.202.1
10. WAN 配置建议
如果 WAN 口接光猫或上级路由,通常使用 DHCP:
config interface 'wan'
option device 'eth1'
option proto 'dhcp'
如果你使用 PPPoE 拨号,则类似:
config interface 'wan'
option device 'eth1'
option proto 'pppoe'
option username '宽带账号'
option password '宽带密码'
11. 防火墙区域检查
OpenWrt 主路由模式下,通常需要:
| 区域 | 网口 | 说明 |
|---|---|---|
| lan | LAN | 下游内网,允许访问路由器 |
| wan | WAN | 外网,不允许外部主动访问内网 |
检查命令:
cat /etc/config/firewall
确认 LAN 到 WAN 有转发规则:
config forwarding
option src 'lan'
option dest 'wan'
12. 常见问题排查
12.1 下游设备拿不到 IP
检查:
/etc/init.d/dnsmasq restart
/etc/init.d/network restart
确认 DHCP 是否启用:
cat /etc/config/dhcp
12.2 下游设备有 IP,但不能上网
检查顺序:
ip addr
ip route
ping 192.168.202.1
ping 223.5.5.5
ping baidu.com
判断逻辑:
- 能 ping IP,不能 ping 域名:大概率是 DNS 问题。
- 连 IP 都 ping 不通:大概率是 WAN、网关、NAT 或防火墙问题。
- 下游设备 ping 不通
192.168.202.1:LAN 口、网桥、网线或 DHCP 配置问题。
12.3 OpenWrt 网口顺序不对
PVE 添加的 net0、net1 到 OpenWrt 里可能显示为 eth0、eth1,但顺序有时需要确认。
可以通过插拔网线、查看链路状态判断:
ip link
logread -f
12.4 PVE 后台访问不了
如果 PVE 管理 IP 放在 LAN 网段,确保:
- PVE 的管理 bridge 接在 LAN 侧。
- PVE 管理 IP 和 OpenWrt LAN 在同一网段。
- 不要把 PVE 管理口错误接到 WAN 侧。
13. 推荐最终检查清单
启动前确认:
- OpenWrt 虚拟机已设置开机自启。
- OpenWrt 磁盘已设置为第一启动项。
- WAN bridge 和 LAN bridge 没有接反。
- LAN 地址为
192.168.202.1/24。 - LAN DHCP 已启用。
- LAN 到 WAN 转发已启用。
- WAN 能正常获取 IP 或 PPPoE 能正常拨号。
- 下游设备默认网关为
192.168.202.1。 - 下游设备 DNS 正常。
14. 常用命令速查
# 查看网卡
ip addr
# 查看路由
ip route
# 查看网络配置
cat /etc/config/network
# 查看 DHCP 配置
cat /etc/config/dhcp
# 查看防火墙配置
cat /etc/config/firewall
# 重启网络
/etc/init.d/network restart
# 重启 DHCP/DNS 服务
/etc/init.d/dnsmasq restart
# 查看日志
logread -f
# PVE 导入磁盘
qm importdisk 100 /var/lib/vz/template/iso/openwrt-x86-64.img local-lvm
15. 资料来源与授权说明
本文根据 Optimus-Xs Blog《在 PVE 虚拟环境中安装 OpenWRT 流程》整理改写,并加入了主路由模式配置建议、排错步骤和检查清单。原文标注采用 CC BY 4.0 授权。
原文地址:
https://optimus-xs.github.io/posts/install-openwrt-in-pve/
No comments yet.