当我通过 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
对您的任何配置。如果您的配置中尚不存在此指令(只是 , 的同义词),您将需要添加。client
pull
tls-client
client
pull
tls-client
当然,如果您这样做,您将丢失所有路由和通常为push
您提供的任何其他配置,因此您需要在隧道启动后手动配置这些设置。