需求
疫情隔离在家办公,难免需要连接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口,不然路由器下面的设备无法生效。
结尾
本文记录的比较草率,感谢公司工程师同事的帮助,非常感谢~