12
2022
12
09:31:36

OpenWRT 配置 WireGuard 服务端及客户端配置教程



推荐点击下面图片,通过本站淘宝优惠价购买:

image.png

前言

去年出过一期在 openwrt 上部署 OpenConnect VPN 的详细教程,主要用于在外办公方便 VPN 回家的使用场景.博主几乎每天使用持续了一年多,在 macOS 和 iOS 上体验都非常的稳定.

而今天的主角是已经火了几年的了 WireGuard, 同样是 VPN 回家服务,在博主试用了一段时间后决定以后主用 WG 了.(其实是强迫症患者发现 CISCO AnyConnect 还没支持 ARM 架构).


由于 WireGuard 在 Linux 上安装配置较为麻烦,而很多 openwrt 固件也都预装了 WG ,并且有图形化界面方便设置.所以博主目前推荐还是在 openwrt 来直接使用.

WireGuard 与 OpenConnect VPN 的区别

抛开深沉的原理,简单通俗的说明下两者的区别和使用感受:
OpenConnect VPN主要是使用 TCP 协议,而 WireGuard则是 UDP 协议.最明显使用感知就是前者需要类似拨号一样过程,在网络断开,重连等情况下并非无感.而 WireGuard则类似于常驻后台,随用随取的感觉,体验不错.

在配置方面, OpenConnect VPN 需要使用证书来提高使用安全和连接体验,而 WireGuard 则是使用点对点的加密公钥私钥的形式来配对,并且每台客户端需要单独分配 IP 和公私钥.前期配置均稍许麻烦,但两者后续使用和管理都还比较合理和方便.

  • OpenConnect VPN 只需要客户端拥有证书文件即可

  • WireGuard 只需要客户拥有配置文件即可


本文为 Stille 原创文章.经实践,测试,整理发布.如需转载请联系作者获得授权,并注明转载地址.

服务端


注意博主的 openwrt 是以旁路由的形式存在于家庭网络中,所以后续防火墙设置可能和把 openwrt 当主路由的形式不同.

创建公钥私钥

预共享密钥

通过 SSH登陆到 openwrt 后台.



1022163021-1

服务端公钥私钥



3790279855-1

客户端公钥私钥 ( macOS )

重复此操作创建每个客户端的公钥和私钥,请注意修改以下命令中的文件名,本文以 macOS 为例:



731528211-1

配置 openwrt

服务端相关配置

登陆 openwrt – 网络 – 接口 – 添加新接口

2484939947-1

填写接口名 – 选择接口协议 – 提交

286965958-1

基本设置 – 填写上文获取的 服务端私钥
自行填写一个端口号 – 并且在路由器映射该端口的 UDP 协议
IP 地址填写一个 VPN 专用的网段 IP – 本文以 192.168.100.X为 WireGuard 的专用网段为例,则本 WG 服务器 IP 为 192.168.100.1/24

1414831899-1

防火墙设置 – 选择 vpn

3137243165-1

客户端 Peers 区域为每个客户端添加配置

选择 预共享密钥 – 添加

3670085722-1

公钥 – 填写上文获取的 macOS 客户端公钥
预共享密钥 – 填写上文获取的 预共享密钥
允许的 IP – 即表示为此 macOS 客户端分配固定 IP , 本文示例为 192.168.100.2/32 , 注意各客户端 IP 不能冲突.
持续 Keep-Alive – 填写 25

275719202-1

防火墙

网络 – 防火墙 – 自定义防火墙 – 添加以下防火墙 – 重启防火墙




再次声明博主的 openwrt 是作为旁路由接入,此条防火墙不确定适用于主路由部署 WireGuard 使用.主路由用户可以尝试无需设置防火墙(经朋友测试)

524460402-1

重启 WireGuard

返回网络 – 接口 – 关闭 – 连接
或者直接重启整个 openwrt 最为稳妥.

894597398-1

客户端

创建客户端配置文件

创建后缀为 .conf的配置文件,例如 macos_wireguard.conf,复制以下信息,并且修改对应的公私钥信息:



此时的配置文件是用于客户端的,所以 PrivateKey则为 macOS 客户端的私钥,而 Peer中的 PublicKey则为 openwrt 的公钥.请注意反向思考Endpoint填写家中的 IP 或者 DDNS 域名和端口.

AllowedIPs

值得注意的是 AllowedIPs参数.针对不同场景和需求,此处可以配置不用的路由.
当此处为 0.0.0.0/0时表示任意网络请求都经过 VPN 俗称全局 VPN , 由于 iPhone 同时只能有 1 个 VPN 软件在线,所以当 WireGuard 启动时,其他类似 Quanx小火箭等软件则无法使用,此时 iPhone 可以全局 VPN 使用家中的网络来访问一些外网.

如果是 macOS 或 Windows 客户端, WireGuard和 Clash等软件可以共存,此处可以设置为 AllowedIPs = 192.168.1.0/24, 192.168.100.0/24,表示访问内网网段才会走 VPN .而其他互联网,外网等访问还是走当前网络来利用 Clash分流.

macOS

在 macOS App Store 下载 WireGuard,从文件导入隧道.

2003979131-1

选择允许添加 VPN 配置

302243957-1

连接成功

1707328844-1

在 openwrt 状态页面能够看到连接成功的状态信息

1165251389-1

iOS

重复上述操作创建 iPhone 的配置文件,并上传至 iCloud 云盘.
在 iOS 设备 App Store 下载 WireGuard

1151510484-1

添加隧道 – 导入配置或压缩包

3454281593-1

从 iCloud 云盘中选择 iphone_wireguard.conf 配置文件

2279540996-1

选择允许添加 VPN 配置

4147645188-1

连接成功

3906918524-1


结语


本文链接:https://hqyman.cn/post/3305.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:





休息一下,本站随机推荐观看栏目:


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

您的IP地址是: