PureRef 从 Pinterest 拖图失败:Proxy connection refused 的定位与修复
问题现象
今天遇到一个很典型但容易误判的问题:从 Google Images 可以直接把图片拖进 PureRef,但从 Pinterest 拖图到 PureRef 时失败,PureRef 弹出错误:
1 | Failed opening images. |
一开始看起来像是 Pinterest 没有走代理,或者 PureRef 不支持 Pinterest 的拖拽链接。但实际排查后发现,根因不是 Pinterest 规则缺失,而是 v2rayN 的系统 PAC 指向了一个没有监听的本地代理端口。
关键区别:浏览器能打开,不代表 PureRef 能下载
浏览器访问 Pinterest 正常,只能说明浏览器的代理链路是通的。PureRef 的拖拽逻辑不一定复用浏览器已经加载好的图片数据。
从 Pinterest 拖图时,PureRef 很可能拿到的是图片 URL,例如:
1 | https://i.pinimg.com/...jpg |
然后 PureRef 自己再去下载这张图。这个下载过程会走 Windows 系统代理。如果系统代理配置不一致,就会出现浏览器正常、PureRef 失败的情况。
排查过程
先检查 v2rayN 的 PAC 内容,发现里面确实包含 Pinterest 相关域名:
1 | pinimg.com |
所以问题不是 Pinterest 没进代理规则。
接着检查 Windows 代理状态,发现系统使用的是 PAC:
1 | AutoConfigURL : http://127.0.0.1:10811/pac |
继续查看 PAC 内容,发现它返回的是:
1 | var proxy = 'PROXY 127.0.0.1:10808;DIRECT;'; |
也就是说,命中代理规则后,应用会去连:
1 | 127.0.0.1:10808 |
但实际端口检测结果是:
1 | 10808 未监听 |
于是就解释得通了:PureRef 根据 PAC 去连 127.0.0.1:10808,但这个端口没有任何程序在监听,所以报:
1 | Proxy connection refused |
验证
用同一张 Pinterest 图片分别测试代理端口:
1 | http://127.0.0.1:10808 曾经失败:Could not connect |
这说明 Pinterest 图片本身可以通过代理访问,失败点在本地代理端口配置。后续同步正常机器配置后,10808 恢复监听,PAC 链路也就恢复正常。
解决方法
更稳妥、也更接近 v2rayN 默认逻辑的修复方式,不是手动把 Windows 代理改到某个随机端口,而是让 v2rayN 的 PAC 返回端口和实际监听端口重新一致。
同步另一台正常机器的 v2rayN 配置后,本机状态变为:
1 | ProxyEnable : 0 |
PAC 内容仍然返回:
1 | var proxy = 'PROXY 127.0.0.1:10808;DIRECT;'; |
区别在于,这次 10808 已经由 xray.exe 正常监听:
1 | 10808 xray.exe 本地代理端口 |
也就是说,正确链路应该是:
1 | PureRef -> Windows PAC(10811) -> PAC 返回 PROXY 127.0.0.1:10808 -> xray.exe -> 代理节点 -> i.pinimg.com |
这里要特别注意:10811 只是 PAC 脚本服务端口,应用真正下载图片时连接的是 PAC 脚本返回的 10808。
因此长期修复思路是:保持 v2rayN 的系统代理模式为 PAC,并确保 10808 这个本地代理端口由 xray 正常监听。如果遇到 PAC 指向 10808 但 10808 没有监听,可以优先尝试同步/恢复 v2rayN 默认配置、重启 v2rayN,或重新应用系统代理,而不是长期手动绑定到某个随机生成端口。
为什么 Google Images 可以,Pinterest 不行?
Google Images 拖入 PureRef 时,有时拖过去的是浏览器已经拿到的图片数据,或者是更容易直接访问的图片地址,所以不一定触发 PureRef 重新通过系统代理下载。
Pinterest 的图片资源通常在 i.pinimg.com,拖拽时更容易变成“PureRef 自己下载这个 URL”。一旦 PureRef 的系统代理链路有问题,就会失败。
关于几秒缓冲
修复后拖图前仍然会有几秒缓冲,这是正常现象的一部分。因为从 Pinterest 拖图到 PureRef 的过程通常包含:
- PureRef 从拖拽数据里解析图片 URL
- 通过系统代理连接
i.pinimg.com - 建立 TLS 连接并下载图片
- 写入 PureRef 场景
实测单张 Pinterest 图片通过当前代理下载耗时大约在 0.7s ~ 1.0s。如果实际拖拽体感更慢,额外时间大概率来自 Pinterest 页面拖拽数据解析、PureRef UI 导入处理,或当前代理节点链路波动。
可以优化的方向:
- 使用延迟更低的代理节点
- 保持 PAC 指向的
10808端口真实可用 - 保持 PureRef 启动后读取到正确代理配置
- 如果只是临时收集参考图,右键复制图片后在 PureRef 中
Ctrl + V有时比直接拖拽更稳定
小结
这次问题的根因不是 Pinterest 需要直连,也不是缺少 pinimg.com 规则,而是:
v2rayN 的 PAC 返回了
127.0.0.1:10808,但当时10808没有实际监听。
临时把系统代理指向随机可用端口可以验证问题,但不适合作为长期方案。更正确的修复是恢复 v2rayN 的默认 PAC 链路:10811 负责提供 PAC,PAC 返回的 10808 由 xray.exe 正常监听。
排查这类问题时,不要只看“浏览器能不能打开网站”,而要单独验证目标应用实际使用的系统代理端口是否可连接。