WireGuard x OpenWrt 配置笔记

目标:实现将一个拥有固定 IP 的 VPS 和一个内网环境下的 OpenWrt路由器 通过 WireGuard 建立隧道而相连,从而起到内网穿透的作用。

首先肯定得在路由器和 VPS 上分别安装 WireGuard,其中在路由器安装的过程比较波折,最后不得已从网上下载了别人编译好的包含 WireGuard 固件(为后来的折腾带来很多麻烦),而 VPS 那边就简单很多了,标准的 Debian 系统从官方便可找到完整的安装配置步骤了。

安装过程不再详细介绍,Debian 用户根据上面链接中的说明一行一行复制粘贴就可以完成安装了。至于OpenWrt端的安装也可以通过下面的命令简单完成。

在路由器上:
opkg update
opkg install luci-app-wireguard

安装后,应该要为路由器和 VPS 分别生成各自的公钥和私钥,WireGuard在建立隧道的时候需要彼此的公钥才能工作。

在两台设备都执行:
mkdir /etc/wireguard;cd /etc/wireguard(可能已经存在有这个目录,那么直接cd就可以)
wg genkey | tee privatekey | wg pubkey > publickey

这样一来公钥和私钥就生成好了,公钥用来分发给别人,私钥则应该妥善保存。 上面的工作完成后,就可以开始配置 WireGuard 了,不同的是在 OpenWrt 端 WireGuard 是有 luci 界面可供配置的,而在 Debian 端,WireGuard 只能通过 CLI 进行配置。

在路由器上:
进入 Web 管理页面,点击网络选项卡并点击接口,然后在找到下面的添加接口,点击进入。 新接口的协议应该选中 WireGuard VPN;接口的名称随意,然后新建即可。下一步开始修改这个接口的选项。

在路由器上:
cat /etc/wireguard/privatekey
然后把输出的那些字符全部复制出来粘贴到Web中的私钥框里去,监听端口可以乱乱填,这不重要。其他的按照我的填写就可以了。

在 VPS 上:
sudo nano /etc/wireguard/wg.conf
然后编辑以下内容进去并保存

[Interface]
Address = 10.0.1.1/24
PrivateKey = <在服务器使用 cat /etc/wireguard/privatekey获得 >
ListenPort = 12580

[Peer]
PublicKey = <在路由器使用 cat /etc/wireguard/publickey获得>
AllowedIPs = 10.0.1.2/24

保存后就可以使用
wg-quick up wg 来启动wg了
如果是Debian8的话,要在启动之前执行一条
apt-get install linux-headers-`uname -r`

在路由器上:
按照下图配置即可

填写完成后,保存并应用,两边的连接会立即建立。
建议把路由器上面创建好的 WireGuard 接口添加到防火墙的 lan 一侧。
之后,在路由器上可以通过管理界面的 状态——WireGuard Status 查看连接情况;在 VPS 上则可以通过 wg show 查看连接情况。

发布者

Shell

想要成为最强萌新

发表评论

电子邮件地址不会被公开。 必填项已用*标注