如果你转到chrome://browser/content/preferences/connection.xul
,在底部,它显示[ ] Use proxy to perform DNS queries (SOCKS v5 only)
。默认情况下未选中。事实上,多年来我一直在 Firefox(过去)和现在的 Pale Moon 中使用代理,但我从未注意到此选项的存在。
这是否真的意味着它一直在绕过我为每次 DNS 查找指定的代理,而是直接使用我的主连接进行查找,只是因为我没有主动选中(甚至没有注意到)该框?
如果是这样,为什么默认情况下不选中它?谁会想使用代理但不想让 DNS 查询通过它呢?
答案1
这是否真的意味着它一直在绕过我为每次 DNS 查找指定的代理,而是直接使用我的主连接进行查找,只是因为我没有主动选中(甚至没有注意到)该框?
是的。
谁会想使用代理但又不想让 DNS 查询经过它呢?
出于隐私之外的其他原因使用代理的人,例如想要根据其本地 /etc/hosts 名称访问远程服务器的开发人员,或希望其本地配置的“域搜索后缀”得到尊重的企业用户。
总体而言,与 VPN 一样,代理服务器的最初目的与隐私或信息隐藏——它们用于身份验证和过滤(在 HTTP 代理的情况下,缓存和更多缓存),例如使用公司 SOCKS 网关在家工作时访问内部服务,或使用本地 HTTP 缓存代理,这样整个校园就不需要通过慢速无线电链路 100 次获取完全相同的网站资产。(使用 HTTP 代理,域名由代理解析,但这不是我要说的重点。)
不可否认的是,Mozilla 代理设置页面并没有跟上时代的步伐,尤其是当 SOCKS 的使用主要转向成为 Tor 的接口时。
(如果我没记错的话,Mozilla 甚至早就有能力将主机名发送到 SOCKS v5 代理前此复选框已添加,但只能在about:config
很长一段时间内可见。)
但 SOCKS 协议肯定能够传达其运行的版本?这样,如果检测到 v5,它就能自动启用这一至关重要的隐私“功能”吗?
不,这就是为什么设置页面首先要求您在 SOCKS v4 和 v5 之间进行选择。同一台服务器可能同时支持这两种版本,但它无法告诉服务器使用哪个版本是支持的。
(实际上原来的SOCKS v4 严格处理 IPv4 地址,SOCKS“v4a”在第 5 版发布之前添加了使用 DNS 名称的功能。我认为 Mozilla 仅支持前者?)