如何将某些 URL 列入白名单/黑名单以不使用 VPN 连接?

如何将某些 URL 列入白名单/黑名单以不使用 VPN 连接?

旁注:事实证明我们的 OpenVPN 服务器确实是为分割隧道设置的,但我们的客户端正在推送他们自己的网关:

redirect-gateway def1 bypass-dhcp bypass-dns

这样做是为了访问一些无法从外部访问的内部服务。更合适的问题是:在不推动将整个流量路由到 VPN 的网关的情况下,访问 vpn 内部服务的正确方法是什么,尽管我认为这更像是另一个问题


我在家办公,虽然我已经通过网络管理器建立了稳定的 VPN 连接,但其速度非常有限。我在家里有 1 GBit 的连接,而目前的 VPN 连接仅提供 10 MBit。

虽然某些服务必须通过 VPN 连接,但大多数流量都可以顺利绕过它,因为 VPN 所做的只是减慢速度。(我特别关注公共数据密集型服务,例如从官方 docker hub 或 npm 注册表下载图像。但只是为了设置它,让我们采用 fast.com 这样的服务。)

如何将某些网站列入白名单以使用 VPN 连接或将其他网站列入黑名单以不使用 VPN 连接?

答案1

与为您设置 VPN 的人员讨论。

这通常称为分割路由,其中​​ VPN 隧道将用于公司网络内的资源,而默认网关将用于其余资源。这通常比按服务进行过滤更容易。通常,公司将有一些一种网络内部计划,可以轻松提供分割路由。

您应该检查您的组织是否允许这样做。并非所有组织都允许拆分路由,因为他们希望对您的流量进行数据丢失预防。

答案2

以下是一些可以尝试的替代方案:


  • 忽略更改默认网关:

在配置指令中将“redirect-gateway”选项更改为 redirect-private


  • 仅通过 VPN 路由 VPN 流量:(
    如果服务器向客户端推送显式路由则有效)

勾选 VPN 设置 -> IPV4 ->
“仅将此连接用于其网络上的资源”
如果他们推送明确的路线,那么只有那些流量才会通过 VPN。


  • 推送非 VPN 流量外部隧道:

然后在终端连接到你的 VPN:

host www.sl.se # host you want outside tunnel
194.68.78.65 # the ip of the host above
sudo ip route add 194.68.78.65 dev eth0 # route traffic outside VPN 

这会将流量路由到 VPN 之外的 www.sl.se


  • 推送 VPN 流量里面主机到主机隧道

然后在终端连接到你的 VPN:

host your-vpn-onlyhost.com # host you want inside of tunnel
 1.1.1.1.1 # the ip of the host above
sudo ip route add 1.1.1.1 dev tun0 # route traffic inside VPN

所有示例均假设 VPN 接口名称为 tun0,网卡名称为 eth0。并且 DNS 名称可在 Internet 上解析。

答案3

您想要的就是分割隧道。

您可以做什么取决于您在客户端计算机上的用户类型。如果您不是 sudoer,则必须由这样的用户(通常是系统管理员)来修复此问题。

如果你是 sudoer(并且假设你的组织允许你进行这样的更改;这取决于你自己),你可以按照本指南

笔记:

  1. 16.04 和 18.04 之间发生了一些变化,因此旧指南可能不完整。

  2. 我不知道 18.04 和 19.10 之间是否存在任何变化导致该指南无法工作。

有关的:

仅将OpenVPN用于一个应用程序/服务

https://serverfault.com/questions/792118/openvpn-how-to-stop-public-traffic-routing-through-vpn-server

https://dltj.org/article/openvpn-split-routing/(自 2010 年起)

相关内容