拆分隧道允许VPN用户通过VPN路由来自指定应用程序或设备的流量,而来自其他应用程序和设备的流量则通过默认的非VPN网络传输。拆分隧道可用于多种不同目的,包括:
- 允许正常使用Internet,同时访问仅VPN用户可用的资源,例如企业服务器
- 设置特定设备,例如游戏机或流媒体盒,以使用(或不使用)VPN,而不会影响网络上的其他设备
- 通过VPN发送设备的所有流量,但访问不允许VPN连接的内容或服务(例如MLB.tv或Netflix)时除外
- 通过VPN发送所有流量,但要求低延迟的内容和服务除外,例如VoIP应用程序和在线游戏
- 仅通过VPN路由洪流流量,而所有其他Internet流量都流向默认网络
- 在不影响您与本地网络上其他设备(例如打印机或Plex Media Server)的连接的情况下访问VPN
您的想象力是拆分隧道应用程序数量的限制。好吧,那和您的硬件有关。不同类型的分割隧道技术要求不同。您可以实现的目标在很大程度上取决于您的设备,wifi路由器和VPN服务.
在开始之前,必须意识到分段隧道需要一些高级技术知识,而偶然实施会导致安全隐患。如果您没有正确配置拆分隧道设置,则您的ISP或第三方可以访问您的一些敏感数据.
分割隧道的类型
对于典型的VPN用户,有四种主要类型的拆分隧道.
第一种是最简单的类型,如果您需要通过VPN访问远程资源,同时又要保持与Internet的正常非VPN连接,则非常有用。我们将在下面的教程中说明如何执行此操作.
第二个是按设备。例如,如果您想让游戏机在没有VPN的情况下连接到Internet,但在PC和智能手机上通过VPN进行连接。这种类型的拆分隧道通常是在您的wifi路由器上完成的。在流行的DD-WRT路由器固件中,这称为“基于策略的路由”。
拆分隧道的第三种类型是根据应用程序。您可以分别设置要连接到VPN或不想要连接到VPN的应用和服务的黑名单或白名单。后者有时称为“反向”拆分隧道。例如,如果您只希望洪流通过VPN,而所有其他应用程序(例如游戏和Web浏览器)在没有VPN的情况下连接到Internet,则这是您要使用的方法。按应用程序拆分隧道仅适用于某些VPN,操作系统和路由器固件.
拆分隧道的最终类型允许您根据流量的目的地而不是流量来路由流量。例如,如果您想通过VPN路由除前往Netflix或Hulu的流量以外的所有流量。这就是基于IP的路由,这是最难完成的拆分隧道类型。它需要一个有状态的路由器或防火墙,即使有,它也需要像Netflix这样的站点拥有如此多的IP地址,以至于很难使其可靠运行。因此,我们将不在本文中介绍IP路由.
并非所有操作系统都支持所有类型的拆分隧道。实际上,Windows用户会发现他们的选择受到严格限制。 Mac电脑还不错,但是带有DD-WRT或Tomato固件的路由器提供了最多的功能。不幸的是,它们也是最复杂的配置.
如何在MacOS上分割隧道
首先,请咨询您的VPN提供商,以了解他们的应用程序是否包含内置的拆分隧道功能。虽然不太常见,但某些提供商(如ExpressVPN)确实提供基于应用程序的拆分隧道。随着 每个应用的连接 ExpressVPN的Mac应用程序中的功能,您可以创建应用黑名单或白名单以通过VPN进行路由.
如果您的VPN应用没有内置的对拆分隧道的支持,我们将不得不动手,以手动方式进行操作.
您需要超级用户管理权限和现有的L2TP或PPTP连接,以及VPN专用空间的目标子网.
- 去 系统偏好设定 > 网络
- 在左侧边栏中,单击您的VPN连接,然后转到 高级设置 > 选件
- 取消选中该框 通过VPN连接发送所有流量
- 保存您的更改并连接到VPN
- 连接后,转到 应用 > 实用工具 > 终奌站
- 类型 ifconfig 进入终端,然后按Enter。记下VPN使用的接口。使用L2TP,这可能是 ppp0
- 以root身份登录。一种简单的方法是键入 苏多苏 进入终端并使用您的Mac密码进行身份验证.
- 输入以下命令,替换 >目的地子网< 与您要通过VPN路由的子网,以及 >VPN接口< 使用上一步中列出的接口。route add -net >目的地子网< -接口 >VPN接口<
也可以看看: 我们推荐的Mac VPN提供商列表.
如何在Windows上分割隧道
Windows在拆分隧道方面相当有限。我们无法识别按应用或目标划分隧道的方式。取而代之的是Windows中的分割隧道选项。您可以选择不通过隧道传输IPv4和IPv6流量,以便仅本地流量通过VPN。如果仅需要使用VPN来访问普通Internet连接中不可用的远程资源,那么这很有用,.
此外,Windows仅拆分其内置支持的隧道VPN协议。这意味着您需要先配置L2TP,SSTP或PPTP连接。 OpenVPN在这里不起作用.
本示例将使用本地连接访问Internet,而VPN将用于访问远程资源,例如只能通过VPN访问的私有企业服务器。仅当主机在本地网络上不可用时才使用VPN.
在本教程中,将使用Windows10。我们假设您已经建立了VPN连接,并且只需要启用拆分隧道即可。您需要管理员特权和VPN专用空间的目标子网.
- 在Windows搜索栏中,键入 电源外壳 右键单击以 以管理员身份运行
- 类型 获取VPN连接 然后按Enter调出所有可用VPN连接的列表。 (我测试了很多VPN,所以我的屏幕快照中有多个,但您可能只有一个。) 名称 要拆分隧道的VPN的数量.
- 键入以下命令,然后按Enter键,替换为 >VPN名称< 使用您在上一步中记下的名称:Set-VPNConnection -Name“>VPN名称<” -SplitTunneling $ True
您可以通过输入以下命令来检查是否已启用拆分隧道 获取VPN连接 再次命令。拆分隧道字段现在应设置为True.
接下来,输入此命令并记下 描述 领域:
ipconfig /全部
如有必要,添加路线。更换 >目的地子网< 与您要通过VPN路由的子网,以及 >接口< 带有我们在上一步中提到的Description字段的名称:
netsh接口ipv4添加路由 >目的地子网< ">接口名称<"
如果要禁用拆分隧道,请输入以下命令:
Set-VPNConnection-名称 ">VPN名称<" -SplitTunneling $ False
在Windows上使用您自己的OpenVPN服务器拆分隧道
如果您已经创建了自己的OpenVPN服务器(类似于本教程中使用Amazon EC2的服务器),则可以通过编辑配置文件在Windows上启用拆分隧道.
去掉 重定向网关def1 在您的OpenVPN服务器配置文件中(可能称为server.conf)。在客户端配置(client.ovpn或client.conf)中,添加以下行:
路由12.12.12.0 255.255.255.0 vpn_gateway
这将通过VPN连接路由12.12.12.0子网,其他所有路由都通过非VPN连接进行.
也可以看看: 适用于Windows 10用户的最佳VPN.
如何在DD-WRT路由器上分割隧道
在DD-WRT路由器上设置OpenVPN和拆分隧道是一项繁琐而棘手的工作,因此,如果您想使用路由器路由,建议您购买以下内容的订阅: ExpressVPN. 这样,您可以安装ExpressVPN自定义路由器固件,或购买预先安装了固件的路由器。比手动设置一切容易得多.
在DD-WRT路由器上分割隧道的最佳VPN:ExpressVPN是我们的选择。该VPN易于使用的简易应用程序和路由器软件引领了这一潮流。它拥有庞大的服务器网络,该网络针对高速连接进行了优化。很难在隐私和安全性上胜过。适用于所有主要的流媒体服务。有30天的毫无疑问的退款保证,因此您可以尝试无风险.
如果您想省下几块钱并且用辛苦的方式做事,我们假设您已经在DD-WRT中建立了VPN连接,并且可以正常使用。 DD-WRT允许您以几种不同方式拆分隧道VPN流量:
- 通过设备,称为“基于策略的路由”
- 通过目标IP地址,称为“ IP路由”
- 通过应用程序或端口
基于策略的路由
在DD-WRT仪表板中,转到 服务 > 虚拟专用网. 找到基于策略的路由框,然后为要通过VPN的每个设备输入IP地址。就那么简单!
如果您不确定设备的IP地址,可以通过以下方法找到它们: 路由器状态 DD-WRT仪表板的页面。在下面 网络 部分,找到 活动IP连接. 点击旁边的数字以启动 活动IP连接表. 在这里,您可以查看路由器上所有传入和传出连接的IP地址,以及协议和端口号.
基于端口的路由
如果要指定哪些程序或应用程序使用VPN,一种方法是按端口拆分隧道。每个应用程序可能使用不同的端口,例如,Web浏览器使用TCP端口80和443,Spotify使用TCP端口4070,Steam使用UDP端口27000至27030。因此,通过指定路由VPN流量通过的特定端口,我们可以拆分隧道按应用.
不幸的是,这比在DD-WRT上听起来更困难。您需要熟悉IPTables,它可以控制固件中的Linux防火墙规则。作为示例,您可能会发现本教程很有用.
去 管理 > 指令. 下 防火墙功能 点击 编辑 并输入必要的命令。然后转到DD-WRT中的OpenVPN客户端配置并找到 附加配置 框以修改您的OpenVPN配置.
目的IP路由
如果您想按目的地(即网站或其他类型的服务器)隧道传输流量,则IP路由可能会成功.
在DD-WRT中转到您的OpenVPN客户端配置,然后找到 附加配置 框。输入以下内容:
无路线
路线XXX.XXX.XXX.XXX 255.255.255.255 net_gateway
路线YYY.YYY.YYY.YYY 255.ZZZ.ZZZ.0 vpn_gateway
用您在下面输入的相同地址替换X 服务器IP OpenVPN配置的字段。将Y替换为要将VPN流量路由到的服务器的IP地址,并将Z替换为适当的子网(后者通常为255.255.255.0).
请注意,如果您要将所有VPN流量路由到特定网站,则需要为该网站使用的所有服务器添加IP地址和子网。例如,Netflix使用几十个IP,并且它们可以随时更改,因此您需要查找Netflix IP的最新列表并定期更新此配置。.
如何在Tomato路由器上分割隧道
Tomato并没有像DD-WRT那样嵌入基于策略的路由,因此您非常难以使用IPTables完成工作。在Tomato仪表板上,已经建立了OpenVPN连接并可以正常工作,这是如何启用选择性路由的示例。.
去 管理 > 剧本 > 防火墙功能 并添加以下命令:
iptables -I FORWARD -i br0 -o tun11 -j接受
iptables -I FORWARD -i tun11 -o br0 -j接受
iptables -I输入-i tun11 -j拒绝
iptables -t nat -A写信-o tun11 -j伪装
单击“ WAN Up”选项卡并添加以下命令,以替换 >源IP地址< 与您要通过VPN路由的设备的本地IP:
睡30
ip路由刷新表200
ip路由刷新缓存
ip规则添加自 >源IP地址< 查找200
VPN_GW =`ifconfig tun11 | awk’/ inet addr / {split($ 2,A,":");打印A [2]}’`
IP路由添加表200默认通过$ VPN_GW dev tun11
在左侧边栏中,转到 VPN隧道 > OpenVPN客户端. 在您的OpenVPN客户端配置中,转到 高级. 下 自定义配置, 添加以下命令:
无路线
Paulio Geordio的Tunnel Split根据CC BY 2.0许可
墙。如果您不熟悉IPTables,我们建议您不要尝试此方法,因为错误的配置可能会导致安全隐患.
目的IP路由
基于目的IP地址的拆分隧道是最复杂的类型,因为它需要有状态的路由器或防火墙。如果您的路由器不支持此功能,则无法使用此方法.
如何在Tomato路由器上分割隧道
Tomato路由器与DD-WRT路由器类似,但是它提供了更多的拆分隧道选项。如果您想使用路由器路由,我们建议您购买以下内容的订阅: ExpressVPN. 这样,您可以安装ExpressVPN自定义路由器固件,或购买预先安装了固件的路由器。比手动设置一切容易得多.
在Tomato路由器上分割隧道的最佳VPN:ExpressVPN是我们的选择。该VPN易于使用的简易应用程序和路由器软件引领了这一潮流。它拥有庞大的服务器网络,该网络针对高速连接进行了优化。很难在隐私和安全性上胜过。适用于所有主要的流媒体服务。有30天的毫无疑问的退款保证,因此您可以尝试无风险.
如果您想省下几块钱并且用辛苦的方式做事,我们假设您已经在Tomato中建立了VPN连接,并且可以正常使用。 Tomato路由器提供了三种拆分隧道选项:
基于策略的路由
在Tomato路由器的Web界面中,转到 VPN隧道设置. 找到 基于策略的路由 框,然后