NimbusX
00
› 页面已加载
← 博客
代理28.07.20266分钟

会让浏览器卡住的代理

部分代理会在浏览器的第一个请求上失败,而 Chromium 又不直接支持 SOCKS5 用户名和密码鉴权。本文解释这两类情况,以及内置 relay 如何处理它们。

01情况一:CONNECT 携带 Host 标头

浏览器会通过 CONNECT 请求建立 HTTP 代理隧道,并通常附带 Host。部分代理服务器收到该标头后既不完成连接,也不主动断开,标签页会一直加载。表面上像是代理失效,实际上 curl 通过它则可以正常工作。

内置 relay 位于 Chromium 与代理之间,会把请求改写成服务器能够接受的形式。Chromium 通过本地普通 HTTP 与 relay 通信;relay 向外发送请求时会去掉有问题的标头。

02情况二:带鉴权的 SOCKS5

Chromium 只支持无需用户名和密码的 SOCKS5,因为相应的代理鉴权路径尚未实现。以下格式的代理 socks5://user:pass@host:1080 无法直接用于任何基于该引擎的浏览器。

relay 会在本地开启一个无需凭据的端点,自行向外部代理完成鉴权,并将用户名与密码隔离在 Chromium 之外。浏览器得到的地址是 127.0.0.1,而 relay 会与外部代理建立完整的鉴权会话:

$ python -m app.cli proxy add --url socks5://user:pass@host:1080 --check ✓ relay up · CONNECT fixed · 127.0.0.1:1080 $ curl --proxy socks5://127.0.0.1:1080 https://iphey.com ✓ verdict: trustworthy

03启动前先核对位置

NimbusX 会在启动配置文件前检查代理的国家、城市和时区。若代理位置与配置文件冲突,启动会停止,并明确说明哪些值不一致。

为什么这项检查很重要。 柏林时区的配置文件若使用圣保罗代理,就会产生反欺诈系统很容易发现的矛盾。我们的检测系统也曾暴露同类问题:测试配置文件在没有代理的情况下创建,因此得到时区 America/New_York ,却搭配欧洲 IP,因此 iphey 正确返回 Unreliable。现在,NimbusX 会在检测前确定位置,使新建配置文件从一开始就保持参数一致。

04三种代理,一个 relay

代理由自己连接,具有以下三种类型中的任意一种:HTTP、HTTPS、SOCKS5(具有授权)。适配器会自行打开,不需要配置。所分析的竞争对手都没有修复挂在主机标头上的代理:此类代理根本不适合他们。

05了解更多

公开检测揭示了什么 · 用代码和 AI 工具管理配置

下载NimbusX技术问题: @Get_NimbusX_Bot