配置Windows路由表根据IP段进行VPN分流
最近需要为公司的国外合作方提供内网测试环境,用来体验我们开发中的产品,不考虑PC远程桌面的情况下, 测试了这三种方案:使用VPN连接、使用内网穿透、使用TLS/SSL或Socks代理,发现体验最好的还是VPN连接。
但是如果使用VPN连接的话会有个问题,就是合作方的所有流量都会先走我们公司内网,然后才会往外发送。 其实只要使用系统自带的路由表就能很容易的对流量进行IP段分流(以上几种方式的部署方法不在本教程中)
第一步,建立VPN连接,填写相应信息:
- 打开「控制面板」并调整右上角的「查看方式」为任意图标类型
- 点击列表中的「网络和共享中心」并选择「设置新的连接或网络」
- 在弹出来的新窗口中选择第三个「连接到工作区」,点击下一步
- 然后选择「使用我的 Internet 连接(VPN)」这个选项
- 接着填写「Internet 地址」,举例:office.jtwo.me
- 填写「目标名称」需要记得,待会将要用到,举例:产品组测试
第二步,修改VPN设置,取消流量传输:
- 点击左侧列表「更改适配器设置」,找到刚才新建的「产品组测试」网络
- 右击「产品组测试」并选择属性,选择「安全」标签页并修改「VPN类型」
- 选择「网络」并修改「Internet 协议版本」中4和6的「属性」的「高级」
- 取消「IP 设置」标签页中的「在远程网络上使用默认网关」的选中状态
第三步,修改系统路由表,指定IP段分流:
- 双击拨号连接「产品组测试」这个VPN并输入账号和密码,等待连接成功
- 在「开始菜单」找到「Windows 系统」的「命令提示符」右击管理员运行
- 输入命令(这里就要用到刚才填写的VPN的目标名称,举例:产品组测试)
# 显示已经连接的VPN接口以及对应的接口编号,记住最前面的数字,举例:38
route print | findstr "产品组测试"
# 添加公司内网IP段,下方的38就是接口编号,IP段举例:172.16.196.0/24
route add -p 172.16.196.0/24 0.0.0.0 if 38
# 到这里就完成所有配置了,参数 -p 是指添加永久路由表,重启系统仍然保留
附注:
网上部分资料使用了以下命令,但经过笔者测试都没有使用接口的方法好,仅做记录:
route add -p 172.16.196.0/24 192.168.10.0
当时可以连接,重启系统失效,未知原因
route add -p 172.16.196.0/24 192.168.10.5
如果下次拨号分配IP地址改变,也会不行