外观
OPNsense 防火墙
OPNsense 是一套基于 FreeBSD 的开源防火墙/路由发行版,Web 界面完整,插件覆盖 IDS/IPS(Suricata)、Web 代理、VPN 等企业防火墙常见功能。相比 OpenWrt,它更偏「桌面级 pfSense 替代品」的定位:资源要求更高,但图形化配置更全面,几乎不用碰命令行。
在虚拟机里跑 OPNsense 能省一台设备,也方便用快照试验防火墙规则改动。风险和 OpenWrt 一样:这台虚拟机是单点,请先读完分类导读。
适合谁
| 你的情况 | 合不合适 |
|---|---|
| 想要成熟的 Web 界面管防火墙规则、别名、VPN | 合适,这是 OPNsense 相对 OpenWrt 的优势 |
| 需要 IDS/IPS、Web 内容过滤这类偏企业的功能 | 合适 |
| 机器资源紧张(1 核、512 MB 内存级别) | 不合适,见下方资源规划;这种情况 OpenWrt 更省 |
| 只想要基本的 NAT + 防火墙 | 两者都行,OpenWrt 更轻 |
| 家里/公司没有备用上网方式 | 先准备好再开始,见下方警示 |
开始之前:确认这三件事
- PVE 宿主机的管理网口不要挂在 OPNsense 的 WAN 侧,也不要让宿主机访问依赖 OPNsense 还没配置完成的防火墙规则放行。管理入口要独立于这台虚拟机能不能正常工作。
- 准备好断网应急方案:备用路由器或手机热点,以及知道怎么绕开它重新连回 PVE。
- OPNsense 的完整配置能一键导出为 XML,这份配置文件要单独备份,不要只依赖虚拟机的
vzdump。
资源规划
OPNsense 比 OpenWrt 吃资源,这是它功能更全面的代价。以下数字来自 OPNsense 官方硬件文档:
| 档位 | CPU | 内存 | 磁盘 | 适用场景 |
|---|---|---|---|---|
| 最低 | 1 GHz 双核 | 3 GB | 4 GB(不能用 Web 代理缓存、IDS 告警库等需要写盘的功能) | 只做基本路由+防火墙 |
| 合理 | 1 GHz 双核 | 4 GB | 40 GB SSD | 常见家用/小团队场景,本文按这档给建议 |
| 推荐 | 1.5 GHz 多核 | 8 GB | 120 GB SSD | 跑 Suricata IDS、Web 代理缓存等重负载功能 |
虚拟机里给多少
给虚拟机分 2 vCPU、4 GB 内存、40 GB 磁盘是一个稳妥的起点,对应官方的「合理」档。只跑基本 NAT 和防火墙规则的话内存可以降到官方最低值,但不要在虚拟磁盘上开缓存类插件,除非磁盘是 SSD 背景存储。
只支持 x86-64(amd64),不要在 ARM64 节点上尝试。网卡方面官方建议优先用 Intel 网卡,FreeBSD 的硬件兼容性和驱动成熟度通常好于其他厂商。
网卡规划
和 OpenWrt 一样,OPNsense 至少需要两个网络接口(WAN、LAN),可以是物理网卡直通,也可以是网桥桥接:
| 方案 | 说明 |
|---|---|
| 网桥桥接 | 给 WAN 单独建一个只挂物理网卡的网桥(例如 vmbr1),不要和管理用的 vmbr0 混用。多数场景选这个 |
| PCI 直通 | 性能更好、更贴近物理网卡的行为,但虚拟机不能快照迁移,见硬件直通 |
OPNsense 内核自带 VirtIO 驱动,网卡 Model 直接选 VirtIO (paravirtualized) 即可,不需要额外装驱动。虚拟机里看到的网卡设备名通常是 vtnet0、vtnet1。
WAN 和 LAN 千万不要接到同一个网桥
如果 WAN 和 LAN 都接 vmbr0,流量在二层就能互通,防火墙规则形同虚设,还可能出现路由环路。两个接口必须落在不同的网桥或不同的直通网卡上。
获取安装镜像
从 OPNsense 官方下载页获取镜像,核对官方公布的校验值。以官方下载页为准,选择当前的正式版本号,不要照抄教程里写死的旧版本。
下载页会提供几种镜像类型:
| 类型 | 适合 |
|---|---|
| dvd(cdrom,vga) | PVE 虚拟机首选:通过 noVNC 控制台看到图形安装界面,操作方式和普通 ISO 安装一致 |
| serial | 面向物理机的串口控制台场景,PVE 虚拟机一般不需要 |
| nano | 预置于 SD/CF 卡的嵌入式镜像,不适合虚拟机安装 |
在本地电脑核对校验值后,上传解压得到的 ISO 到 PVE:节点 → local → ISO Images → Upload。
创建虚拟机并安装
完整的选项解释见创建第一个虚拟机,这里只列和默认不同的地方:
| 标签页 | 字段 | 填什么 |
|---|---|---|
| General | Name | opnsense,勾上 Start at boot,Options → Start/Shutdown order 设成最先启动 |
| OS | Guest OS | Linux(OPNsense 基于 FreeBSD,但装向导里没有单独的 BSD 选项,选 Linux 通用配置即可) |
| System | Machine / BIOS | q35 + OVMF (UEFI) 或 SeaBIOS 均可,BIOS 引导更省事,不确定就用 SeaBIOS |
| System | SCSI Controller | VirtIO SCSI single |
| Disks | Bus | SCSI,容量 40 GB 起 |
| CPU | Cores | 2 起 |
| Memory | Memory | 4096 起 |
| Network | 第一张网卡 | 接 WAN 侧网桥/直通网卡,Model 选 VirtIO |
| Network | 第二张网卡 | 接 LAN 网桥(vmbr0 或专用网桥),Model 选 VirtIO |
挂载 ISO,启动,打开 Console(noVNC),按安装向导操作:登录安装环境用户名 installer,密码 opnsense(这是官方文档给出的默认安装账号,装完系统后的 Web 界面账号是另外设置的)。安装完成后弹出 ISO(Hardware → CD/DVD Drive 改成 Do not use any media),重启。
装完先确认接口分配
FreeBSD 识别网卡的顺序不一定和你在 PVE 里加网卡的顺序一致。首次启动后,安装程序或控制台菜单会让你确认哪个接口是 WAN、哪个是 LAN,核对清楚再继续,避免 WAN/LAN 接反导致防火墙策略方向错误。
第一次启动之后
LAN 接口默认地址通常是 192.168.1.1/24(具体以你安装时的选择为准)。从 LAN 侧一台电脑打开 https://192.168.1.1,用安装时设置的账号登录 Web 界面。
默认证书是自签名的
第一次打开会有证书警告,这是正常现象(自签名证书)。确认地址栏是你自己网段里的 IP 后可以继续。装完之后到 系统 → 信任 → 证书 里按需要换成你自己的证书,尤其是如果打算从外部访问管理界面。
WAN 接口按你的上网方式(DHCP、PPPoE 或静态)在 接口 → [WAN] 里配置,具体拨号参数以 ISP 提供的资料为准。
检查结果
- Web 界面能正常登录,
仪表盘能看到 WAN/LAN 接口状态均为 up。 - WAN 接口拿到了地址(DHCP/PPPoE 分配的公网或运营商内网地址)。
- LAN 侧客户机能通过 OPNsense 上网,
ping公共 DNS 能通。 防火墙 → 日志能看到流量被规则放行/拦截的记录,说明防火墙规则生效。- 重启虚拟机一次(
qm stop再qm start),确认联网自动恢复。 - 临时关闭虚拟机,确认依赖它的设备确实断网,验证你对单点故障的判断和上面的应急方案一致。
常见问题
Web 界面打不开。 先确认 LAN 网卡分配和接口绑定正确;如果是防火墙规则把管理端口挡住了,通过 PVE 的 Console 登录控制台菜单(8) Shell 或对应的重置选项)检查。
装完机器很卡。 检查是否给到了「合理」档以上的资源(2 vCPU / 4 GB 内存),并确认没有在低配置下开启 Suricata IDS 或 Web 代理缓存这类吃资源的功能。
WAN 一直拿不到地址。 确认 WAN 接口没有接错网桥,确认物理链路(交换机口、猫/光猫)工作正常,确认 ISP 需要的拨号方式(PPPoE 账号密码、MAC 地址绑定等)配置无误。
备份与维护
配置导出和 vzdump 都要做
系统 → 配置管理 → 备份 能导出完整配置为 XML 文件,包含防火墙规则、接口设置、证书等。这份文件要下载到 PVE 之外的地方,升级或改动重大规则前导一份。
vzdump 备份整块虚拟磁盘,恢复更彻底但更重。两者配合使用,参考配置备份任务。
大版本升级前,先在测试环境或用快照演练:给虚拟机打个快照,升级,出问题就回滚。直通了网卡的虚拟机没有这个选项,升级前务必先导出配置。