WireGuard是一种比OpenVPN等工具更快、更简单、更精简的VPN工具。OpenVPN历史悠久,配置方案成熟,而WireGuard是一种更现代、更高效的VPN协议。
在本教程中,我们将详细介绍在pfSense上搭建WireGuard远程访问服务器的过程,包括手机客户端远程连接,并通过防火墙路由出站流量。
虽然WireGuard本身没有严格的“客户端”与“服务器”概念,但在此部署模式下,防火墙无法主动向远程对等点发起连接,因此我们将防火墙视为“服务器”,远程端点称为“客户端”。
本教程所使用的是pfSense plus 24.08-DEVELOPMENT版本。
所需信息
在开始WireGuard VPN配置之前,请准备以下基本信息:
防火墙WAN类型: 静态公网(已配置域名)
监听端口: 51820
隧道子网: 192.168.5.0/24
隧道地址: 192.168.5.1/24
手机端点地址: 192.168.5.2/32
手机端点WAN类型: 动态公网配置隧道
导航到系统 > 插件管理,在可用插件处搜索“wireguard”并安装。
转到VPN > WireGuard > 隧道选项卡,单击添加隧道。使用前面确定的信息填写相关选项。
端口使用51820,点击生成按钮生成新的接口密钥,并将公钥复制到记事本,以便稍后在手机客户端上使用。

接口地址输入192.168.5.1,掩码选择24。

完成后保存隧道,并应用更改。
启用隧道
转到VPN > WireGuard > 设置选项卡,选中启用并保存。

添加端点
导航至VPN > WireGuard > 端点选项卡,单击添加端点。使用前面确定的信息进行填写。
选中前面建立的tun_wg0隧道,输入描述名称,勾选动态端点,为keep Alive设置一个值,点击生成预共享密钥,并在允许IP中输入192.168.5.2/32。

注意:端点的公钥必须在手机客户端上生成。打开手机的WireGuard程序,新建一个配置,点击生成密钥对以创建公钥/私钥。将生成的公钥复制到上图所示的公钥栏中。

输入完成后,保存端点并应用更改。
添加接口
转到“接口 > 分配”,选择“tun_wg0”接口,单击“添加”按钮,将其加入接口列表。
接着转到“接口 > [OPTx]”页面,选中“启用”和“防止接口删除”复选框,输入描述,在IPv4静态地址处输入192.168.5.1,掩码选择24,然后单击保存。

添加规则
放行端口
要允许外部客户端访问WireGuard VPN,需要添加WAN放行规则,允许WireGuard通信所用的端口(51820)通过。规则如下图所示:

允许访问网络
此WireGuard VPN配置为允许来自客户端设备的外部连接。若不创建任何防火墙规则,客户端将无法访问网络上的任何资源。为简化管理,我们可以在WG接口上创建一条“允许所有”规则,如下图所示:

同时,在内置的WireGuard接口上也添加相同的规则。

客户端配置
在手机客户端上,根据前面的配置内容,输入端点和隧道的各项信息,如下图所示:

“对端”地址输入pfSense防火墙的公网地址+端口号,也可以使用对应的域名+端口号。
连接测试
现在打开手机WireGuard客户端,并点击“连接”按钮。在浏览器中访问pfSense防火墙的LAN地址,检查能否打开防火墙配置页面。浏览互联网,验证访问是否正常。访问IP检查网站,查看出口IP是否为pfSense防火墙的公网地址。在手机客户端可以查看连接详情,如下图所示:

在pfSense中转到“VPN > WireGuard > 状态”页面,也可以查看已连接的对端信息。

觉得内容不错?我要