如果你和我一样不想为了做网络实验专门买一台物理机那在 VMware Workstation 上跑 pfSense 绝对是最省事的玩法。pfSense 是社区里用得最多的开源防火墙发行版之一社区版CE完全免费官方镜像下载即用配合 VMware 的虚拟网络你完全可以在同一台 PC 上模拟出 WAN、LAN 甚至 DMZ 多段网络做 NAT、防火墙规则、DHCP、端口转发这些实验逻辑和真实设备几乎没有区别。这篇文章我按自己的实操习惯从镜像下载、虚拟机创建、系统安装到 Web 后台的基础配置一步步写下来适合刚接触软路由和开源防火墙、或者在 home lab 里想折腾一套干净网关环境的人参考。1. 先想清楚为什么是“pfSense VMware Workstation”这套组合1.1 这套方案解决什么问题先说 pfSense 本身。它不是一个“简化版玩具”而是一个基于 FreeBSD 的完整防火墙/路由器发行版社区版CE完全免费默认提供了静态路由、NAT、防火墙规则、DHCP、DNS Forwarder、流量整形、入侵检测等等一大堆东西。你可以把它理解成一台“软件定义的路由器”只要给一台 x86 机器装上它就能当企业边缘网关来用。而 VMware Workstation 的价值在于“虚拟化实验”。你得知道做网络实验最烦人的事情不是配规则而是硬件不够用。一台物理机只能装一个系统想模拟内外网还得凑两台电脑、若干网线折腾半天只为了测一条 NAT 规则实在划不来。VMware 里就不一样了你可以给 pfSense 虚拟机分配多块虚拟网卡再虚拟出不同的网段一台宿主机就能搭出“外网—防火墙—内网”的完整环境。而且 VMware 的快照功能是真香配置改崩了一条命令回滚到之前的状态效率比物理机高一个量级。所以这套方案的定位很清晰适合拿来学习、测试、验证网络方案也适合作为家庭实验环境里的软路由原型。等你在虚拟机里把规则和流程都摸透了再决定要不要搬到物理机上踩坑成本会低很多。1.2 需要准备哪些东西在动手之前先把材料和环境理顺。硬件方面宿主机建议至少 8GB 内存我自己的习惯是给 pfSense 分 2GBCPU 分 2 核磁盘 20GB 左右。pfSense 本身对配置的要求不高512MB 内存都能跑但虚拟机里要留一点余量不然跑起来卡顿会影响判断。软件方面你需要VMware Workstation Pro 17.x。官方目前对个人用户提供免费许可到官网注册账号后拿授权即可如果暂时拿不到正式授权试用期内也足够完成整套实验。注意别去找来历不明的注册机一个是没必要另一个是安全风险不划算。pfSense 社区版安装镜像。重点是选 CE 版本别下成商业版的 Netgate 设备镜像后面我会细说。一台能正常联网的宿主机操作系统 Windows 或 Linux 都可以VMware 的用法基本一致。另外建议你在开始前搞懂 VMware 的三种虚拟网络模式桥接模式Bridged虚拟机直接“插”在宿主机所在的物理局域网里和局域网内其他设备互通有自己的独立 IP。NAT 模式虚拟机通过宿主机共享上网虚拟机之间可以互通外部网络不能直接访问虚拟机。VMware 默认的 VMnet8 就是这种。仅主机模式Host-Only虚拟机之间可以互通也能和宿主机互通但默认不能访问外部网络。VMware 的 VMnet1 就是这种。pfSense 实验里我们要模拟的是一台“位于内外网之间的网关”所以至少需要两块网卡一块接 WAN外网一块接 LAN内网。WAN 口我通常用 NAT 模式来模拟LAN 口就接 VMnet2 或 VMnet1 这类仅主机网络这样内外网天然隔离和真实环境很像。2. 下载 pfSense 镜像和虚拟机创建关键点都在这里2.1 从官网下载 pfSense CE 镜像注意这三个细节pfSense 的下载页面在官方站点上入口比较好找搜索“pfSense download”就能看到。进入下载页面后注意以下三点第一版本选 CECommunity Edition也就是社区版免费且功能完整。页面里可能还会看到 Netgate 设备相关的商业版本入口那个不用管。第二架构选 amd64除非你手头有 32 位旧机器否则 x86_64 是唯一合理选择。第三镜像类型选 DVD Image (ISO)也就是.iso文件。这个文件大概几百 MB可以直接挂载到虚拟机的虚拟光驱里引导安装。如果你之后要在物理 U 盘上装才需要去下 USB memstick 的镜像。下载完成后建议顺手校验一下哈希值确认文件完整也避免网上镜像被篡改。Windows PowerShell 里执行Get-FileHash .\pfSense-CE-2.7.2-RELEASE-amd64.iso -Algorithm SHA256然后把输出的哈希值和官网页面上给出的 SHA256 值比对一致就说明文件没问题。这一步养成习惯之后下载其他系统镜像也适用。2.2 用 VMware Workstation 创建 pfSense 虚拟机打开 VMware Workstation点击“创建新的虚拟机”这里我习惯选择“自定义高级”因为可以更精细地控制硬件选项。操作路径如下虚拟机兼容性保持默认即可Workstation 17 默认配置对你的实验完全够用。安装来源选择“稍后安装操作系统”。这里不要直接选 ISO因为 pfSense 是基于 FreeBSD 的VMware 默认的客户机操作系统列表里需要正确指定后面再挂载镜像更稳妥。客户机操作系统选“FreeBSD”版本选“FreeBSD 11/12 或更高版本 64 位”。有些版本列表里写的是 FreeBSD x64选它就行。虚拟机名称和位置按自己习惯命名比如pfSense-Lab位置不要放在 C 盘系统盘避免空间不足。处理器配置2 核足够1 核也能跑。内存2048MB 是舒适区低于 1024MB 会有点紧张。网络类型这里先选“仅主机模式”也没关系因为后面我们会专门加网卡先把虚拟机框架建出来。I/O 控制器和磁盘类型保持默认NVMe 或 SATA 都行不需要追求极致性能。磁盘选“创建新虚拟磁盘”大小 20GB选择“将虚拟磁盘拆分成多个文件”。拆分成多个文件的好处是方便拷贝、快照也更灵活。创建完成后先别急着开机我们还要做几件事挂载 ISO、调整网卡。2.3 两块网卡怎么配这步别搞反在虚拟机设置窗口里需要做两个关键动作第一个动作把下载好的 pfSense ISO 挂到虚拟光驱。路径是“CD/DVD (SATA) → 使用 ISO 映像文件 → 浏览选择文件”确认勾选“启动时连接”。第二个动作配置网卡。默认虚拟机已经有了一块“网络适配器”这块就让它当 WAN 口用。我的配置方式是网络适配器WAN→ 网络连接选“NAT 模式”。这样 pfSense 在后续配置里会自动从 VMware 的虚拟 DHCP 拿到一个 192.168.xxx.xxx 或 172.16.xxx.xxx 的地址模拟“外网地址”。如果你希望 WAN 和真实局域网互通可以选“桥接模式”但要注意桥接模式下你的 pfSense 会直接暴露在局域网里实验时小心别干扰正常网络。点击“添加”再添加一块“网络适配器 2”这块当 LAN 口。网络连接选“自定义特定虚拟网络”我建议选 VMnet2。如果列表里没有 VMnet2可以先打开“编辑 → 虚拟网络编辑器”添加一个仅主机模式的 VMnet2子网设成 192.168.10.0/24并且不启用 NAT 和本地 DHCP 服务因为内网的 DHCP 要让 pfSense 自己来管VMware 别插手。网卡类型方面在 Workstation 里给 FreeBSD 客户机创建的默认虚拟网卡通常兼容性没问题但如果后面遇到 pfSense 识别不到网卡可以把网卡类型改成 “E1000”兼容性更好。vmxnet3 性能好但 FreeBSD 驱动不一定齐全实验环境我优先求稳。另外建议把不需要的虚拟机硬件删掉比如声卡、打印机、USB 控制器。这些设备对 pfSense 没有任何用处留着反而可能在控制台里产生奇怪的输出。3. 安装 pfSense从引导到控制台配置的完整流程3.1 安装向导一步步来完成上面的准备后启动虚拟机。虚拟机从光盘引导后会出现 FreeBSD 的启动菜单直接回车选择默认的“1. Boot Multi User”即可。启动过程会有大量系统模块加载信息不用慌等它到安装菜单界面。在安装菜单里选择Install pfSense然后会进入类似 FreeBSD bsdinstall 的流程。这里我按常见选项说明不同小版本可能略有差异但大方向一致键盘布局选择Continue with default keymap默认是 US 键盘国内用户基本不用改。主机名Hostname保持默认pfSense.localdomain就行这个之后可以在 Web 后台改。分区方式这一步是新手最容易懵的地方。菜单里通常有Auto (UFS)、Auto (ZFS)、Manual等选项。我推荐选Auto (ZFS)因为 ZFS 文件系统自带校验和、快照、压缩等功能对实验环境更友好。如果你确实有特殊需求选Auto (UFS)也完全没问题UFS 更传统、更简单。选择 ZFS 配置时会问你要用什么类型的磁盘布局。选stripe或mirror都可以单块虚拟磁盘选stripe即可因为虚拟机里不需要做硬 RAID。然后会要求选择安装磁盘勾选你刚才创建的虚拟磁盘确认后继续。这一步会格式化整个虚拟磁盘虚拟机里做实验无所谓但如果在物理机上操作务必确认磁盘没有重要数据。安装开始后系统会释放文件并写入引导。耐心等待几分钟看到安装完成提示后选择Reboot重启系统。重启时记得把 ISO 从虚拟光驱中断开或者直接关闭虚拟机后在 CD/DVD 设置里把“启动时连接”取消掉避免再次进入安装程序。3.2 第一次启动后的控制台配置重启完成后你会看到 pfSense 的控制台界面这是一个字符界面里面列出了常用管理选项类似这样0) Logout (SSH only) 1) Assign Interfaces 2) Set Interface(s) IP address 3) Reset webConfigurator password 4) Reset to factory defaults 5) Reboot system 6) Halt system 7) Ping host 8) Shell这里最关键的是确认两个接口的分配情况和默认地址。在默认情况下pfSense 会把第一块识别到的网卡当作 WAN用 DHCP 自动获取地址第二块当作 LAN默认 IP 是192.168.1.1/24。你可以先输入1回车它会提示你是否要重新分配接口大多数情况下不用改直接选n保持现状即可。再输入2回车可以查看和修改接口 IP。这里有一个非常常见的坑如果你的宿主机本身就在192.168.1.0/24网段很多家庭路由器都默认用这个网段那 pfSense 的 LAN 默认 IP 会和你现有的局域网冲突导致访问混乱。遇到这种情况建议在控制台里把 LAN IP 改成别的网段比如10.10.10.1/24。改的方法就是在菜单2里选择2即 LAN 接口输入新 IP 和子网掩码后面提示是否启用 DHCP 服务时如果你想让 pfSense 管理内网 IP 分配就选y。改好 IP 后在宿主机上用命令 ping 一下10.10.10.1或者你设置的 LAN IP能通就说明虚拟网络链路已经打通可以进入下一环节了。3.3 浏览器进入后台管理界面pfSense 的管理界面是 Web 方式的默认走 HTTPS 协议地址就是 LAN 口的 IP。比如我改成10.10.10.1就在浏览器里输入https://10.10.10.1注意是https而不是http因为 pfSense 默认强制 HTTPS。首次访问会出现“您的连接不是私密连接”的证书警告这是正常的因为 pfSense 用的是自签名证书。在浏览器里选择“继续前往”或“高级 → 继续访问”即可。登录界面默认用户名是admin密码是pfsense。第一次登录进去系统会强制要求修改 Web 管理密码。这一步别偷懒设置一个自己记得住的强密码之后所有配置都靠这个账号。登录成功后你会看到 pfSense 的仪表盘Dashboard上面有系统信息、接口状态、流量图表等。到这里安装部分就算完成了。接下来要做的才是重点让 pfSense 真正干路由和防火墙的活。4. 简单配置让 pfSense 真正能干活4.1 用 Setup Wizard 完成基础设置第一次登录进入后台后系统会自动弹出“Setup Wizard”设置向导如果你不小心关掉了也可以在右上角菜单里手动打开。这个向导很适合新手它会把你最常需要配置的项目一次性问完。向导里需要关注的内容有General Information设置 Hostname主机名和 Domain域名。主机名保持pfSense就行域名可以填local.lab这种内部测试域名不需要是真实注册域名。DNS Server Settings这里填 DNS 服务器地址。如果你不知道填什么可以用公共 DNS比如223.5.5.5和119.29.29.29或者用你本地路由器下发的 DNS。如果 WAN 是从 DHCP 获取地址的通常会自动拿到 DNS但 pfSense 里手动指定更稳。Time Server默认会指向系统自带的时间服务器列表保持默认即可。时区选择Asia/Shanghai。WAN Interface如果 WAN 用的是 VMware NAT 模式这里选DHCP即可其他默认选项保持原样。LAN InterfaceLAN IP 默认是192.168.1.1如果你之前在控制台已经改过这里会显示你改后的地址。建议在这里就把 LAN 的 IP、子网掩码确认好。修改密码向导最后一步会要求重新设置 Web 管理密码和首次登录的强制要求是一样的。完成向导后回到 Dashboard你会发现 WAN 口已经获取到了一个类似192.168.xxx.xxx或172.16.xxx.xxx的地址这就是 VMware NAT 分配给你的“外网地址”。此时如果你在 LAN 里接一台测试虚拟机它应该已经能通过 pfSense 上网了。4.2 WAN 和 LAN 具体怎么填向导虽然省事但如果你需要手动调整网络参数路径在“Interfaces → Interface Assignments”和“Interfaces → WAN / LAN”。WAN 口的常见配置IPv4 Configuration Type选DHCP适合 VMware NAT 模式如果你用的是桥接模式并且局域网里有 DHCP 服务器也可以选 DHCP如果要手动指定公网或静态地址就选Static IPv4然后填 IP、子网、网关。有一项叫“Block private networks and loopback addresses”默认是开启的。这个选项的作用是防止 WAN 口收到来自私网地址的数据包是一种安全防护。但如果你的 WAN 口本身就是 VMware NAT 模式拿到的地址属于私网网段这个选项会把你自己的外网流量也拦掉导致网络不通。这时候需要到System → Advanced → Firewall NAT里把Block private networks取消勾选。LAN 口的配置相对简单一般就是静态 IP 加子网掩码。比如10.10.10.1/24或者192.168.10.1/24注意别和 WAN 网段重复也别和宿主机所在网段重复。这里分享一个排查网络的好习惯每次改完接口配置系统右上角会出现Apply Changes应用更改按钮必须点一下配置才会生效。如果你改了 IP页面可能会断线重新用新 IP 访问即可。我一向是先把所有参数都填好再统一 Apply避免反复断连。4.3 防火墙规则与 NAT 转发说明pfSense 默认的防火墙行为有两个非常关键的点LAN 到任意地址是允许的。也就是说从 LAN 口进来的设备可以访问 WAN、访问互联网这是默认放行规则。WAN 到 LAN 默认是全部丢弃的。外网设备想主动访问你的内网会被拦截这是防火墙的基本盘。这样的默认规则对大多数场景都是安全的。我们通常需要补充的规则主要是两类第一类是允许从 LAN 访问 pfSense 自身某些服务。比如你以后想在内网通过 Web 管理 pfSense默认已经是允许的不需要额外加。第二类是端口转发Port Forward。假设你的 LAN 里有一台 Web 服务器10.10.10.50想让人从 WAN 侧访问它的 80 端口就需要添加一条端口转发规则。路径是Firewall → NAT → Port Forward点击 AddInterfaceWANProtocolTCPDestinationWAN addressDestination Port80Redirect Target IP10.10.10.50Redirect Target Port80保存并应用后访问者访问你 WAN 口的 80 端口就会被转发到内网服务器的 80 端口。这个逻辑就是企业里最常见的端口映射。至于防火墙规则本身路径在Firewall → Rules你可以针对每个接口WAN、LAN分别维护规则列表。规则是从上到下依次匹配的一旦匹配就不再往下看。所以“允许”规则要放在“拒绝”规则前面这个顺序问题我踩过不止一次。4.4 顺手把 DHCP 和日常杂项也配好pfSense 既然充当网关角色内网的 DHCP 服务最好也交给它来管。路径是Services → DHCP Server选择 LAN 接口启用 DHCP Server设置地址池范围。我常用的设置是这样的子网10.10.10.0/24地址池范围10.10.10.100到10.10.10.200DNS Servers填写10.10.10.1让内网设备把 pfSense 当作 DNS或者直接填外部 DNS默认网关10.10.10.1也就是 pfSense 的 LAN 地址保存后内网设备只要设为自动获取 IP就能拿到一个由 pfSense 分配的地址并通过 pfSense 上网。除此之外有两件小事我建议每个搞实验的人都要做一是配置备份。路径是Diagnostics → Backup Restore点击下载配置文件存好一份。pfSense 虽然稳定但配置改崩是家常便饭有备份心里不慌。二是做虚拟机快照。在 VMware 里“虚拟机 → 快照 → 拍摄快照”。我习惯在安装完成、基础配置完成这两个时间点各拍一个快照。之后不管怎么折腾都能一键还原。这个习惯能帮你省下大量重装的时间。5. 常见问题排查与避坑记录5.1 网页管理界面打不开怎么办这是新手遇到最多的问题。我的排查顺序是先确认 pfSense 的 LAN IP 是什么可以在控制台菜单里输入2查看接口地址。然后确认宿主机的虚拟网卡是否处于同一网段。比如 pfSense LAN 是10.10.10.1/24宿主机里的 VMnet2 网卡就应该设置成10.10.10.x否则网络不通。再检查浏览器访问的协议必须是https://而不是http://。很多人输入 IP 后看到无法访问其实是少了s。如果这些都正常就在控制台菜单里选7Ping 一下宿主机的 IP看看二层链路通不通。pfSense 有一个特性如果 WAN 口没插好或者没有获取到地址某些情况下 LAN 访问也会有异常所以也要确认 WAN 状态不是down。还有一个容易忽略的点VMware 虚拟网络服务没有启动。在 Windows 服务管理器里确认VMware NAT Service和VMware DHCP Service是否在运行如果没运行右键启动再回到 pfSense 里重新获取 WAN 地址。5.2 忘记密码、进不去系统怎么处理pfSense 的密码通常分两层一层是 Web 管理密码一层是系统 root 密码。如果你只是忘掉了 Web 管理密码最简单的办法是在 pfSense 控制台菜单里输入3Reset webConfigurator password确认后系统会把 Web 管理登录凭据重置为默认的admin / pfsense然后你再用默认密码登录并及时修改。如果连 root 密码也忘了那就需要重启并进入单用户模式。这条操作要谨慎但虚拟机里做实验可以随便折腾。重启 pfSense在引导菜单出现时选择“Boot Single User”然后挂载根文件系统并修改密码mount -ur / passwd输入新密码后重启再用新 root 密码进入系统。5.3 网络通断不稳、丢包或延迟大WAN 一直拿不到 IP先看看是不是 VMware NAT 服务的问题然后检查前面提到的Block private networks是否误开了。如果用的是 NAT 模式却把该选项保持开启WAN 口即使拿到地址流量也可能出不去具体表现就是能 ping 通但网页打不开。内网设备能拿到 IP 但上不了网优先排查 pfSense 的 WAN 网关是否正常路径是Status → Gateways看在线状态。另外检查防火墙规则有没有误删了默认的 LAN 放行规则或者加了多余的阻断规则。还有一个隐藏很深的坑VMware 虚拟网络的 DHCP 和 pfSense 的 DHCP 打架。如果你在虚拟网络编辑器里给 VMnet2 开了 VMware 自带的 DHCP而 pfSense 里也开了 DHCP Server内网设备可能拿到错误的网关和 DNS。解决办法是只保留 pfSense 的 DHCP关闭 VMware 的虚拟 DHCP 服务。5.4 磁盘、日志和一些提速建议pfSense 默认会把防火墙日志、系统日志写到本地磁盘时间长了会占空间。实验环境里日志量不算大但如果跑了几周后发现磁盘满了可以到Status → System Logs → Settings里调整日志保留大小或者直接把日志转发到远程日志服务器。虚拟磁盘扩容也是一个常见需求。如果你一开始只给了 10GB之后不够用可以在 VMware 里把磁盘大小扩到 20GB。如果用的是 ZFS 文件系统重启后 pfSense 会自动识别扩容后的空间并用上如果用的是 UFS可能需要手动执行growfs来扩展分区这一步对新手稍微有点门槛所以一开始就把磁盘留足 20GB 更省事。性能方面如果你觉得 pfSense 界面响应慢可以先看看内存占用2GB 内存基本够用如果长时间运行后内存告急可以在System → Advanced → System Tunables里调整一些 FreeBSD 内核参数但实验环境通常没必要动。最立竿见影的做法是保证虚拟机的 CPU 和内存不被其他虚拟机抢占该关的实验机器就关掉。最后再说一个小技巧在安装完系统、还没做任何配置的时候先拍一个干净快照。之后每完成一个阶段配置再拍一个快照。这样一旦后面把规则改坏了十几秒就能回到上一个可用状态比重新看日志找原因快太多了。我自己做网络实验这些年最大的体会就是快照和备份永远是最值得投入的那两分钟。