使用 SOCKS 创建 VPN“终止开关”

使用 SOCKS 创建 VPN“终止开关”

我想要通过 VPN 路由特定应用程序(例如 Firefox 支持 SOCKS)的所有流量。我的 VPN 服务提供商提供了 SOCKS5 协议的配置设置(SOCKS 主机、端口)。如果我理解正确的话,SOCKS5“提供身份验证,以便只有授权用户才能访问服务器”,在本例中是我的 VPN 帐户,并且对于此目的是强制性的。

是否必须使用相关的 DNS 服务器(此 VPN 服务有自己的 DNS 服务器,但性能可能不高)或者此配置适用于任何 DNS 地址?当 VPN 连接断开时,我的互联网连接是否会断开,但 DNS 服务器仍可访问?反之亦然?

答案1

Web 浏览基于两种主要协议:DNS 和 HTTP(S)。

  • DNS 用于将域名(即superuser.com)转换为 IP 地址(即123.45.67.89)。
  • HTTP 实际上传输网页和其他数据。

当您连接到 时https://superuser.com/,您的计算机将首先询问 DNS 服务器 的 IP 是多少superuser.com。我们假设它回答123.45.67.89。然后您的计算机将请求123.45.67.89位于 的网页https://superuser.com/

问题是,123.45.67.89不知道您联系了哪个 DNS,或者是否联系了哪个 DNS。


当您使用 SOCKS 代理时,每次您的计算机想要与服务器通信时,它都会首先请求 SOCKS 服务器中继消息。SOCKS 先生会首先向 DNS 询问 的 IP superuser.com,然后询问123.45.67.89的页面https://superuser.com/

问题是,在家庭配置中,大多数情况下,默认 DNS 是您的互联网盒,它使用其当地的IP。这意味着您的 SOCKS 代理(位于您的本地网络之外)将无法联系它。您需要将您的 DNS 更改为外部 DNS,但您不需要专门使用 SOCKS 提供商提供的 DNS(您可以使用8.8.8.88.8.4.4Google 提供的免费 DNS)。


现在,SOCKS 服务器中继您的流量这一事实显然意味着,如果 SOCKS 关闭,您将无法访问互联网,除非您禁用代理设置。

最后一件事:您可能已经注意到我从未在此答案中使用过“VPN”。这是因为 SOCKS 不是 VPN 协议。

答案2

我无法评论,因此我在这里回答。

正如 Nathan 之前所说,SOCKS 和 VPN 是不同的东西。两者都可能有自己的身份验证,也可能没有(至少从 SOCKS5 开始)。SOCKS 用于代理第 7 层协议(例如软件协议),而 VPN 旨在通过加密虚拟网络电缆连接两个点(例如,它们正在通过隧道传输“网络”)。

您可能两者都有。您可以通过 vpn 使用 socks5 上的 http(s)。这在匿名服务中并不罕见。

DNS 服务需要将人类可读的名称转换为 IP 号码,同样,它可能通过 VPN 或 SOCKS 进行隧道传输,也可能不通过。大多数简单的 VPN 配置将通过 VPN 传输所有内容,DNS 流量也是如此。您的 DNS 查询是否通过 SOCKS 取决于客户端。例如,您可以通过在 about:config 下将 network.proxy.socks_remote_dns 设置为 true 来告诉 Firefox 使用 dns 而不是 socks。

如果您不通过 socks 传递 DNS 解析,则可以使用任何您想要的解析器,包括您的盒子解析器。

如果您使用此设置来实现匿名(为此我建议您将 TOR 添加到设置中),您可能不希望让 DNS 查询以标准方式进行,因为这些包(您遇到的站点名称)可能会追踪到您。

相关内容