跳到主要内容

pfSense 是一款免费的防火墙与路由软件,常被安装在小型主机或专用设备上,用来管理家庭或小办公室网络。由于它位于所有设备与互联网之间,也就成了放置 VPN 的合适位置:你不必在每部手机、电视和电脑上装应用,只需让防火墙建立一条加密隧道,再把选定的流量送进去。这就是在 pfSense 上使用 VPN 的基本思路。

本文讲的是客户端这一侧,也就是让 pfSense 主动连接到 VPN 服务。我们会说明开始前要准备什么、接口、出站 NAT、网关和规则如何配合,怎样只让部分设备走隧道,如何处理 DNS,以及怎样测试。文中不提供可直接复制的配置,因为菜单名称会随版本变化,而且你能使用哪种连接方式取决于所用的 VPN 服务。如果还没决定该用防火墙还是用应用,请先阅读路由器 VPN 与 VPN 应用对比。

在 pfSense 上用 VPN 到底是什么意思

pfSense 可以扮演两种完全不同的 VPN 角色,把它们混淆是新手最常见的困惑来源。

  • 服务器角色:你在自己的防火墙上架设 VPN,以便从外面访问家里的网络。你的手机是拨入 pfSense 的一方。
  • 客户端角色:pfSense 主动拨出,连接到 VPN 服务,之后它后面的设备就可以把互联网流量交给这条隧道。

本文讲客户端角色。此时 pfSense 会为隧道创建一个虚拟网络接口,以及代表隧道另一端的网关。你原有的互联网线路(WAN)仍在旁边照常工作。LAN 上的每条防火墙规则决定某台设备的流量使用哪个网关:默认的 WAN 网关,还是 VPN 网关。

这正是整个设计的关键。pfSense 没有一个“给整个网络打开 VPN”的总开关,而是由你逐条规则决定谁走隧道。这种精细控制是手机应用做不到的,也是第一次配置往往要花半天的原因。

打开管理界面之前要准备什么

先花十分钟收集信息,可以避免出现难以排查的半配置状态。

  1. 性能足够的硬件。加密要消耗 CPU。带有现代处理器、支持硬件 AES 的小型设备通常能轻松应付家庭宽带,而很老或低功耗的设备可能成为瓶颈。测速时请观察 CPU 占用。
  2. 较新的软件版本。开始前把 pfSense 更新到稳定版。旧教程里的菜单位置常常已经变了。
  3. VPN 服务提供的连接信息。你需要知道服务允许在路由器上使用哪种连接方式。对于 XPASS 的通行证,My Pass 页面会列出支持的连接方式和设置说明,请以该页面为准,不要自己猜测。如果某种方式需要证书、密钥或配置文件,请先下载并妥善保存。
  4. 清楚的局域网规划。记下 LAN 网段、哪些设备使用固定地址、DHCP 分配的范围。家庭网络通常使用 RFC 1918 定义的私有地址段,例如 192.168.x.x。如果 VPN 对端网络恰好与你的 LAN 网段重叠,路由会出现难以理解的故障,所以要提前确认没有冲突。
  5. 退路。记录当前设置,或者备份配置(多数版本在 Diagnostics 下的 Backup and Restore)。万一把自己锁在外面,还能恢复。
  6. 合适的时间。选没人在开视频会议的时候操作。添加接口和规则可能让连接短暂中断。

如果你想让全家所有设备共用一条隧道,防火墙是个好位置。如果只想保护几台电脑和手机,用应用更简单,在路由器上设置 VPN 的帮助指南介绍了较轻量的做法。

按顺序完成的五个组成部分

无论服务采用哪种方式,pfSense 上的配置顺序都是一致的。记住这个顺序,就很容易找到对应菜单。

1. 导入凭据

如果连接方式需要,先在证书管理器里添加 CA 和客户端证书。对于基于密钥的方式,把密钥粘贴到隧道设置里。请使用服务商给出的原始值,不要改动。密钥里错一个字符,就是“隧道怎么也起不来”的典型原因。

2. 创建隧道

在 VPN 菜单下添加一个客户端条目,填入服务商提供的服务器地址、端口、凭据和加密参数。有两点实用提醒:

  • 给条目起一个有意义的名字,例如“VPN-out”。之后你要在多个接口和网关之间选择,含糊的名字很容易选错。
  • 如果不想让整台防火墙都走隧道,就不要勾选自动拉取路由的选项。做选择性分流时,你希望隧道启动但不去抢默认路由。

如果不确定该选哪一类隧道,可以看WireGuard 与 OpenVPN 对比,里面用通俗语言说明了取舍。除非客服另有建议,请保持服务商推荐的设置。

3. 分配接口

隧道启动后虽然存在,但防火墙还没有把它列入接口清单。进入 Interfaces,再选 Assignments,把新隧道添加为接口,启用并写上清晰的描述。除非服务商明确给了隧道地址,否则把 IP 配置保持为“None”。正是这一步让隧道可以被规则和 NAT 使用。

4. 检查网关

在 System 下的 Routing 中,应该出现新接口对应的网关。确认它显示在线,并且监控地址是经隧道可以到达的地址。如果监控地址无法到达,即使数据能通,pfSense 也会把网关标为离线,你的规则就不会使用它。除非你希望所有设备(包括防火墙自身的更新)都走隧道,否则不要把这个网关设为默认网关。

5. 添加出站 NAT

你的 LAN 使用私有地址,VPN 对端网络不知道如何把回包送回来,所以经隧道出去的流量必须转换成隧道的地址。把出站 NAT 切换为 Hybrid 模式(想自己写每条规则则选 Manual),然后添加一条规则,在 LAN 网段经新接口出去时做地址转换。没有这条规则,隧道会显示已连接,但设备没有网络。这是整个项目里最常见的错误。

只让你选定的设备走隧道

接下来决定谁使用隧道。工具是基于策略的路由:在 LAN 接口上添加一条防火墙规则,并在高级选项里指定 VPN 网关。

一种整洁的做法:

  1. 给选定设备固定地址。在 DHCP 服务器设置中为每台要走隧道的设备预留地址,例如流媒体盒子、工作电脑和平板。
  2. 创建别名。在 Firewall 下的 Aliases 中创建一个包含这些地址的主机别名,命名为类似“VPN_CLIENTS”。
  3. 添加 LAN 规则。新建一条放行规则,源设为该别名,在高级部分把网关设为 VPN 网关。
  4. 注意规则顺序。规则从上到下依次匹配。把对本地网络的例外放在 VPN 规则之上,这样打印机、文件共享和路由器管理页仍可直接访问,不必绕经隧道。在最上面放一条目的地为 LAN 网段的简短放行规则即可。
  5. 其余保持不动。不在别名里的设备匹配常规的“允许 LAN 到任意”规则,走 WAN。

这种做法相当于分应用隧道(split tunneling),只不过是按设备而不是按应用来区分。适合想让客厅电视走 VPN、而书房电脑继续走普通线路的家庭。

目标 在 pfSense 上的做法
全屋走 VPN 对整个网段设一条 LAN 规则并指定 VPN 网关
只让选定设备走 VPN 固定地址别名,加指定 VPN 网关的规则
只让某个 VLAN 或某个 Wi-Fi 走 VPN 在该 VLAN 接口上设规则并指定 VPN 网关
只让特定目的地走 VPN 目的地址别名,加指定 VPN 网关的规则
暂不使用但保持隧道就绪 保持接口启用,不添加规则

为“VPN 设备”单独划一个 VLAN 或访客 Wi-Fi,往往是最干净的设计,因为一条规则就能覆盖所有加入该网络的设备,不用逐个记地址。

DNS:最容易被忘记的部分

如果设备把 DNS 查询发给运营商,而其余流量走隧道,你访问的网站名称就暴露在隧道之外。这就是 DNS 泄漏的原理,防火墙和电脑一样容易发生。

可行的做法:

  • 使用服务商提供的 DNS 服务器,并让 DNS 流量的规则使用同一个 VPN 网关。如果 pfSense 上的 DNS Resolver 负责转发查询,请把这类客户端的出口接口设为隧道,或者只对 VPN 分组通过 DHCP 下发服务商的 DNS 地址。
  • 封堵多余的 DNS。添加规则,禁止 VPN 分组向所选解析器以外的任何地方发出 53 端口(以及加密 DNS 使用的 853 端口)流量,让设备无法退回自己的设置。
  • 留意自带 DNS 的设备。有些电视和浏览器使用自己的加密 DNS,不理会 DHCP 下发的内容。要逐台测试,而不是只看防火墙。

配置完成后,从 VPN 分组里的设备做一次泄漏测试。如果显示的解析器属于你家的运营商,说明 DNS 规则还要调整。

用防火墙规则做一个 kill switch

手机上的 VPN 断开时,应用可以阻断流量。在 pfSense 上,你得自己搭建同样的保护。机制就是策略规则在网关故障时的行为。

  • 默认情况下,pfSense 可能跳过网关已故障的规则,让流量落到下一条规则,也就是 WAN。这会悄悄把设备移出隧道。
  • 请启用系统选项,使策略网关不可用时流量不会从 WAN 出去,或者在 VPN 规则后面添加一条明确的阻断规则,匹配 VPN 分组。
  • 务必实际测试。故意关闭隧道,确认 VPN 分组完全没有网络,再重新启用。从未测试过的 kill switch 只是一种期望,而不是保护。背景知识见VPN kill switch 是什么。

需要在隧道故障时仍保持在线的设备,例如智能门铃,请完全放在 VPN 别名之外。

MTU、速度与调优

隧道会给每个数据包增加几个字节的头部,所以满尺寸的包可能放不下。MTU 不合适时会出现奇怪的现象:小页面能打开,大页面卡住,上传停滞。路径 MTU 发现本应处理这个问题,但 ICMP 被过滤时可能失效。

可以逐项尝试:

  1. 把隧道 MTU 在接口默认值基础上降低约 40 到 80 字节,或在 VPN 接口上启用 MSS clamping。
  2. 用大文件下载重新测试,而不只是打开网页。
  3. 每次测试之间只改一个设置,这样才知道是什么起了作用。

如果吞吐量偏低,请记住加密是 CPU 的工作,单条隧道往往受限于一个处理器核心。分别在关闭和开启隧道时测速对比,并在怪罪防火墙之前阅读为什么使用 VPN 后网速会变化。

测试完成后的配置

每次修改之后都按同一份清单检查。

  1. VPN 网关状态显示在线。
  2. 在 VPN 分组的设备上查询公网 IP,应显示 VPN 的地址,而不是你家宽带的地址。
  3. 在普通设备上查询,仍应显示你家的地址。
  4. DNS 测试显示的是预期的解析器。
  5. kill switch 测试:关闭隧道,确认 VPN 分组断网,再重新启用。
  6. 本地访问测试:VPN 分组的设备仍可使用打印机和文件共享。
  7. 重启测试:重启 pfSense,确认隧道能自动恢复。

把结果记下来。几个月后出问题时,一份“正常状态应该是什么样”的记录能节省几个小时。

常见错误与排查

现象 可能原因 检查什么
隧道已连接但客户端没网 缺少出站 NAT VPN 接口上针对 LAN 网段的 NAT 规则
隧道在线但网关显示离线 监控地址不可达 更换或关闭监控 IP
包括防火墙自身在内的一切都走 VPN 默认网关被改动 把 WAN 重新设为默认
大页面卡住 MTU 或 MSS 过大 降低 MTU,启用 MSS clamping
重启前正常,重启后失效 接口未分配或隧道未设为自动启动 接口分配与服务状态
速度慢 CPU 瓶颈或节点距离远 测速时的 CPU 占用,尝试其他位置
本地打印机无法访问 规则顺序 把目的地为 LAN 的放行规则移到 VPN 规则之上
银行或流媒体应用提示异常 服务不喜欢 VPN 连接 把该设备移出别名

实验期间不要把防火墙的管理页面暴露到互联网,并为路由器登录设置强密码,条件允许时启用双重验证。VPN 保护的是传输中的数据,它无法弥补防护薄弱的防火墙。

如果某个网站在隧道里无法正常工作,那是网站自己的决定,不是 pfSense 的故障。帮助文章开启 VPN 后网站无法使用介绍了可以尝试的办法,例如把该设备移出 VPN 分组。

什么时候 pfSense 不是合适的工具

防火墙方案并不适合所有人。如果你经常出差,家里路由器对你在机场使用的手机毫无帮助。如果家里没有人熟悉防火墙规则,配置错误可能让设备在无人察觉的情况下失去保护。如果硬件较弱,VPN 可能把快速的网络变得很慢。在这些情况下,请在重要设备上使用应用,让防火墙做它最擅长的事。

使用 XPASS 时,你可以在 iPhone、Android、Windows 和 macOS 上使用免费的 VPNclient 应用,登录信息在 My Pass 页面;在决定路由器方案是否适合你的通行证之前,请先在该页面查看支持的连接方式。下载页面列出了官方应用。

总结

在 pfSense 上运行 VPN,就是创建客户端隧道,将其分配为接口,检查网关,添加出站 NAT,再用防火墙规则决定哪些设备使用它。要有意识地处理 DNS,搭建并测试 kill switch,在大页面卡住时调整 MTU,并同时从 VPN 设备和普通设备两侧测试。别忘了,VPN 服务的连接方式决定了你究竟能配置什么。

如果你更愿意从一个简单的通行证和应用方式起步,可以随时查看价格页面。

常见问题

pfSense 可以作为商用 VPN 服务的客户端吗?

可以,前提是你的 VPN 服务提供防火墙能识别的连接信息,例如 OpenVPN 配置文件或 WireGuard 密钥。规划之前请先向服务商确认支持哪种方式。

添加 VPN 规则后局域网为什么全部断网?

常见原因有三个:没有为 VPN 接口设置出站 NAT,规则指向了离线的网关,或者 DNS 服务器无法经隧道访问。先看网关状态,再看 NAT 表,最后检查 DNS。

怎样只让部分设备走 VPN?

给这些设备分配固定地址,建立一个包含它们的别名,然后在 LAN 上添加匹配该别名并指定 VPN 网关的规则。其他设备继续走普通线路。

防火墙上的 kill switch 是什么?

指当 VPN 网关故障时,防止所选设备从其他线路上网的规则。在 pfSense 上通常通过策略路由,并配合网关不可用时不回落到 WAN 的选项来实现。

在 pfSense 上配置 VPN 比每台设备装应用更好吗?

它能覆盖防火墙后面的所有设备,包括装不了应用的设备,但维护要求更高,也会增加防火墙硬件的负担。很多家庭会两种方式搭配使用。

关于作者

Bob Kanokphon Thongdee,XPASS VPN 创始人

Bob Kanokphon Thongdee

  • XPASS VPN 创始人
  • eSIMonline.asia 联合创始人
  • 7 年以上网络营销经验
  • Cojourney Visa 与 Cojourney Travel 创始人

短途出行或忙碌的一个月,需要 VPN?

XPASS 提供按天数计算的预付通行证。一次付款,不会自动续费。

查看通行证

继续阅读

VPN 基础

路由器 VPN 还是 VPN 应用:哪种方式适合你的家?

VPN 应该装在路由器上,还是装在每台设备上?本文从速度、智能家居设备、Mesh Wi-Fi、分流和日常便利性几个方面比较两种做法。

阅读约 10 分钟

VPN 安全

什么是分流隧道(Split Tunneling)?

分流隧道让你选择哪些应用或网站走 VPN,哪些直接访问互联网。它很灵活,但也会改变被保护的范围。

阅读约 9 分钟

VPN 安全

什么是 DNS 泄漏?

DNS 泄漏是指设备在 VPN 隧道之外查询网站地址。本文说明它为什么发生、如何检测,以及该怎么处理。

阅读约 10 分钟

VPN 安全

WireGuard 与 OpenVPN 有什么区别

WireGuard 和 OpenVPN 都能建立加密隧道,但设计、复杂度和灵活性不同。本文用通俗的方式比较,并说明该怎样选择。

阅读约 9 分钟

VPN 安全

什么是 VPN 断网保护(Kill Switch)?

Kill Switch 能防止 VPN 断开时设备悄悄改用不受保护的连接。本文介绍它的原理,以及如何检查它是否有效。

阅读约 12 分钟