0%

OpenWrt 图形化搭建 WireGuard 服务

WireGuard 是一种现代、快速且安全的虚拟专用网络(VPN)通信协议和免费开源软件。

WireGuard 的设计目标在于易于使用、高速性能和低攻击面。它利用了最新的加密技术,旨在提供比 IPsec 和 OpenVPN 等传统VPN协议更好的性能和更强大的功能。WireGuard 的核心代码相对精简,被 Linux 之父 Linus Torvalds 称为 艺术品,其核心代码只有四千多行。

此外,WireGuard 协议通过 UDP 传递流量,使其在速度和安全性方面具有显著优势。它被设计为简单、高效,并适用于从低端设备如树莓派到高端服务器的广泛环境。

这玩意简单、灵活,怪不得会被 Linus Torvalds 直接合入内核。本文记录的是 WireGuard 的一种用法。

如果主要使用场景是移动端,可以使用配置为 TCP 协议的 OpenVPN,稳定性比 UDP 协议的隧道好一些。

传送门在此:OpenWrt 图形化搭建 OpenVPN 服务

安装软件包

在 OpenWrt 中安装 luci-proto-wireguard 和 qrencode 两个包。
安装软件包-1.png
安装软件包-2.png
其中 luci-proto-wireguard 是用于支持 WireGuard 的核心包,qrencode 用来生成展示客户端的二维码。

!!!安装后重启一次 OpenWrt,否则无法进行下一步!!!

配置服务

创建接口

和 OpenVPN 不一样,WireGuard 在 OpenWrt 中是作为一种接口的存在。要开启 WireGuard 首先是需要创建对应的接口。
添加接口.png
在 网络 的 接口 界面,点击 添加新接口 创建。协议选择 WireGuard VPN。

接下来配置接口。
添加接口-常规设置.png
添加接口-防火墙设置.png
添加接口-结果.png
编辑接口,配置公私钥、配置监听端口、配置隧道的 IP 以及防火墙(防火墙也可以后面单独配置)。公私钥如果已经持有直接填写即可,如果没有可以点击 生成新的密钥对 快速创建。

添加对端

WireGuard 可以快速的搭建星型网络隧道。这里它作为服务器,需要给它添加对端(这个场景可以理解为客户端)。
添加对端.png
添加对端-编辑对端.png
在接口的 对端 界面,点击 添加对端。

需要给 对端 配置公私钥、预共享密钥(建议设置)、允许的IP 和 持续 Keep-Alive。在国内,一般 Peer 都是在 NAT 之中,建议给设置上 持续 Keep-Alive 来保持 UDP 在 NAT 中的有效性。

防火墙配置

和 OpenVPN 类似,防火墙部分也需要两个步骤。

配置虚拟网卡策略

在创建接口时如果没有创建防火墙的 区域 则现在可以创建一个,关联上 WireGuard 的接口。继续配置新增加的 区域。
防火墙-区域设置.png
在新增加的区域中将 lan 网络组合在一起,然后将 入站数据、出站数据 和 转发 都给放行,转发区域选择 lan 和 wan。

当然,也可以通过修改现有的 lan 区域将 WireGuard 的接口绑定到一起,效果是类似的。

配置防火墙的要点:

  • 如果需要局域网内设备普通情况下可以直接和隧道内设备通讯,则需要满足 lan 和 WireGuard 的接口绑定在同一个区域。
  • 如果需要隧道内设备可以和局域网内设备通讯,则需要满足 WireGuard 的接口放行了向 lan 或 OpenWrt(即不指定) 的转发。

配置工作端口入站放行

正常情况下通过 wan 口的外网是访问不了 51820 端口的。
防火墙-入站规则.png
在防火墙 通信规则 中新增加对 wan 口 51820 端口的放行策略。

扫码连接

到这里,OpenWrt 的 WireGuard 就配置完毕了,接下来就可以在客户端中发起连接了。
生成配置.png
在 WireGuard 接口的 对端 中打开目标对端的详情页,点击 生成配置 按钮,此页面上半部分设置导出给客户端配置的 连接端点、路由、DNS 和 IP 等信息,下半部分则是对应的配置二维码。

如果你的 OpenWrt 配置了 DDNS,那么 连接端点 可以自动带出域名可供选择。

当然,这些信息是为了快速配置客户端用的。这些信息也可以在客户端手动修改。

什么?!配置不生效

在 OpenWrt 只保存 WireGuard 配置是无效的!!!

修改 WireGuard 配置之后必须重启 WireGuard 程序来应用配置,在 OpenWrt 对应操作是重启 WireGuard 的接口。

下面这些动作会导致配置变化,都需要保存配置后重启 WireGuard 接口来应用配置:

  • 增加 Peer 条目
  • 修改 Peer 信息
  • 删除 Peer 条目

这些动作不会引起配置变化:

  • 导出 Peer 条目

重启 WireGuard 接口后流量记录会清零。

参考