☰
VMware虚拟机安装pfSense:开源防火墙实战指南
2026/10/1 1:40:03 网站建设 项目流程

1. 在虚拟机上跑pfSense,图的是什么

在VMware虚拟机里装一个pfSense开源防火墙,是我这几年给新人推荐次数最多的网络实验项目之一。原因很简单:不用买硬件,不用动当前办公或家里的现有网络,随手就能搭出一台功能完整的企业级防火墙,还能随便折腾、随便删。很多人第一次听到"防火墙"三个字,脑子里想的是某台企业机房里闪烁的1U硬件设备,或者是云控制台里需要单独购买的安全组件。实际上pfSense这类开源防火墙装在一台普通虚拟机里就已经可以支撑完整的安全策略实验了。

这篇文章就聚焦三件事:去哪下载、怎么装进VMware、怎么让它先跑起来并做出最基础的安全策略。我会把自己安装过程中踩过的坑、反复确认过的细节都写出来,包括为什么网卡要这样选、为什么装完访问不了后台、为什么明明配置了却不通。如果你正准备搭一台虚拟防火墙练手,这篇文章可以直接跟着抄。

1.1 为什么选pfSense而不是普通路由器

家用宽带路由器其实也带防火墙功能,但那是黑盒。无论是几十块的运营商赠品路由器,还是千元级Wi-Fi 6设备,背后的安全机制基本都固化在厂商固件里。用户能看到的只有端口映射、DMZ、IP/MAC过滤这几个选项,而且日志极其简陋,出了问题根本不知道是哪个请求被拦了、为什么被拦。

pfSense不一样。它是开源的、模块化的,基于FreeBSD系统,把状态检测防火墙、NAT、DHCP、DNS转发、流量整形、多WAN、入侵检测等能力集中在一个Web管理界面里。它不挑硬件,物理机可以装,VMware里也可以装,而且社区文档非常厚。更关键的是,它的规则是显式可见的,每条规则命中多少次、匹配哪条策略都有实时状态表,这对理解网络工作原理特别有帮助。

如果你只是想要一个"能上外网"的路由器,pfSense对你来说可能有点大材小用。但如果你想搞清楚防火墙的规则是怎么按顺序匹配的、NAT和路由之间是什么关系、为什么内网能访问外网但外网访问不了内网,那pfSense就是非常合适的教学工具。

1.2 这套环境适合谁

我总结下来,以下几类人最适合在VMware里跑pfSense:

  • 刚入行的网络/运维工程师:想练手路由、NAT、防火墙规则,又不想买真机。虚拟化环境里随便删快照,比在物理设备上担惊受怕强太多。
  • 安全方向的学生:想研究端口扫描、异常流量、入侵检测规则,pfSense配合Suricata插件是很低成本的安全实验台。
  • 喜欢折腾的极客:想把家里网络搞成"多WAN叠加""按流量走不同线路""广告域名过滤"这种形态,先用虚拟环境把方案调通,再上物理机。
  • 半路出家的开发人员:需要本地模拟一个多网段环境,测试服务跨网段访问、端口转发等场景,pfSense这台虚拟机可以当"虚拟路由器"用。

虚拟环境还有一个天然优势:它的网卡本质上是一根虚拟网线,插到哪个VMnet虚拟交换机上就属于哪个网络。你可以在VMware的虚拟网络编辑器里随意创建多个隔离网络,再用pfSense把它们串起来。这种"物理上完全隔离、逻辑上任意互通"的拓扑,在真实机房几乎不可能这么低成本地实现。

2. 下载与建立虚拟机:版本坑和网卡选型

进入安装之前,有两个决定成败的细节必须先想清楚:一是下载哪个镜像,二是创建虚拟机的时候网卡怎么给。这两个地方如果不注意,后面会遇到"引导报错""网卡起不来""IP怎么都配不对"之类的问题。

2.1 先弄清版本:CE版和Plus版、ISO和memstick镜像

pfSense官方目前主要提供两个分支:Community Edition(社区版,简称CE)和Plus Edition。CE版是完全免费、公开的,普通学习和实验选它就好。Plus版虽然也提供免费对应家庭/实验室场景的订阅,但下载和授权流程更复杂,通常面向商业用户,没必要一上来就碰。

进入pfSense官网的下载页面后,你会看到几个镜像选项:

镜像格式适用场景虚拟环境建议
DVD Image (ISO) installer光盘或虚拟光驱引导安装选这个,挂载到VMware光驱里最省事
memstick installerU盘安装到物理机物理机安装才需要
USB Image installer嵌入式设备/工控机一般用不到

记得下载完看一眼SHA256校验值。官网每个下载链接旁边都会给hash值,Windows下可以用certutil -hashfile 你下载的文件名 SHA256核对一遍,防止镜像文件下载不完整或者被篡改。这一步很多人嫌麻烦跳过,但一旦装到一半报错,你根本不知道是镜像坏了还是操作错了。

另外注意下载的是amd64架构版本。虽然几乎所有人都会下意识选择64位,但还是要确认一下虚拟机操作系统类型。新建虚拟机时选择"FreeBSD 12.x 64-bit"或者"FreeBSD 64-bit",如果VMware版本较老没有FreeBSD 12的选项,选"Other FreeBSD x64"也可以。

2.2 新建虚拟机的参数怎么给

在Workstation里新建虚拟机时,自定义配置,不要用典型模式默认的一路下一步。因为pfSense需要至少两块网卡,一块模拟外网接口WAN,一块模拟内网接口LAN,默认模板只会给你一块。

我个人推荐这套参数,照着填基本不会出问题:

配置项推荐值说明
操作系统类型FreeBSD 12.x 64-bit 或 Other FreeBSD x64让VMware用正确的虚拟硬件兼容策略
CPU2核单核也能跑,但Web界面和防火墙引擎会更卡
内存2048 MB1GB也能装,但开着流量监控或者插件很容易吃紧
磁盘16 GB8GB是小分区警告门槛,16GB比较舒服
网络适配器1WAN,默认NAT模式即可后面会改成VMnet8或自定义外网
网络适配器2LAN,选择仅主机模式或自定义VMnet必须添加第二块网卡,否则后面没法做内网
启动固件BIOS或UEFI均可建议先用BIOS,老版本pfSense对UEFI支持不太友好

为什么最少要两块网卡?从网络概念上讲,防火墙是路由器和安全过滤器的结合体,它必须处于两个网络之间,一个口对着"外部",一个口对着"内部"。你当然可以在只有一块网卡的虚拟机里装上pfSense,但那样它既没有可管理的LAN,也没有可过滤的WAN流量,实验意义完全丧失。

磁盘大小方面,16GB是我认为的甜点值。pfSense系统本身占不了多少,但日志文件、系统更新、缓存和后续安装的插件包都会持续写入。磁盘给太小,跑一段时间后日志分区写满,控制台会一直报错。

2.3 网卡类型:e1000还是VMXNET3

这是安装pfSense时最容易忽视、也最容易栽跟头的选项。VMware虚拟网卡有多种类型,常见的有e1000(Intel PRO/1000千兆网卡模拟)、VMXNET3(半虚拟化高性能网卡)、以及旧版的e1000e。

VMXNET3性能确实更好,吞吐量更高、CPU开销更低,但它对FreeBSD内核的驱动要求更高。pfSense 2.7版本基于FreeBSD 12.3,已经内置了VMXNET3驱动,理论上可以直接用。但问题是,一旦你以后把虚拟机迁移到另一台主机、或者换了VMware版本,VMXNET3驱动的兼容性会出现各种玄学问题,比如网卡能识别但状态一直down,或者链路通但不转发数据包。

我的建议很简单:第一次装pfSense,网卡类型选e1000,最稳。e1000模拟的是Intel千兆网卡,几乎所有BSD系统对它都有完善的驱动支持,不会出现"装完系统找不到网卡"这种尴尬。等把pfSense从安装到基础配置整个流程跑熟了,再考虑把网卡换成VMXNET3压榨性能也不迟。甚至在实验环境里,e1000的千兆速率已经完全够用,没必要为了参数好看去折腾VMXNET3。

3. 安装过程实录:从ISO引导到控制台

镜像下载好、虚拟机参数也调好之后,接下来就是安装动作。整个过程和装其他BSD/Linux系统差不多,只有几个屏幕需要特别留意,其余一路Accept默认即可。

3.1 引导安装前的几个小动作

双击虚拟机打开设置,在CD/DVD(SATA)一栏里挂载刚才下载的pfSense ISO镜像。同时把启动顺序调整为"光驱优先于硬盘",虽然BIOS默认一般都会先引导光驱,但手动确认一次可以避免开机直接进了空硬盘找不到引导。

开机后看到的是GRUB引导菜单,有几个选项:BDI/installer、welcome etc. 直接选第一项安装pfSense。这里有个版本的差异点:新版本pfSense的安装菜单会包含Multi-user等选项,不要管,进默认安装项即可。

如果你是较老的VMware版本,或者安装过程中屏幕卡在引导早期阶段一直不动,我建议把虚拟机的固件类型从UEFI改成BIOS再试一次。原因是老版本pfSense对UEFI的引导支持不太稳定,虽然新版本基本都好了,但在虚拟环境里没必要赌这个,BIOS兼容性永远是最稳的。具体操作是在虚拟机设置里的"高级"选项卡,把固件类型选为"传统BIOS"。

3.2 分区与文件系统选择

进入安装程序后,英文界面一路顺着流程走,主要会有几个确认项:

  1. 提示"Continue with the installation?",选Yes。
  2. 提示键盘布局,默认US English即可,不用改。
  3. 分区方案,会有Auto (UFS)、Auto (ZFS)、Manual等选项。

分区这里,虚拟环境里的最佳选择是Auto (UFS),不是ZFS。ZFS功能确实强大,有快照、数据校验、压缩等能力,但它对内存和磁盘IO的要求也更高。在2GB内存的虚拟机上跑ZFS,比较吃紧,而且日常实验根本用不到它的高级功能。UFS简单直接,是BSD系统最经典的文件系统,安装快、兼容性好。

如果你后续想在虚拟机上做ZFS的存储池、快照链之类的实验,那再选ZFS;否则,老老实实用UFS。

后边还有一个设置管理员密码的界面,很多教程会让你留空,说初始admin密码是pfsense。注意:这个界面是让你给pfSense的操作系统root用户设置密码,和Web管理界面的admin账号不是同一个概念。我建议在这里也顺手设置一个强密码,不要偷懒。后面的Web初始化向导还会单独要求修改admin密码,两者都设置好,管理起来更干净。

安装完成后,系统会提示你重启。重启前记得把ISO镜像从虚拟光驱里卸载掉,否则又会重新进入安装引导。操作方式很简单:虚拟机设置里把CD/DVD连接改成"启动时连接"取消勾选,或者直接把该设备移除。

3.3 第一次引导看到什么

重启后,pfSense会进入控制台界面,通常会在屏幕中央显示类似这样的信息:

LAN interface IP address: 192.168.1.1 WAN interface IP address: 192.168.xxx.xxx (DHCP)

第一行就是Web管理界面的入口地址。pfSense默认的管理地址是192.168.1.1,用户名admin,密码pfsense。

如果这一刻你发现WAN接口没有显示IP,或者LAN地址不是你想要的网段,不要慌,这就是典型的"接口分配/网段冲突"问题,后面会专门讲。现在你只需要记住:这个字符界面的控制台是救命工具,就算Web界面进不去了,只要能进控制台,系统就还有救。

4. Web界面初始化与基础防火墙策略

从这里开始,pfSense就进入正式使用阶段了。安装只是开胃菜,Web界面里那一堆防火墙规则才是正餐。

4.1 让浏览器找到pfSense:宿主机和虚拟机的网段打通

第一次访问pfSense Web管理界面,最常见的失败场景不是用户名密码错误,而是页面根本打不开。原因很简单:pfSense默认LAN地址是192.168.1.1,但VMware虚拟网络往往不在这个网段。

以VMware Workstation默认的"仅主机模式"VMnet1为例,它的网段一般是192.168.xxx.0/24,宿主机虚拟网卡IP是192.168.xxx.1。pfSense把LAN口设置成192.168.1.1,两个网段完全不同,宿主机当然找不到它。

解决办法有两个,二选一:

  1. 修改pfSense的LAN接口IP:在控制台菜单输入数字2,进入Set Interface IP Address,选LAN,设置成和宿主机的VMnet1同一网段的静态IP,比如VMnet1是192.168.109.1/24,就把pfSense LAN设为192.168.109.2/24。之后浏览器直接访问192.168.109.2。
  2. 修改宿主机VMnet1的IP:打开VMware的虚拟网络编辑器,把VMnet1的网段改成192.168.1.0/24,宿主机虚拟网卡IP设为192.168.1.2/24,此时访问pfSense默认的192.168.1.1就能通。

我平时更推荐第一种方案,因为不用动宿主机网络,也不影响VMware里其他虚拟机的默认网络。如果你走第二种方案,记得先把VMnet1的DHCP服务关掉或者调整地址池,避免DHCP分配的地址和pfSense冲突。

4.2 用Web向导完成基础设置

浏览器输入pfSense LAN地址,会看到自签名的HTTPS证书警告,直接点继续/高级忽略即可,这是Web管理界的默认证书,不是网络被劫持。第一次访问会自动进入Setup Wizard,按下面的思路逐项填写:

  • Hostname:填pfSense或者你喜欢的名字。这个主机名主要用于DNS和系统标识。
  • Domain:填local或lab.local等内网域名。如果你没有内部DNS服务器,随便填一个合理的局域网域名即可,不要填成公网域名。
  • Primary DNS Server / Secondary DNS Server:填1.1.1.1和8.8.8.8。这里要注意,如果WAN是用DHCP方式从VMware NAT网络获取地址的,DHCP会自动下发DNS,手动填在这里是作为兜底。
  • Time server:保持默认的2.pfsense.pool.ntp.org即可。
  • WAN Interface:选择DHCP。如果用的是VMware NAT模式下虚拟外网,VMware内置的DHCP会自动分给pfSense一个外网地址。
  • LAN Interface:填192.168.x.2/24(如果你在控制台已经改过LAN IP,这里就是那个IP)。
  • Admin Password:修改Web管理用户的密码,不要再使用pfsense默认密码。这一步很重要,防火墙暴露在实验网络里虽然风险不大,但养成好习惯能省掉很多麻烦。

向导结束后,自动跳转到登录界面,用修改后的密码登录,进入Dashboard。这时候你已经拥有了一个最基础的、带Web管理界面和默认防火墙策略的软路由/防火墙系统。

4.3 默认防火墙规则和NAT的底层逻辑

很多人配置完向导后最迷惑的是:为什么LAN下面的机器可以上网?为什么我什么规则都没加,它就能通?这不是灵异事件,而是pfSense的两套默认机制在起作用。

第一套机制是防火墙自动规则。pfSense在安装完成时内置了三条默认规则:

方向源目的动作
LANLAN网段任意允许
WAN任意任意拒绝
WAN任意防火墙自身(管理协议+端口)允许

翻译成人话就是:从LAN口进来的一切流量默认放行;从WAN口进来的所有流量默认拒绝。这就是传统企业防火墙的默认策略——内网可信,外网可疑。你不需要手动创建一条"允许所有LAN流量"的规则,pfSense已经替你做了。

第二套机制是出站NAT(Source NAT)。当LAN内的客户端发起访问外网请求时,源IP是192.168.x.x这种私有地址,而WAN口上的是VMware NAT网段分配的地址,也可能是公网IP。数据包从LAN到WAN出去的过程中,pfSense会自动把源地址改写为WAN接口的IP,这就是典型的端口地址转换。

你可以在Firewall -> NAT -> Outbound里看到自动生成的规则。这一点很多人容易忽略,总以为NAT规则需要手动配,其实pfSense默认就把最常用的"内网共享WAN地址上外网"这条NAT做好了。

理解这两套默认机制后,暂时不需要额外添加规则。先把基础的"外网能通、内网能上、Web界面能管"这条链路跑稳,再慢慢改规则。

5. 虚拟网络模型的选型和排错实战

虚拟化环境里的网络概念比实体环境更抽象,但也更有意思。如果你把网络搞得乱七八糟,那就需要理解VMware的虚拟网络模型才能排查。

5.1 VMware三种网络模式在这个场景里的角色

VMware Workstation给每块虚拟网卡提供了几种连接方式,这里只讲和pfSense实验最相关的三种:

  • 桥接模式(Bridged):虚拟机直接占用宿主机所在局域网的网段,相当于把虚拟网卡接到和宿主机同一个物理交换机上。如果用来做pfSense的WAN口,它就从家里/办公室的路由器获取IP。这种模式比较"真实",但也会让pfSense直接暴露在局域网里,实验环境里慎用。
  • NAT模式(默认的VMnet8):宿主机充当虚拟网络的网关,给虚拟机分配独立网段,虚拟机通过宿主机共享IP访问外部网络。这种模式适合做pfSense的WAN口,因为"外网"是模拟出来的,且天然有一层隔离。
  • 仅主机模式(默认的VMnet1):虚拟机只能和宿主机以及同一VMnet下的其他虚拟机通信,没有通往外部网络的路径。这种模式完美适合做pfSense的LAN口,模拟纯内网环境。

所以一套最省心、最不容易出错的拓扑是:pfSense的WAN口接NAT模式(VMnet8),LAN口接仅主机模式(VMnet1)。另一台做测试用的Linux/Windows虚拟机,网卡也接VMnet1,就相当于接在pfSense的内网交换机上,可以通过pfSense访问"外网"。

5.2 推荐拓扑和验证步骤

按下面这套流程做,基本半小时就能看到完整效果:

  1. pfSense虚拟机两块网卡:适配器1设为NAT模式(WAN),适配器2设为仅主机模式(LAN)。
  2. 进入pfSense控制台,确认WAN口从VMnet8拿到了192.168.xxx.xxx的DHCP地址,LAN口是静态IP(如192.168.109.2/24,与VMnet1同网段)。
  3. 宿主机浏览器访问http://192.168.109.2,能打开Web界面。
  4. 创建一台测试虚拟机,网卡只接VMnet1仅主机模式,手动配置IP为192.168.109.10/24,网关填192.168.109.2,DNS填192.168.109.2或公网DNS。
  5. 在测试虚拟机上执行ping 192.168.109.2,通。再执行ping 1.1.1.1,如果通了,说明pfSense已经成功完成"LAN路由+NAT+防火墙放行"整套动作。

第5步在有些环境里会遇到"网关能ping通,但外网ping不通"。先不要急着改防火墙规则,按这个顺序排查:先确认pfSense自己的WAN口能不能ping 1.1.1.1;能通但客户端不通,大概率是客户端网关或DNS写错;WAN口都不通,就要检查VMware NAT服务的运行状态。

5.3 四个高频问题定位思路

问题一:宿主机访问不了pfSense Web界面。这个前面已经说了,核心原因是网段不一致。先在控制台用2号选项查看和修改LAN IP,确保它和宿主机VMnet1的IP在同一个网段。其次是检查Windows防火墙有没有拦截到VMnet1网卡的入站流量,实在不行临时关掉Windows防火墙再试一次。

问题二:WAN口获取不到IP。在VMware里,如果WAN口用的是NAT模式,但虚拟机的VMware NAT服务没有启动,pfSense就一直在等DHCP。打开Windows服务管理器,找到VMware NAT Service,确认状态是"正在运行"。另外,如果pfSense安装时只识别到一块网卡,也可能是因为创建虚拟机时第二块网卡没有添加,需要在虚拟机设置里新增。

问题三:安装之后WAN和LAN搞反了。这是接口分配问题。pfSense把哪块网卡识别为WAN、哪块识别为LAN,取决于你在虚拟机设置里的"网卡顺序"和pfSense控制台的接口分配。如果发现WAN地址出现在LAN网段、或者LAN地址出现在WAN网段,可以在控制台菜单选1) Assign Interfaces,重新指定WAN和LAN对应的网卡。注意这里的网卡在BSD系统里叫vtnet0、e1000?如果你是e1000,通常叫em0、em1,对应每块虚拟网卡的顺序。

问题四:LAN下客户端能ping通pfSense但上不了外网。除了网关和DNS配置问题外,最容易被忽略的是Windows客户端的默认路由漂移,尤其是测试虚拟机有多块网卡的时候。检查一下路由表,确保默认路由走的是192.168.109.2而不是其他网关。

5.4 善用快照和配置备份

搞虚拟化防火墙最大的福利就是快照。在pfSense安装完并完成基础Web配置后,我应该关掉虚拟机,右键点击虚拟机,选择"快照 -> 拍摄快照",命名成安装完成+基础配置。以后再改防火墙规则改崩了、插件装坏了、系统更新失败,直接回滚快照,几分钟恢复。

另外pfSense自带配置备份功能,在Diagnostics -> Backup & Restore里可以把当前全量配置下载成一个xml文件。我建议每次做重要改动之前都下载一份xml备份,存到宿主机或者网盘里。这样哪怕虚拟机整个丢了,只要有一台同样的pfSense安装好,导入xml备份就能恢复绝大部分配置。这个习惯在物理机上同样适用。

6. 装完以后还能怎么玩

当你的虚拟pfSense已经能正常上网、能进Web管理、能ping通内外网之后,这台虚拟机就不再是个“玩具”了。下面几个方向是我觉得最有实用价值的扩展玩法,随便挑一个都能折腾好一阵子。

6.1 插件全家桶:Suricata、ntopng、pfBlockerNG

在System -> Package Manager里可以直接搜索安装插件,相当于给pfSense装上应用商店。

  • Suricata:开源入侵检测/防御系统,可以在WAN或LAN接口上抓包并匹配攻击特征。安装后还需要配置规则集和启用接口,开启后能在Status -> Suricata里看到实时告警。
  • ntopng:流量可视化工具,能按IP、协议、端口展示流量排名。装上它之后,你会瞬间看清内网里到底是谁在疯狂上传数据。
  • pfBlockerNG:DNS/IP层面的过滤和广告拦截工具,可以拉取外部威胁情报列表,把恶意域名和IP自动加入阻止列表。在实验环境里玩这个插件,能直观理解"基于威胁情报的防火墙策略"是怎么工作的。

装插件要注意一点:2GB内存的虚拟机装多了插件会明显卡顿。建议先装一个玩玩,别一次性全家桶全上。想装多个插件的话,把虚拟内存加到4GB再试。

6.2 练手多WAN、VLAN与策略路由

pfSense的VLAN功能可以让你在单块物理/虚拟网卡上划出多个VLAN,但这需要在虚拟交换机上配合配置。你可以给pfSense的LAN口再加一个VLAN子接口,模拟出"多个内部部门网段互相隔离"的企业环境。然后通过防火墙规则实现:财务网段不能访问办公网段,但都能访问服务器区。

多WAN方面,在虚拟机里给pfSense加第三块网卡,模拟另一个运营商的上网线路,然后在System -> Routing里配置网关组和故障切换策略。虽然用VMware虚拟网卡测不出真实的带宽叠加效果,但你能完整理解多WAN的选路判定逻辑。

6.3 从虚拟机迁移到物理硬件的思路

在虚拟机里把pfSense玩明白了之后,你可能会想把它装到一台真实的迷你主机或淘汰的旧电脑上。迁移过程其实比你想的简单:

  1. 在虚拟机里Diagnostics -> Backup & Restore备份配置xml文件。
  2. 到官网下载memstick格式的镜像,用写盘工具写到U盘。
  3. 物理机从U盘引导安装pfSense,完成安装后进入控制台。
  4. 用Diagnostics -> Backup & Restore重新上传xml配置。
  5. 重新分配接口,因为物理机上的网卡名和虚拟机的完全不同,必须在控制台Assign Interfaces里把WAN和LAN重新指定一次。

这个过程中最容易翻车的是物理机的网卡型号不兼容。建议优先选Intel芯片的网卡,BSD系统驱动支持最全。如果你手头是某些Realtek低端网卡,可能会遇到安装完找不到网卡或者频繁掉线的情况,那就真的只能换网卡了。

虚拟环境里学网络,最大的好处是犯错成本为零。快照一拍,随便折腾。我自己练pfSense这段时间,把防火墙规则删了又加、加了又删,甚至试过把WAN和LAN直接接反,每一次翻车都在加深对路由和防火墙的理解。先把基础链路跑通,再一步步加规则、加插件、加接口,你会发现自己对"网络安全"的认识远远不止"装个杀毒软件"那么简单。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询