我该如何防止OpenVPN破坏本地路由?

我有192.168.1.0本地networking与networking掩码255.255.255.0。 当我通过OpenVPN(作为一个客户端)连接到一个VPN时,它推送一个192.168.1.0的路由,使现有的路由器变得不可用,从而使我的本地networking无法访问。 我不想在远程机器上访问192.168.1.0上的任何东西; 我想忽略它,同时接受推送的其他路线。 我的客户端是Ubuntu 10.10。

我怎样才能跳过一条违规路线?

使用

--route-up --route-noexec 

选项,并完全忽略推送给你的路由,而是将静态路由添加到要通过隧道访问的特定主机。

 openvpn --route-noexec --route-up /tmp/myscript --config ./client.ovpn 

/ tmp / myscript在哪里

 route add -host 192.168.1.69 gw ${route_net_gateway} 

类似的东西,我没有实际testing过,但它应该工作。 断开连接时,您可能还想删除路由。

你的本地networking非常大吗? 将networking重新编号为非冲突范围可能最简单。

否则,您可以将openvpn启动命令封装在OpenVPN启动后修复路由的脚本中。

除了@ hellomynameisjoel的回答之外 ,请注意,您可以通过环境variables访问route-up脚本中的推送路线。 所以你只能添加必要的路由。

或者,您可以使用OpenVPNconfiguration文件中的默认网关添加路由:

route 192.168.1.0 netmask 255.255.255.0 net_gateway

在此之后,添加相同的推送路线将失败。

PStestingArchLinux / OpenVPN 2.3.5。