Android 通过 WireGuard VPN 连接 OPNSense 防火墙指南
WireGuard 是一种简单有效的 VPN 连接方式。本文介绍如何在 Android 设备上通过 WireGuard VPN 连接至 OPNSense 防火墙。
OPNsense 安装 WireGuard
导航到 System => Firmware => Plugins,找到 os-wireguard,点击右侧的添加图标进行安装。

配置 WireGuard
转到 VPN => WireGuard 菜单项。
添加本地端
选择 Local 选项卡,单击添加按钮,新增本地端配置。
| 设置 | 选项 | 说明 |
|---|---|---|
| 名称 | opnsense | 可任意命名 |
| 公钥 | 留空 | 将自动生成 |
| 私钥 | 留空 | 将自动生成 |
| 监听端口 | 51820 | WireGuard 默认端口,可使用任意端口 |
| DNS服务器 | 192.168.0.253 | 局域网内使用的 IP 地址,也可使用公共地址 |
| 隧道地址 | 10.252.0.0/24 | OPNsense WireGuard 隧道的 IP 地址段 |
| 对等体 | 留空 | 添加对等体后,再选择对应项 |
| 禁用路由 | 不选 | 若允许对等体进行路由则需勾选 |
单击保存,返回并编辑该配置,私钥和公钥将自动生成。如下图所示。

添加端点
选择 Endpoints 选项卡,单击添加按钮,新增一项端点配置。
| 设置 | 选项 | 说明 |
|---|---|---|
| 已启用 | 选中 | |
| 名称 | phone | 可任意命名 |
| 公钥 | 留空 | 从手机客户端生成的公钥粘贴至此,可通过 QQ 等工具传输 |
| 共享密钥 | 留空 | 可根据需要设置“共享密钥”提高安全性 |
| 允许的 IP | 10.252.0.2/32 | 对端 WireGuard 隧道的 IP 地址 |
| 端点地址 | 留空 | 手机通常没有固定的公网 IP |
| 端点端口 | 51820 | 保持与上方监听的端口相同 |
| 在线检测 | 留空 | 不填写则隧道在不使用时自动离线;填写 20 表示每 20 秒 ping 一次以保持连接 |
点击保存,下图所示已从手机客户端复制公钥并填入。

选择对端
返回 Local 选项卡,编辑之前建立的本地端配置,在对等体列表中选择 phone。

端口转发设置
导航到 Firewall => NAT => Port Forward,将 51820 端口转发到 OPNsense 防火墙,允许 WAN 侧对等体访问 WireGuard 隧道。
| 设置 | 选项 | 说明 |
|---|---|---|
| 协议 | UDP | WireGuard 基于 UDP |
| 目标 | WAN 地址 | 将端口转发到 WAN |
| 目标端口范围 | 选择 other 并输入 51820 | 默认 WireGuard 端口 |
| 重定向目标 IP | 输入 OPNsense 的 LAN IP 地址 | 流量到达 OPNsense 上的 WireGuard 隧道 |

添加 WireGuard 接口
导航到 Interfaces => Assignments,添加一个新接口 wg0,启用该接口且不设置任何 IP 地址。
再转到 Firewall => NAT => Outbound,将出站设置为 Automatic outbound NAT rule generation 或 Hybrid outbound NAT rule generation,重启 OPNsense 后,WG 网络将出现在自动规则列表中。

安卓手机设置
在 Android 设备上安装 WireGuard 客户端,可从 Google Play 安装 WireGuard 或 Viscerion。
添加 WireGuard 接口
打开安装的应用,点击添加图标,选择 Create from scratch(从头开始创建)。
| 设置 | 选项 | 说明 |
|---|---|---|
| 名称 | opnsense | 可任意命名 |
| 私钥 | 点击 Generate | 自动生成私钥 |
| 公钥 | 由私钥派生 | |
| 地址 | 10.252.0.2/32 | WireGuard 隧道的 IP 地址 |
| 监听端口 | 51820 | 与 OPNsense 中使用的端口一致 |
| DNS服务器 | 192.168.0.253 | 与 OPNsense 中的 DNS 设置保持一致 |
| MTU | 留空 |

如上图所示,配置后单击 Add Peer 添加 OPNsense 对端。
添加 OPNsense 对端
| 设置 | 选项 | 说明 |
|---|---|---|
| 公钥 | 填入 OPNsense 生成的公钥 | 可通过 QQ 等工具粘贴传输 |
| 预共享密钥 | 留空 | 对应 OPNsense 中的 Shared Secret 参数 |
| 允许的 IP | 0.0.0.0/0, ::/0 | 将所有 IPv4 和 IPv6 流量转发到此对端 |
| 排除私有 IP | 留空 | 若勾选,将从 WireGuard 隧道中排除私有 IP 范围 |
| 端点 | linuxserver.io:51820 | 设置 OPNsense 的公网静态地址或域名 |
| 在线检测 | 留空 | 与 OPNsense 端设置一致 |

建立连接
打开手机上的 WireGuard 应用,点击连接开关,即可在 OPNsense 上查看连接状态。

原文地址:Setting up WireGuard on OPNsense and Android
觉得内容不错?我要