如何拒绝 OpenVPN 服务器推送的路由?

如何拒绝 OpenVPN 服务器推送的路由?

当我通过 Internet 与公司 OpenVPN 服务器建立 OpenVPN 客户端连接时,它会推送多个静态路由。不幸的是,这些路由破坏了我本地网络环境中的一些连接,因为它们与我自己的路由发生冲突。我怎样才能拒绝这些路线呢?

答案1

时代在进步,从 2017 年(OpenVPN 2.4)开始,这已经成为可能

pull-filter accept "route 192.168."
pull-filter ignore "route 172."
pull-filter accept "route 1"
pull-filter ignore "route "

此(人为的示例)将允许学习以 192.168 开头的路由,忽略所有 172. 路由,允许其他路由到 1.anything,然后忽略所有其他路由。

要忽略redirect-gateway您可以:

pull-filter ignore redirect-gateway

这些命令将添加到您的客户端配置文件中。

同样,您可以使用关键字reject告诉 VPN 服务器它不被接受。不确定这个的用途。

最后,您也可以过滤其他配置选项。我用它来忽略所提供的 DNS 服务器,因为 DNS 是由本地服务器为我处理的。

答案2

经过对手册的广泛研究openvpn,我找到了我的问题的答案:

如果您不希望自动执行路由,而是希望由您自己的工具处理,请使用以下选项:

--route-noexec

不要自动添加或删除路线。相反,--route-up使用环境变量将路由传递给脚本。

如果您接受服务器推送的除路由之外的所有内容,请使用以下选项:

--路由-nopull

--client当与或一起使用时--pull,接受服务器推送的选项(路由除外)。

当在客户端上使用时,此选项有效地禁止服务器向客户端的路由表添加路由,但请注意,此选项仍然允许服务器设置客户端 TUN/TAP 接口的 TCP/IP 属性。

答案3

您不能拒绝个别路由,但是如果您有权编辑您的 OpenVPN 配置,那么您可以通过删除您的配置的所有实例或从您的配置中有效地停止服务器--push对您的任何配置。如果您的配置中尚不存在此指令(只是 , 的同义词),您将需要添加。clientpulltls-clientclientpulltls-client

当然,如果您这样做,您将丢失所有路由和通常为push您提供的任何其他配置,因此您需要在隧道启动后手动配置这些设置。

相关内容