0%

OpenWrt 图形化搭建 WireGuard 服务

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

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

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

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

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

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

安装软件包

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

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

配置服务

创建接口

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

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

添加对端

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

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

防火墙配置

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

配置虚拟网卡策略

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

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

配置防火墙的要点:

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

配置工作端口入站放行

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

扫码连接

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

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

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

什么?!配置不生效

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

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

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

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

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

  • 导出 Peer 条目

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

参考