使用openvpn以便连接到公司机器上,但这会导致所有流量,即便是访问公司以外的资源,也会到公司绕一圈。通过设置route命令可以解决这个问题。
目标是开启openvpn以后,只让连接到公司机器/网段的流量才经过VPN连接,到其它资源的流量保持原来的路由不变。 openvpn提供了一个client.ovn的配置文件,我们通过修改这个文件来完成上述目标。这个文件通过下面的方法打开:
![](https://hbaaron.github.io/blog_2017/openvpn%E8%B7%AF%E7%94%B1%E9%85%8D%E7%BD%AE/a91bb0bb9db1daf029f0726ed08af834.png)
分两步,首先禁止从服务器端拉取路由,从而使得客户端先前的路由不变。在配置文件中末尾增加一行
然后我们增加到公司机器的路由。假设公司的机器是172.16.222.11,我们要把这台机器单独加到VPN访问当中。在文件末尾增加一行:
1
| route 172.16.222.11 255.255.255.255 vpn_gateway
|
这里的vpn_gateway是一个配置项,告诉openvpn这条路由要走新建立的VPN通道的路由器。与之相对的是network-gateway,意味着仍然使用之前的gateway。 其它的路由照样逐行添加即可。要注意的是,IP段与netmask要匹配,否则加路由会失败。比如下面的语法是错误的:
1
| route 172.16.222.11 255.255.255.0 vpn_gateway
|
这里要把172.16.222.11改为172.16.222.0,意即把整个C网段加入VPN路由中。 修改路由后测试一下,如果不通过,可以查看openvpn的log。
|