部分代理会在浏览器的第一个请求上失败,而 Chromium 又不直接支持 SOCKS5 用户名和密码鉴权。本文解释这两类情况,以及内置 relay 如何处理它们。
浏览器会通过 CONNECT 请求建立 HTTP 代理隧道,并通常附带 Host。部分代理服务器收到该标头后既不完成连接,也不主动断开,标签页会一直加载。表面上像是代理失效,实际上 curl 通过它则可以正常工作。
内置 relay 位于 Chromium 与代理之间,会把请求改写成服务器能够接受的形式。Chromium 通过本地普通 HTTP 与 relay 通信;relay 向外发送请求时会去掉有问题的标头。
Chromium 只支持无需用户名和密码的 SOCKS5,因为相应的代理鉴权路径尚未实现。以下格式的代理 socks5://user:pass@host:1080 无法直接用于任何基于该引擎的浏览器。
relay 会在本地开启一个无需凭据的端点,自行向外部代理完成鉴权,并将用户名与密码隔离在 Chromium 之外。浏览器得到的地址是 127.0.0.1,而 relay 会与外部代理建立完整的鉴权会话:
NimbusX 会在启动配置文件前检查代理的国家、城市和时区。若代理位置与配置文件冲突,启动会停止,并明确说明哪些值不一致。
America/New_York ,却搭配欧洲 IP,因此 iphey 正确返回 Unreliable。现在,NimbusX 会在检测前确定位置,使新建配置文件从一开始就保持参数一致。代理由自己连接,具有以下三种类型中的任意一种:HTTP、HTTPS、SOCKS5(具有授权)。适配器会自行打开,不需要配置。所分析的竞争对手都没有修复挂在主机标头上的代理:此类代理根本不适合他们。