在Openwrt上使用wireguard组网 您所在的位置:网站首页 openwrt网络连接日志 在Openwrt上使用wireguard组网

在Openwrt上使用wireguard组网

2024-01-20 02:51| 来源: 网络整理| 查看: 265

前情提要:

搞这个的目的在于,虽然现在已经有太多种成熟的虚拟组网方案,但是我想结合类似cl*sh之类的软件使用的话,就没有办法了,电脑上还好点,手机上iOS只能同时开启一个VPN服务就比较蛋疼。之前用过zerotier,速度一般,最近在用tailscale,老是打洞失败,延迟飙到200+ms,也很难受,并且iOS上好不容易出了一个choc结合了tailscale但是作者又不更新跑路了,无意间发现su*ge现在原生支持wireguard,于是有了后面的折腾与研究,这里记录一下免得若干时间后再弄一次又要从头开始。

准备:

- openwrt路由器,内网段192.168.2.1/24

 - ipv4或者ipv6公网并做好ddns解析

生成密钥:

首先根据名称上来定义不同的服务端或者客户端密钥,以免混淆

 - sprivatekey: 服务端私钥

 - spubkey: 服务端公钥

 - cprivatekey: 客户端私钥

 - cpubkey: 客户端公钥

ssh到你的openwrt路由器,任意目录新建一个wireguard文件夹用于存放密钥,然后在wireguard文件夹下创建一个user1的子目录,用于存放第一个用户的密钥,如果有需要多个客户端,可以自行创建多个。

生成服务端密钥

openwrt配置:

不同的固件可能界面和操作上会有些许不同,我使用的是esir的固件,自带了wireguard,如果你的openwrt并没有内置,请先自行安装wireguard组件

去到网络 - 接口 - 添加新接口,填写名称(推荐用wg0来表示,我这里已经之前有wg0接口了,所以这里取名wg1),协议选择Wireguard VPN创建

新建接口wg0

下一步,填写上上面生成的服务端私钥sprivatekey,端口任意填写,建议使用高位端口,IP地址选择一个新的内网IP,不要和你的openwrt所在内网地址段冲突,我这里使用了192.168.5.1/24的内网段作为wireguard的地址

接口配置

高级设置跳过,保持默认,防火墙设置选择LAN区域,保存并应用

接口配置

接口这里可以看到新建的接口已经有了

wg接口

配置防火墙,点开网络 - 防火墙 - 自定义规则,最后面粘贴上iptable规则,这里网段替换成你自己的

点开通信规则,打开路由端口,允许UDP协议的10767端口

打开路由器端口

客户端配置

进入刚才创建的user1文件夹,首先生成一个sharekey,后面会用到,再生成客户端对应的私钥和公钥

回到网络 - 接口 - 修改wg0接口,添加一个新的peers,一个peer对应一个客户端

公钥填入客户端的cpubkey

允许的IP随便写一个但是要在刚才定义的网段里面,192.168.5.2/32,::/0

勾选上路由允许的IP,其余的可以留空

左下角更多选项,添加预共享密钥,就是刚才生成的sharekey

peers

创建客户端配置文件

新建一个后缀为.conf的配置文件,填入刚才的信息,注意不要填错

手机或者电脑上安装wireguard客户端,导入.conf配置文件,测试连接成功

openwrt菜单栏状态 - WireGuard状态可以查看当前连接信息

连接状态

进阶

加入分流规则,没有su*ge的可以忽略这部分

在su*ge配置文件中加入wireguard的配置块

然后在下面的[ProxyGroup]中引用我们的wireguard线路

效果,iperf随便测试一下,差不多能跑个30-50MB的上传,我这里4G信号不算好可能会更高

THE END



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有