答案1
您表示您正在使用“代理 VPN”(这根本不是 VPN)。使用代理时,名称解析不会在您的 PC 上进行,而是在代理上进行。您无法更改此设置。
HTTP 代理接收类似GET http://www.example.com/some/document.html
或的请求CONNECT www.example.com:443
(访问 HTTPS 站点时)。
答案2
真正的 VPN 或虚拟专用网络会创建一个虚拟网络接口适配器,这是一个在互联网上运行的较小的“专用”网络。虚拟网络接口具有 IP 地址、子网掩码、网关和 DNS 设置,就像真正的网络接口一样。由于 VPN 使用虚拟接口,并且不会从本质上改变您的设备使用 DNS 或任何其他网络服务的方式,因此它也不会绕过设备的 hosts 文件,而该文件是设备网络堆栈的基本组成部分。
HTTP(S) 代理没有虚拟网络接口,也没有虚拟专用网络。当您的浏览器配置为使用 HTTP(S) 代理时,浏览器会向代理服务器发出请求,而不是直接实际连接到请求的 Web 服务器。
根据代理的类型,名称解析的处理方式不同。SOCKS4 代理(本地解析)与 SOCKS5 代理(远程解析)之间存在差异。SOCKS 代理和 HTTP(S) 代理虽然是两种不同的东西,但都是代理类型。
VPN 和代理之间的主要区别在于 VPN 在网络第 3 层工作,而 HTTP(S) 代理在应用程序第 7 层工作。DNS 本身也在应用程序层工作,因此当使用能够将名称解析转发到远端的代理时,DNS 作为一种协议(包括您的 hosts 文件)甚至根本无法访问。由于 VPN 在第 3 层工作,因此 DNS、HTTP(S)、POP3、FTP、SSH 和所有其他应用程序都可以照常在其上运行,并且您的 hosts 文件也可以按预期工作。代理有几种类型,根据其设计层和特定用途,可以采用不同的方法来执行名称解析。
因此,您使用的 Psiphon 免费 VPN 是一个 SOCKS5 代理,无需使用 hosts 文件即可进行远程解析。