跳转到内容

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 更轻
家里/公司没有备用上网方式先准备好再开始,见下方警示

开始之前:确认这三件事

  1. PVE 宿主机的管理网口不要挂在 OPNsense 的 WAN 侧,也不要让宿主机访问依赖 OPNsense 还没配置完成的防火墙规则放行。管理入口要独立于这台虚拟机能不能正常工作。
  2. 准备好断网应急方案:备用路由器或手机热点,以及知道怎么绕开它重新连回 PVE。
  3. OPNsense 的完整配置能一键导出为 XML,这份配置文件要单独备份,不要只依赖虚拟机的 vzdump。

资源规划 ​

OPNsense 比 OpenWrt 吃资源,这是它功能更全面的代价。以下数字来自 OPNsense 官方硬件文档:

档位CPU内存磁盘适用场景
最低1 GHz 双核3 GB4 GB(不能用 Web 代理缓存、IDS 告警库等需要写盘的功能)只做基本路由+防火墙
合理1 GHz 双核4 GB40 GB SSD常见家用/小团队场景,本文按这档给建议
推荐1.5 GHz 多核8 GB120 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。

创建虚拟机并安装 ​

完整的选项解释见创建第一个虚拟机,这里只列和默认不同的地方:

标签页字段填什么
GeneralNameopnsense,勾上 Start at boot,Options → Start/Shutdown order 设成最先启动
OSGuest OSLinux(OPNsense 基于 FreeBSD,但装向导里没有单独的 BSD 选项,选 Linux 通用配置即可)
SystemMachine / BIOSq35 + OVMF (UEFI) 或 SeaBIOS 均可,BIOS 引导更省事,不确定就用 SeaBIOS
SystemSCSI ControllerVirtIO SCSI single
DisksBusSCSI,容量 40 GB 起
CPUCores2 起
MemoryMemory4096 起
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 提供的资料为准。

检查结果 ​

  1. Web 界面能正常登录,仪表盘 能看到 WAN/LAN 接口状态均为 up。
  2. WAN 接口拿到了地址(DHCP/PPPoE 分配的公网或运营商内网地址)。
  3. LAN 侧客户机能通过 OPNsense 上网,ping 公共 DNS 能通。
  4. 防火墙 → 日志 能看到流量被规则放行/拦截的记录,说明防火墙规则生效。
  5. 重启虚拟机一次(qm stop 再 qm start),确认联网自动恢复。
  6. 临时关闭虚拟机,确认依赖它的设备确实断网,验证你对单点故障的判断和上面的应急方案一致。

常见问题 ​

Web 界面打不开。 先确认 LAN 网卡分配和接口绑定正确;如果是防火墙规则把管理端口挡住了,通过 PVE 的 Console 登录控制台菜单(8) Shell 或对应的重置选项)检查。

装完机器很卡。 检查是否给到了「合理」档以上的资源(2 vCPU / 4 GB 内存),并确认没有在低配置下开启 Suricata IDS 或 Web 代理缓存这类吃资源的功能。

WAN 一直拿不到地址。 确认 WAN 接口没有接错网桥,确认物理链路(交换机口、猫/光猫)工作正常,确认 ISP 需要的拨号方式(PPPoE 账号密码、MAC 地址绑定等)配置无误。

备份与维护 ​

配置导出和 vzdump 都要做

系统 → 配置管理 → 备份 能导出完整配置为 XML 文件,包含防火墙规则、接口设置、证书等。这份文件要下载到 PVE 之外的地方,升级或改动重大规则前导一份。

vzdump 备份整块虚拟磁盘,恢复更彻底但更重。两者配合使用,参考配置备份任务。

大版本升级前,先在测试环境或用快照演练:给虚拟机打个快照,升级,出问题就回滚。直通了网卡的虚拟机没有这个选项,升级前务必先导出配置。

参考资料 ​

Proxmox VE 非官方中文使用指南,与 Proxmox Server Solutions GmbH 无隶属关系。