Recopec
文章16
标签20
分类5

文章分类

一言

文章归档

在 OpenWrt 下使用 WireGuard 实现全局代理上网

在 OpenWrt 下使用 WireGuard 实现全局代理上网

在 OpenWrt 下使用 WireGuard 实现全局代理上网

设备情况

设备型号:360 T7

固件版本号:ImmortalWrt 18.06-5.4-SNAPSHOT r11814-ef0c86bdb0 / LuCI branch (git-22.323.17670-f9380b5)

网络架构图如下

网络设置

新建 WG 接口,修改协议为 WireGuard VPN

一般配置里填好私钥(可以自行生成),IP地址(对端的允许的IP)

Peers 里添加一个新的。

然后填写对端的公钥允许的IP话,看情况填写。

  • 如果只需要走部分网段的话(打通内网),填写对应的网段即可(CIDR格式),例如192.168.88.0/24, 10.22.33.128/25。点加号可以添加多条。
  • 如果需要全局代理的话,填写0.0.0.0/0(默认路由)即可

路由允许的 IP 打钩,这一条是自动添加路由表的作用。

端点主机和端点端口填写对端的IP地址和端口即可。

持续 Keep-Alive 看情况填写,我使用的是默认值0。

填写好是这样的:

到这一步,如果只需要走部分网段的设置已经接近尾声了,把新建的 WG 接口加入到和 LAN 相同的防火墙区域,即可打通。或者新建一个新区域,配置规则也行,保存应用之后重连一下端口,就可以在 状态 - WireGuard 状态 看到链接信息了,有正常收发流量即为正常。

全局代理设置

对于这个在网上相关的资料非常少(也许是我想实现的效果比较扭曲),我到最后发现会自动给我添加 WAN 口的默认路由,导致走不下去,手动添加配置删除路由还是不太稳定,所以放弃。最近有了新发现,是 MWAN 搞的鬼。

现在开始配置教程。

防火墙设置

在防火墙区域新建一个 VPN 区域,把 IP 动态伪装打开(相当于在主路由那边是通过这台路由器 NAT 之后通信),再把 WG 接口添加到 VPN 区域。

修改 VPN 区域的设置:

允许转发到目标区域:WAN 区域打钩

允许来自源区域的转发: LAN 区域打钩

修改 WAN 区域的设置:

允许转发到目标区域:空

允许来自源区域的转发:VPN 区域打钩

修改 LAN 区域的设置:

允许转发到目标区域:VPN 区域打钩

允许来自源区域的转发:

修改好应该是这样的

防火墙

LAN
WAN
VPN

到此防火墙设置结束。

接口设置

WAN接口 -> 高级设置 -> 使用默认网关 去掉对钩

LAN接口 -> 基本设置 -> 使用自定义的 DNS 服务器 -> 填写 WG 那边的网关,或者公共 DNS

路由设置

网络 -> 静态路由 -> 静态 IPv4 路由

接口选择 WAN ,对象填写对端 WG 的 IP 地址,IPv4 子网掩码32位,IPv4 网关填写你 WAN 口上级路由器的网关地址,其他保持默认即可。

网络 -> 静态路由 -> 静态 IPv4 路由

网络 -> 负载均衡(MWAN) -> 禁用所有 MWAN 接口

就是因为这个原因,所以他才会自动给我加路由表,明明我取消了使用默认网关,并且没有添加其他的路由项,还是会给我加默认路由,情况如下图。

关闭 MWAN 后

测试联通性

Enjoy!

更换固件后测试

固件版本号:QWRT R23.6.1 / LuCI Master (git-23.141.16773-28dd4b3)

这个固件防火墙区域都不用配置,WAN也不用取消默认网关,默认即可上网(自动给添加了路由)。

默认路由表

配置好 WG 后的路由表

大雕NB!

本文作者:Recopec
本文链接:https://blog.irec.moe/openwrt_with_wireguard_proxy.html
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可