本文翻译自国外网站,较为详细地介绍了pfSense和OPNsense的差异,供初次使用的用户参考。在过去几年,许多用户决定使用OPNsense或pfSense作为家庭网络防火墙软件,也有部分用户从pfSense迁移到OPNsense。尽管我并非pfSense专家(在从消费级路由器迈向防火墙时我选择了OPNsense),但比较这两个平台的差异能为决策提供更多信息。OPNsense已发展超过8年,我很好奇两者这些年的发展路径有何不同。
需要明确,本文并非断定哪一方更优,而是客观展示两者的不同之处,帮助用户做出选择。我将尽力找出pfSense与OPNsense在功能上的对应关系,但部分选项可能由于位置或命名不同而被无意忽略。本次比较的版本为OPNsense 23.1与pfSense CE 2.6。
Web 界面
pfSense 与 OPNsense 最显著的差异在于 Web 用户界面,许多用户的选择也源于此。但除了界面,还有很多值得关注的地方。许多差异都与 UI 相关,同时我也会讨论平台提供的功能差异,一部分内置于界面,另一部分则影响系统行为。
与界面最直接的区别是菜单的位置:pfSense 的菜单栏位于页面顶部,使用下拉菜单;而 OPNsense 菜单栏位于左侧,使用可折叠菜单。

另一个区别是 OPNsense 顶部标题中的搜索栏。你可以用它搜索 Web UI 中任何页面的标题,输入名称时会显示可选择的页面列表。这对于不熟悉菜单位置或希望快速跳转的用户来说非常实用。

OPNsense 标题栏会始终显示当前登录用户,而 pfSense 需要将鼠标悬停在“注销”按钮上才能看到。两者标题栏都有系统通知状态指示器:OPNsense 显示一个气泡,有通知时会亮起不同颜色,pfSense 则显示带警报计数的铃铛图标。
仪表板
pfSense 和 OPNsense 的“仪表板”页面类似,但默认显示的信息略有不同。我们采用默认布局进行讨论。

仪表板:系统信息
pfSense 相比 OPNsense 多显示以下信息:
- 当前登录的用户(OPNsense 显示在搜索栏旁的右上角)
- “CPU类型”下的内置CPU加密信息列表(如 AES-NI),OPNsense 不显示
- 系统/BIOS 信息(用于识别 Netgate 等硬件)
- 硬件加密/CPU 与内核缓解功能
- DNS服务器
OPNsense 相比 pfSense 多显示的信息有:
- 磁盘使用情况(pfSense 需通过单独小部件查看)
值得指出的是,pfSense CE 运行在较旧的 FreeBSD 12 上,可能遇到硬件兼容性问题,例如 2.5G 网卡驱动。而 pfSense Plus 23.01 基于 FreeBSD 14,如果需要较新硬件支持,必须升级到 pfSense Plus。OPNsense 23.1 基于 FreeBSD 13。
仪表板:Netgate 服务和支持
pfSense 默认显示一个包含 Netgate 支持选项的小部件,可以移除。OPNsense 没有这类商业信息显示,但其背后也有业务支持服务。
仪表板:接口
两者“接口”小部件几乎相同,信息一致,图标略有差异。
仪表板:网关
pfSense 默认不显示“网关”小部件,但可以添加。两者显示的信息相同。
仪表板:其他小部件
默认安装下,pfSense 有 22 个小部件,OPNsense 有 17 个。
pfSense 专属而 OPNsense 缺少的小部件:
- 强制门户状态
- GEOM 镜像状态
- 动态 DNS 状态
- 安装包
- SMART Status(OPNsense 有插件支持)
- LAN 唤醒(OPNsense 有插件支持)
OPNsense 专属而 pfSense 缺少的小部件:
- CPU使用率
- Monit
- 系统日志
仪表板布局
pfSense 默认固定两列布局,要更改列数需前往“系统 > 常规设置”,可设置为 1 到 6 列。OPNsense 允许直接在仪表板调整列数,同样支持 1 至 6 列,默认两列。OPNsense 的许多小部件还允许显示/隐藏特定项目,便于只显示关键信息。我发现在宽屏显示器上使用 3 列布局能很好地利用水平空间,减少滚动。

菜单选项
pfSense 和 OPNsense 拥有相似的顶级菜单,我先讨论相似的菜单,再说明不同之处。有些选项在两个平台中的位置不同,比如 pfsense 的“系统”菜单内的选项,可能在 OPNsense 的“防火墙”菜单中,因此差异会在相应部分介绍。
系统菜单
两者都有“系统”菜单,包含系统相关的配置选项。

高级:管理员访问
pfSense 的“系统 > 高级”默认显示“管理员访问”页面,类似设置可在 OPNsense 的“系统 > 设置 > 管理”找到。pfSense 的“反锁定”选项位于 OPNsense 的“防火墙 > 设置 > 高级”,它可防止将自己锁在界面外,建议保持启用。pfSense 的“登录保护”功能类似 fail2ban,OPNsense 中可通过安装 CrowdSec 来实现,并能获得网络范围的恶意 IP 防护。
OPNsense 还提供一些 pfSense 缺少的选项,如为 SSH 选择监听接口(可限定仅为管理接口),而 pfSense 只能在所有内部接口上开启,需另加防火墙规则。OPNsense 还内置了 Web 界面的双因素认证,pfSense 即使通过插件也无法实现。
高级:防火墙和 NAT
pfSense 的“系统 > 高级 > 防火墙和 NAT”设置,在 OPNsense 中位于“防火墙 > 设置 > 高级”和“防火墙 > 设置 > 常规”下。OPNsense 缺少“VPN 数据包处理”和“状态超时”部分。OPNsense 提供了“防 DDOS:启用 syncookies”选项,pfSense 没有,这有助于缓解 DDoS 攻击。
高级:网络
pfSense 的 IPv6 及网络接口选项分散在 OPNsense 各处:“允许 IPv6”在“防火墙 > 设置 > 高级”,“优先使用 IPv4 over IPv6”在“系统 > 设置 > 常规”,硬件卸载在“接口 > 设置”。
高级:杂项
pfSense 的“Proxy 支持”OPNsense 默认没有,可能需要插件。节能、加密硬件和 RAM 磁盘设置可在 OPNsense 的“系统 > 设置 > 杂项”找到。“计划”和“网关监控”在“防火墙 > 设置 > 高级”。
高级:可调参数
两者都有可调参数页面,pfSense 位于“系统 > 高级 > 可调参数”,OPNsense 位于“系统 > 设置 > 可调参数”。OPNsense 的列表多一列“类型”,可直观区分运行时选项和启动时选项,并且允许直接输入“默认”值进行重置。
高级:通知
pfSense 有专门的通知页面,支持邮件、Telegram、Pushover、Slack 等,这是 OPNsense 没有的功能。但 OPNsense 默认安装了 Monit 服务,可通过它发送通知。Monit 不仅能通知,还能监控进程并重启故障服务。
接口菜单
两者接口菜单有所不同,OPNsense 将 pfSense“接口分配”页面上的多个选项独立为菜单项。分配新接口后,接口名称均会出现在菜单中以便配置。

接口分配
pfSense 的接口分配页签式设计,OPNsense 将 VLAN、LAGG、网桥等分组在“其他类型”菜单下。

OPNsense 的一个显著优势是可以在“接口: 分配”页面直接设置接口描述,而 pfSense 需创建后再点击接口名修改。

接口组
接口组在 pfSense 中位于“防火墙”菜单,而在 OPNsense 中位于“接口”菜单。两者功能相同,但 OPNsense 会在菜单中按组显示接口,非常直观;如果不希望分组,创建组时也有选项可以关闭。


防火墙菜单
两者“防火墙”菜单包含多个相同选项。“虚拟 IP”在 pfSense 位于“防火墙”下,OPNsense 位于“接口”下。“计划”在 OPNsense 位于“防火墙 > 设置”内。OPNsense 的“防火墙”菜单还包括“日志文件”和“诊断”页面,而 pfSense 将这些放在顶部“状态”和“诊断”菜单下。

OPNsense 提供“类别”功能,可以给规则分配类别,用于过滤规则列表。这在规则众多时非常有用,可实现视觉分组而非功能分组。下图显示了一个规则被标记后的界面。

选择类别后,列表仅显示该类别规则。

我在 OPNsense 中最常使用的功能是“防火墙 > 日志文件 > 实时视图”,它能实时显示当前执行的规则,在排查允许/阻止问题时非常方便。该页面支持过滤器,并可将常用过滤保存为模板。

pfSense 在“状态 > 系统日志 > 防火墙”下有一个“动态视图”,也能实时显示,但功能相对基础。

服务菜单
两者默认服务大致相同。

自动配置备份
pfSense 提供“自动配置备份”可将配置异地备份至 Netgate 服务器;OPNsense 内置 Google Drive 备份选项,并通过第三方插件支持 Nextcloud 备份。手动备份/恢复方面,pfSense 路径为“诊断 > 备份和恢复”,OPNsense 为“系统 > 配置 > 备份”。两者都会自动跟踪配置更改历史,并提供 Web 界面查看差异和恢复。

DHCP 中继
pfSense 有独立的 DHCP/DHCPv6 中继菜单,OPNsense 将其集成在 DHCPv4/DHCPv6 配置下。
DNS 转发器/解析器
两者默认都使用 Unbound DNS 作为解析器,也可配置为转发器。pfSense 的 DNS 转发器使用 Dnsmasq,OPNsense 的相同功能位于“服务 > Dnsmasq DNS”。
PPPoE 服务器
两者都支持作为客户端,但只有 pfSense 可作为 PPPoE 服务器。
动态 DNS、IGMP 代理、SNMP、UPnP 与 LAN 唤醒
这些功能在 pfSense 中内置,在 OPNsense 中通过插件提供。
入侵检测、监控、OpenDNS 与 Web 代理
OPNsense 在“服务”菜单下默认集成:
- 入侵检测(基于 Suricata),pfSense 需通过 Suricata 插件
- Monit 监控服务
- OpenDNS 集成
- Web 代理,pfSense 需安装 squid 插件
VPN 菜单
VPN 菜单几乎相同,但 OPNsense 未在 VPN 菜单下包含 L2TP;如需使用,需前往“接口 > 点对点 > 设备”选择 L2TP。

WireGuard 在两个平台上都通过插件提供。
帮助菜单
帮助菜单选项完全不同,但都包含“文档”和“用户论坛”链接,分别指向各自平台。

其他菜单差异
pfSense:状态菜单
pfSense 将所有状态页面集中在一个“状态”菜单下,减少点击次数。OPNsense 将状态页面分散在相关功能下,但可以通过标题搜索栏快速跳转。

pfSense 的“状态 > 流量图”功能简单,一次只能查看一个接口。

OPNsense 内置了丰富的报告功能。在“报告 > 健康状况”中可查看各接口流量、包速率、WAN 连接质量、系统状态等。

“分析”页面提供所有受监控接口的合并图表,以及顶部端口和源 IP 的饼图。

“流量图表”页面支持多接口叠加的实时流量显示,非常适合吞吐量测试。

此外,OPNsense 还新增了“Unbound DNS”报告,显示 DNS 统计和热门允许/阻止域名,需配合 Unbound DNS 的 DNSBL 功能。该报告仍处于早期开发阶段,但可部分替代 pfSense 中 pfBlockerNG 提供的功能。

pfSense 若要获得类似报告,需安装 ntopng 等插件或外部监控工具。
pfSense:诊断菜单
pfSense 将诊断工具和重启/关机等操作集中在“诊断”菜单下,菜单较长。OPNsense 将诊断页面拆分到相关功能子菜单下,如 ping 等网络工具在“接口 > 诊断”。

OPNsense:Zenarmor 菜单
这是由第三方插件创建的顶级菜单,较为独特。大多数 OPNsense 插件仅添加子菜单。

OPNsense:电源菜单
OPNsense 有独立的电源菜单,便于找到;pfSense 的关机和重启在“诊断”菜单下。

插件
接下来比较两个平台的插件生态,并列出等效功能的位置,这对迁移用户可能有帮助。之前已提及许多内置功能,此处不再赘述。
OPNsense 在“系统 > 固件”下分离了“插件”和“软件包”两个选项卡,插件通常带 Web 配置界面,软件包则是基础程序,可能无完整界面。pfSense 将所有附加组件统一视为插件。OPNsense 的插件/软件包页面提供搜索栏,可快速查找。

通用插件/包
两个平台共通的插件包括:
- acme
- apcupsd
- bind
- freeradius
- frr
- ftp-proxy
- haproxy
- iperf
- lcdproc
- lldpd
- ahavi/mdns-repeater
- net-snmp
- node_exporter
- nrpe
- ntopng
- nut
- siproxd
- stunnel
- telegraf
- tftp
- tinc
- vmware
- vnstat
- wireguard
- zabbix-agent 系列
- zabbix-proxy 系列
仅在 pfSense 中可用的插件
- arping(OPNsense 有“接口 > 诊断 > ARP 表”)
- arpwatch(可通过社区仓库 OPNarp 替代)
- Backup
- bandwidthd
- cellular
- Cron(OPNsense 内置于“系统 > 设置 > Cron”)
- darkstat
- Filer
- haproxy-devel
- LADVD
- Lightsquid
- mailreport
- mtr-nox11
- Netgate_Firmware_Upgrade(针对官方硬件)
- nmap
- Notes
- openvpn-client-export(OPNsense 内置于“VPN > OpenVPN > Client Export”)
- pfBlockerNG(OPNsense 通过 Unbound 黑名单实现)
- pfBlockerNG-devel
- pimd
- RRD_Summary(OPNsense 内置 RRD 报告)
- Service_Watchdog
- Shellcmd
- snmptt
- snort(OPNsense Suricata 可使用 Snort 规则集)
- softflowd
- squid(可用其他缓存插件替代)
- squidGuard
- sudo(OPNsense 默认开启,位于“系统 > 设置 > 管理”)
- suricata(OPNsense 内置于“服务 > 入侵检测”)
- syslog-ng(OPNsense 内置)
- System_Patches(OPNsense 可通过命令行安装补丁)
- Tailscale(OPNsense 通过社区仓库安装)
- zabbix-agent 部分旧版本
- zeek(OPNsense 社区仓库可用)
仅在 OPNsense 中可用的插件
- os-api-backup
- os-c-icap (pfSense squid 插件可替代)
- os-cache (pfSense squid 可替代)
- os-chrony
- os-clamav (pfSense squid 可集成)
- os-collectd
- os-crowdsec
- os-ddclient (pfSense 已内置动态 DNS)
- os-debug
- os-dmidecode
- os-dnscrypt-proxy
- os-dyndns (pfSense 已内置)
- os-etpro-telemetry
- os-firewall
- os-git-backup
- os-google-cloud-sdk
- os-grid_example
- os-helloworld
- os-hw-probe
- os-igmp-proxy (pfSense 已内置)
- 入侵检测内容订阅 (各类规则集)
- os-maltrail
- os-munin-node
- os-netdata
- os-nextcloud-backup
- os-nginx
- os-openconnect
- os-postfix
- os-puppet-agent
- os-qemu-guest-agent
- os-radsecproxy
- os-realtek-re
- os-redis (pfSense ntopng 包含)
- os-relayd
- os-rfc2136 (pfSense 动态 DNS 内置)
- os-rspamd
- os-sensei-agent
- os-sunnyvalley (可安装 Zenarmor)
- os-shadowsocks
- os-smart (pfSense 已内置)
- os-sslh
- os-tayga
- 多个 OPNsense 专用主题
- os-tor
- os-udpbroadcastrelay
- os-upnp (pfSense 已内置)
- os-virtualbox
- os-web-proxy-sso
- os-wireguard-go (两者都支持 WireGuard)
- os-wol (pfSense 已内置)
- os-xen
- os-zerotier
OPNsense 社区存储库
OPNsense 社区提供了额外的存储库,可通过 Routerperformance 获得更多插件。社区插件及第三方插件(包括 Zenarmor)不受官方支持,系统更新时可能存在临时兼容问题。
结论
尽管还有更多细节可以对比,但我希望以上的比较能帮助你在评估 pfSense 和 OPNsense 时有所依据。两者除了 Web 界面,还有不少功能差异。最终选择哪个平台,取决于你的具体需求和对家庭网络的规划。
觉得内容不错?我要