Openwrt使用wireguard实现异地组网

失踪几个月终于更新了

前言

事情是这样的,早在2022年我换上了Pixe之后惊奇的发现android13默默移除了L2TP的支持,只能使用IPsec的VPN了,对于我这样的懒狗来说,配置IPsec是不可能的,这辈子都是不可能的

所以!我换掉了原先家中使用的某品牌成品AC,改用支持wireguard的Openwrt开发板来作为主路由使用。并开始了这一次的折腾

设备及环境介绍

在实作过程中,踩了不少坑,并且由于openwrt版本不同的情况下软件包会有一点区别,所以在此标注本次实操的系统版本等信息,需要注意:请保证两端LAN的网段不能有重合!

设备 A地路由(拥有ipv4公网IP) B地路由(无ipv4公网IP)
系统版本 openwrt-22.03 openwrt-22.03
LAN口IP 192.168.10.1/24 192.168.20.1/24
wg网段IP 10.0.0.1/24 10.0.0.2/24

A地路由设置

添加防火墙

首先需要添加一个wireguard的防火墙区域,依照下图设置即可

添加wireguard虚拟接口

网络-接口 页面新建一个接口,名字随意并选择协议为Wireguard VPN

虚拟接口配置

点击生成新的密钥对生成本机的公钥和私钥,并填写下方监听端口我们规划好的此设备在wireguard虚拟网络中的ip

记得配置此接口所在的防火墙区域

到这里,我们就可以暂时保存端口的设置了,等B设备配置好后我们再回来配置对端设置。(其实此处可以先在这台路由上将B端的公私钥生成好并填写对端配置)

配置静态路由

为了让局域网下的设备访问到对端网段下的设备,最好请添加以下静态路由(实测好像不加也没事)

上图中的含义为:当接口区域wg有去往192.168.20.0/24网段的数据包时,将其网关设为本机在wireguard虚拟网络中的ip地址

B地路由设置

添加防火墙

首先需要添加一个wireguard的防火墙区域,依照下图设置即可

添加wireguard虚拟接口

网络-接口 页面新建一个接口,名字随意并选择协议为Wireguard VPN

虚拟接口配置

点击生成新的密钥对生成本机的公钥和私钥,并填写下方我们规划好的此设备在wireguard虚拟网络中的ip,由于此地无公网ip所以监听端口是否配置其实无所谓(默认其实会开一个)

记得配置此接口所在的防火墙区域

配置对端(A地路由信息)

在对端选项卡中添加一个对端,并填入A路由的对应信息

在允许的ip选项中除了要填A端路由在虚拟网络中的ip(10.0.0.1/24)外,要加A地LAN的网段(192.168.1.0/24)

私钥和预共享密钥为可选项。

配置静态路由

为了让局域网下的设备访问到对端网段下的设备,最好请添加以下静态路由(实测好像不加也没事)

上图中的含义为:当接口区域wg有去往192.168.10.0/24网段的数据包时,将其网关设为本机在wireguard虚拟网络中的ip地址

A地路由的对端设置

回到A地路由器的配置,我们将B端信息填入对端选项卡中并保存应用

使配置生效

在保存并应用配置后就已完成所有配置项,但建议重启wg虚拟端口,最好直接重启路由器,以免系统抽风没有无法正常使用。


Openwrt使用wireguard实现异地组网
https://blog.xianyu.one/2023/02/08/wireguard-connect/
作者
咸鱼
发布于
2023年2月8日
许可协议