使用 OpenVPN 禁用全局路由

使用 OpenVPN 禁用全局路由

我设法使用脚本 [1] 安装了 openvpn,并且能够在 Mac OSX 上连接。

但是,默认选项是所有流量现在都通过 VPN IP 路由。

仅当目标 IP 为 时,是否可以使用此 VPN 路由流量X.X.Y.Z

对于其余流量,无需 VPN 即可使用。

[1]https://github.com/Nyr/openvpn-install

答案1

如果你控制服务器,那么你可以通过在配置文件中添加指令来推送特定路由,例如

push "route X.X.Y.Z 255.255.255.255"
push "route 192.0.2.0 255.255.255.0"

您可能还想删除该redirect-gateway指令(如果使用的话)。

如果您想在客户端执行此操作,则需要忽略推送的路由,然后通过向客户端配置添加指令来配置您自己的路由,例如

route-nopull
route X.X.Y.Z 255.255.255.255
route 192.0.2.0 255.255.255.0

这两种情况都会使指定的主机/网络通过 VPN 进行路由。

答案2

请注意与服务器推送选项的冲突: https://openvpn.net/faq/overriding-a-pushed-route-in-the-clients-config-throws-an-error/

你可能会遇到一个错误:

Options error: option 'route' cannot be used in this context

这个问题的出现是因为“route-nopull”选项剥夺了客户端安装服务器推送路由的权限,实际上是告诉选项解析器“不,这个选项在这里无效”。

正确配置它的方法是(route-nopull 位于最后):

...
# Options
client
route 10.1.0.0 255.255.255.128
route-metric 50
route-nopull
...

相关内容