如何在连接国外 VPN的同时,访问公司内网服务

作者:admin 发布时间:July 9, 2014

你正在查看的教程编写于10年9月22日前,最后编辑于9年2月6日前,部分内容可能已经过时且不再可用,请斟酌确认并查看最新的说明教程。

我平时都习惯连着 VPN 上网。在刷了电脑的路由表后,我的电脑会根据目的地的 IP 地址,让国内流量自动走宽带路线,国外流量自动走 VPN 的线路。

现在到了公司里,公司有许多的服务是只可通过内网访问的。当我连上 VPN 后,电脑就会把我要访问的内网 IP 都当成是国外那台 VPN 上的内网 IP,从而导致访问失败。

所以我需要避免内网的流量走进 VPN 线路,而应引导它们走向公司内网的默认网关。

我再补充一下问题然后开始说解决方案:不仅仅有些服务是仅限内网访问的,有些 domain 的解析也只能通过内网的 DNS 服务器来进行。

所以我们现在需要解决两个问题:

一、让内网服务的 domain 可以被内网的 DNS 正确解析(没有内网服务域名或者内网DNS的这里可以略过

二、让内网的流量走内网的网关。

关于问题 1,在 VPN 设置的 DNS 面板里,把公司内网的 DNS 服务器加入即可。

我设置了三个,按顺序分别是: 10.13.2.1 8.8.8.8 114.114.114.114

这样的话,当我在公司时,解析会通过 10.13.2.1 来进行。而当我离开公司的环境时,由于 10.13.2.1 不可用,这时会使用冗余的 DNS 服务器——即 8.8.8.8 来进行解析。114.114.114.114 是对 8.8.8.8 的冗余,因为有时这个地址会被 GFW 封锁。

关于问题 2,这就要刷路由表了。我建议每个使用 VPN 的大家,都用下 chnroutes 所提供的路由表策略,这样就可以对国内外流量进行分流了。

在 chnroutes 的基础上,我在 ip-up 和 ip-down 中分别加入了

# gongsi
route add 10.0.0.0/8 "${OLDGW}"
route add 172.16.0.0/12 "${OLDGW}"
route add 192.168.0.0/16 "${OLDGW}"

# gongsi
route delete 10.0.0.0/8 "${OLDGW}"
route delete 172.16.0.0/12 "${OLDGW}"
route delete 192.168.0.0/16 "${OLDGW}"

这两段。

第一段的意思是,配置 10.0.0.0/8 及 172.0.0.0/12 及 192.0.0.0/16 的IPV4 私有 IP 地址都走向 ${OLDGW} 所代表的网关,即公司内网的默认网关。第二段执行逆过程。
以上的内网网段请自行修改为自己公司的内网网段。

这样问题就解决了。
如果不使用chnroutes,那么使用如下命令即可。

route add -p 内网网段 mask 子网掩码 网关IP

Mac OS下

route -n add -net 10.0.0.0/8 10.1.1.1(自行修改)

以上文字部分按照自己公司的实际情况自行修改。

标签: none

评论已关闭