L2TP VPN 占用过多远程网络上载带宽

L2TP VPN 占用过多远程网络上载带宽

在 Ubuntu 16.04 中,我使用以下命令,以便网络管理器在添加 VPN 连接时提供 L2TP 作为选项:

sudo add-apt-repository ppa:nm-l2tp/network-manager-l2tp; sudo apt update ; sudo apt-get install -y network-manager-l2tp network-manager-l2tp-gnome strongswan

上面是故意将多条命令合并成一行,这样在终端上一行就可以完成设置。

添加 L2TP VPN 并成功连接后,我能够通过 Meraki 防火墙访问远程网络上所需的一切。

但是,如果我在本地计算机上观看 4K YouTube 视频(或任何其他占用大量带宽的互联网活动),我会注意到我并没有直接从本地互联网连接获取该视频;相反,它实际上是通过 VPN 隧道下载的!这不是我想要的,因为远程网络几乎没有足够的上传带宽来覆盖那里正在使用的所有 VOIP 电话。因此,我需要 VPN 客户端仅将 VPN 连接用于实际位于该远程网络上的资源。

过去,当我使用 vpnc VPN 或 OpenVPN VPN 时,我可以选中此框以防止本地互联网活动消耗远程网络的带宽:

在此处输入图片描述

但是,如果我使用 L2TP VPN 选中此复选框,它确实只使用本地互联网资源,但我无法再访问远程 VPN 网络上的任何远程资源。例如,如果选中此复选框,在 VPN 连接期间,我甚至无法 ping 远程 LAN 的网关。

我如何才能做到:

  1. 访问远程 L2TP VPN 网络上的资源并
  2. 所有其他互联网活动是否仅消耗本地互联网资源?

Meraki 支持人员指导我进行此操作文档。但是,要求所有非技术用户都为可能连接到 VPN 的每个物理位置向他们的 Ubuntu 笔记本电脑添加路由是不切实际的。我需要一个解决方案,可以配置客户端自动执行拆分隧道,这样我就可以为每个用户设置它,他们唯一要做的就是连接。

答案1

连接到 VPN 会更改你的默认路由

如果您在连接 VPN 之前和之后查看路由表,您会注意到不仅有额外的路由,而且默认路由也已更改。除非有“更好”的特定路由,否则您的流量将通过默认路由发出。

要查看路由表,您可以运行ip route。以前您可以运行route,但大多数发行版不再有该命令。

ip route

对于每种 VPN 类型和每个 VPN 客户端,您都只能使用不同的选项和可能性,但是当您使用时openconnect,您可以控制这一点并防止默认路由发生变化。

更清楚的是,假设您的 VPN 网络是192.2.2.0/24。当您连接到 VPN 时,您需要一条新路由来将该流量路由到网关。它很可能看起来像192.2.2.0/24 via 192.2.2.1 on tun0,但网关 IP 可能不同。通过这条路由,任何到 的流量192.2.2.0 255.255.255.0都将转到tun0192.2.2.1不是eth0/wlan0到您的路由器。您只是不想192.2.2.1成为您的默认路由

相关内容