Openwrt L2TP VPN 实现按目的IP分流

需求

疫情隔离在家办公,难免需要连接 VPN 回到公司内网中处理各种事情;但是呢,一旦连接 VPN 之后会导致我本地的网络分流全部失效,同时所有网络会中断一次,随之而来的就是各种 SSH 终端全部断开,这种局面让我非常难受。

所以有什么办法,能让我在家能够无感连接公司网络,同时不影响我的其它分流呢?小米路由器自带有个 VPN 分流给了我思路,既然它能做到,那么我相信 Openwrt 一样能做到。

设备工具

一台软路由设备(已刷 LEDE)VPN 服务器一个会思考的脑袋

流程方法

VPN 接口添加

按照正常流程,给自己的路由设备添加一个 VPN 接口,添加过程中 高级设置 -> 使用默认网关 这里务必取消,不然可能会导致连接路由器的所有设备没有网(这里是个巨坑,直接导致重刷路由器),如下图:

这里记录一下 VPN 接口名称:HW

为什么会导致没网呢?我请教了公司的工程师,回答如下:

大概意思是:如果不取消,会默认添加一条路由让全部流量走 VPN,但是呢,因为流量接口发包的时候流量没有经过 NAT 处理,回包的时候因为来源 IP 是错的,导致无法正常回包而断网。

添加静态路由

路径:lede 后台 -> 网络 -> 静态路由

这两条路由的含义是:我希望 192.168.114.0/24 192.168.222.0/24 这两段 IP 范围全部走 VPN,前面的 HW 是接口名称;大家举一反三。

添加 NAT 规则

执行命令:iptables -t nat -I POSTROUTING -o l2tp-HW -j MASQUERADE,其中的 l2tp-HW 是 VPN 接口名称,执行命令 ifconfig 能够看到。

路径:lede 后台 -> 网络 -> 防火墙 -> 自定义规则,将刚才的命令追加到最后,使以后每次重启依然生效。

该动作就是解决前面提到因为 NAT 无法回包问题。

防火墙添加接口

路径:lede 后台 -> 网络 -> 防火墙 -> 基本设置 -> 区域;将刚才添加的 VPN 接口添加进 WAN 口,不然路由器下面的设备无法生效。

结尾

本文记录的比较草率,感谢公司工程师同事的帮助,非常感谢~

TG交流群(点击进入)----付费帮助搭建---修复---二开,以及发布求资源.
QQ交流群 922260178
© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容