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虚拟端口,最好直接重启路由器,以免系统抽风没有无法正常使用。