如何仅将浏览器流量传递给 openvpn 连接

如何仅将浏览器流量传递给 openvpn 连接

我已成功建立 openvpn 连接。通过使用参数

redirect-gateway def1
dhcp-option DNS 10.8.0.1

所有流量都将通过 VPN,但我只希望特定应用程序(如浏览器(例如 Firefox))使用 openvpn 连接。所有其他流量都应通过常规网关。

我可以使用 socks/proxy 设置以某种方式将其指向 openvpn 链接吗?也许我可以使用 putty 来创建此链接?如果可以,该怎么做?

顺便说一句,这是在 Windows 操作系统上。

答案1

我遇到了这个问题,但找不到一个易于使用的解决方案。基本上,方法仍然是在 VPN 服务器中设置 SOCKS 服务器。我制作了这个 Docker 映像,使其真正可用

https://hub.docker.com/r/kizzx2/openvpn-client-socks/

启动它,然后将浏览器设置为使用 SOCKS 代理local.docker:1081

即使没有内置代理配置,大多数应用程序也可以强制执行此操作。请参阅代理链

答案2

是的,您可以使用 SOCKS 代理(或常规代理),只需确保到该代理的流量通过 VPN 即可。[当然,如果您使用 SSH,VPN 是多余的]。您可能希望删除“redirect-gateway def1”语句,可能将其完全删除或用“redirect-private”替换。

您需要注意,如果您的名称服务器不在 VPN 的另一端,DNS 流量可能会泄漏到您现有的网络中。

可以使用 Putty 来创建袜子连接。

Unix 方式(显然也适用于 Putty)- 从命令行

putty -D 8080 用户名@远程主机

(其中 8080 是 SOCKS 端口)

Windows 方式:从http://vectrosecurity.com/content/view/67/26/(如果该网站消失,请在此重复)

  1. 打开 PuTTY。
  2. 其中显示“主机名(或 IP 地址)”并且其下方有一个框,在框中输入您的 SSH 主机的名称。
  3. 在“已保存的会话”下输入此连接的名称,以便您以后记住它。例如,您可以将其命名为“SSH 代理”,这样您就知道这将是代理连接。
  4. 在左侧的“类别:”菜单中,如果“连接”菜单列表尚未展开,请展开它。如果“SSH”菜单列表尚未展开,请展开它。单击“隧道”(在“SSH”下方)。这将打开选项,您将在其中输入 PuTTY 的设置以创建隧道。
  5. 在“添加新转发端口:”下输入 9853
  6. 将“目的地”字段留空,但一定要选择其下方的“动态”选项。
  7. 单击‘添加’按钮添加此端口。
  8. 在左侧的“类别:”菜单中,单击“连接”。
  9. 在“保持连接间隔秒数(0 表示关闭)”框中输入 5。这样即使您离开计算机一段时间,您的连接仍会保持活动状态,并防止超时。
  10. 在左侧的“类别:”菜单中,单击最顶部的“会话”返回第一个屏幕。
  11. 单击“保存”按钮保存您刚刚输入的所有设置。以后您无需再次输入这些设置,每次想要连接到代理时,只需加载您保存的配置文件(打开 PuTTY 后双击即可)。
  12. 单击“打开”按钮打开与代理的连接。
  13. 连接后,系统会要求您输入用户名和密码。输入您帐户的用户名和密码。连接后,隧道将打开。使用完隧道后,输入 logout 并按 Enter。

答案3

如果您确实特别要求支持代理服务器的应用程序,那么答案很简单:使用代理服务器!

必须配置您的 VPN 连接,使其不会修改客户端的默认网关。这样,所有流量都会使用常规路由到达互联网。

我假设您的 VPN 连接使用10.20.30.0/24子网,作为10.20.30.1服务器的 IP 地址。

在 VPN 服务器上配置代理(squid,或者更轻量级的代理),并将其设置为监听 上的客户端10.20.30.1。将浏览器(或其他任何程序)指向 上的代理10.20.30.1。到此 IP 地址的流量将始终通过您的 VPN 连接路由。

相关内容