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

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

我在 192.168.1.0 上有一个本地网络,网络掩码为 255.255.255.0。当我通过 OpenVPN(作为客户端)连接到 VPN 时,它会推送一条 192.168.1.0 的路由,该路由会破坏现有路由,导致我的本地网络无法访问。我不想在远程计算机上访问 192.168.1.0 上的任何内容;我想忽略它,同时接受推送的其他路由。我的客户端是 Ubuntu 10.10。

我怎样才能跳过那条有问题的路线?

答案1

使用

--route-up --route-noexec

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

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

/tmp/myscript 的位置

route add -host 192.168.1.69 gw ${route_net_gateway}

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

答案2

除了@hellomynameisjoel的回答,请注意,您可以通过环境变量访问脚本中推送的路由route-up。因此,您可以只添加必要的路由。

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

route 192.168.1.0 netmask 255.255.255.0 net_gateway

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

PS 在 ArchLinux/OpenVPN 2.3.5 上测试。

答案3

您的本地网络很大吗?最简单的方法可能是将您的网络重新编号为不冲突的范围。

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

相关内容