Windows下不让L2tp/IPSeC代理全部流量

背景

笔者人在学校A,日常需要通过IPSeC连接学校B的实验室以访问内网服务器(位于学校B实验室192.168.21.x网段)。但是,在Windows下使用L2tp/IPSeC默认会代理所有流量(浏览网页、刷视频、微X扣扣等全部走代理)
.
这让笔者很不爽,原因有二:

  • 本来另一头喂皮恩服务器带宽就不大,代理所有流量的话:
    • 会影响到其他人使用
    • 自己用也很慢
  • 理论上另一头可以对笔者的所有流量进行审计

所以尝试折腾下一些配置及路由表,试图实现:在Windows下使用L2tp/IPSeC时只对内网服务器IP段进行代理,其他的都不要过代理

准备工作

下文会使用“这一头”来代指本地网络;“另一头”代指远端的内网。

首先,连接上公司/学校的L2tp/IPSeC:
连接上公司/学校的L2tp/IPSeC
然后,通过ipconfig,查看自己拿到的另一头内网IP。
.
可以看到,是192.168.30.x

接着,用route print查看当前的路由表:
在第二行有一条路由规则,其接口一列恰是我们拿到的内网IP

查阅多方资料,“在链路上”意味着网关地址和接口地址一样。所以画圈的这一条路由规则网关地址就是接口地址192.168.30.x

在这里,第一行是走我本地网络的默认路由;而第二行(圈起来的这一行)的默认路由,其网关是恰是另一头内网IP192.168.30.x!这就是为什么咱们的流量都要经过代理的罪魁祸首。

记住另一头网络的路由的网关地址!,也就是上图画圈这一行的网关地址(“在链路上”意味着网关地址和接口地址一样)再进行下一步。

不让代理修改默认路由

控制面板->网络和Internet->网络和共享中心->更改适配器设置->找到自己喂皮恩的接口,右键属性。
.

然后,网络选项卡->IPv4那一行双击->高级->把“在远程网络上使用默认网关”给去掉

.
至此,我们已做到不让全部流量走代理,但是!代价是全部流量都不走代理了!!所以,接下来要手动操作路由表,让欲被代理的网段走代理。

修改路由表

警告|须知

由于每次通过IPSeC连接时,拿到的IP可能都不一样。所以每次连接后,可能都要自己删除旧路由、手动添加新路由
或许可以整个脚本…?

假设另一头服务器位于192.168.21.x网段,我想让访问192.168.21.x的流量走代理。

执行route add [欲代理的网段] mask [欲代理网段的子网掩码] [之前通过route print看到的代理的网关]即可,根据上面几张图我自己的情况,对应的是:

.

此时,ping另一头内网的机器已经可以ping通,同时其他流量都不走代理了。。
.
要是想删除这一条路由,直接route delete 192.168.21.0(对应上面图里route add的地址)即可。

参考资料

十四年前就有人提问过相关问题…
https://superuser.com/questions/12022/how-can-i-make-the-windows-vpn-route-selective-traffic-by-destination-network

后记

我导:服务器可以连了吧?那就开始干活吧!: )
我:: )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值