如何通过 VPN 转发特定流量?

如何通过 VPN 转发特定流量?

在我们开始之前,我必须承认自己在网络世界中还是一名新手。谢谢。

我想要通过我的 VPN、本地机器或 WSL 发送特定流量。

即通过/与 google.com 相关的流量将通过 VPN(本地机器等),但 amazon.com 仍然不会以任何正常方式被 VPN 覆盖。

我还没有找到任何资料描述、展示或询问如何分配特定 IP 或地址以重定向到 VPN。也许它们无处不在,而我只是错过了它们,或者我不知道如何正确地请求它,或者也许它是如此基本的东西,我错过了它。

我以为我可能已经能够找到某些网站地址尝试访问的具体端口,但如果我理解正确的话,端口更像是高速公路,允许多条车道的交通流动,所以我会重新路由整个网络,而不是单个站点/地址。也许我想得太多了,或者做错了。

我还检查了 Mozilla 和 ProtonVPN 中的设置,但没有看到任何我想要的东西,不过,我可能已经发现了它,却不知道我正在查看它。ProtonVPN 允许我选择自定义端口,但不允许选择特定的站点/地址,而 Mozilla 则提供设置手动代理,这似乎接近我想要的,但似乎更侧重于代理除少数几个站点之外的所有站点;我想要的是相反的。

**OS:** Windows 10  
**WSL:** Pengwin  
**VPN:** ProtonVPN  
**Browser:** Firefox Developers Edition

(I don't know if any of that is important here, but there it is)

答案1

如果你可以在 vmware 或其他什么地方使用 Linux,你可以轻松使用代理链来满足你的需求。我们没有很多关于如何在 Windows 上使用代理链的文章,但是嘿……Windows 现在有 ubuntu 终端,你可以使用适用于 Windows 的 Linux 子系统然后你可以使用代理链

这可能不是最优的解决方案,但是可以做到。

答案2

您需要确定 VPN 的网关地址,然后添加路由以将目的地的流量路由到该网关。如果您了解基本的 TCP/IP 路由,那么这并不太复杂:

https://www.howtogeek.com/howto/windows/adding-a-tcpip-route-to-the-windows-routing-table/

路由表规定了所有数据包离开系统(无论该系统是物理路由器还是 PC)后去往何处。大多数路由器(包括内置在 Windows PC 中的路由器)都使用某种形式的动态路由,路由器能够根据从其他路由器获得的信息选择转发数据包的最佳位置。如果您使用 traceroute 命令观察数据包到达最终目的地时建立的连接,就可以看到它的工作原理。

这里的秘密在于默认网关。如果您使用本地默认网关,您的互联网流量将被路由到本地连接。如果您使用 VPN 网关,互联网流量将通过 VPN 连接。默认情况下,Windows VPN 连接使用远程 VPN 网关作为您的特定目的地。

您需要找到远程 VPN 连接的网关 IP 地址,并将其设为要通过 VPN 路由的目标 IP 的网关。为此,请参阅 https://superuser.com/questions/12022/how-can-i-make-the-windows-vpn-route-selective-traffic-by-destination-network

检查 OpenVPN 配置文件以查看 VPN 网关 IP,或检查连接到 VPN 时的日志输出。在 Linux 上,我使用以下指南进行设置,以便所有目的地都转到 VPN。请参阅https://sweetcode.io/routing-all-traffic-through-a-vpn-gateway-on-linux/

相关内容