Firefox WebExtension 的 ProxyInfo 自 Firefox 64 起支持 SOCKS 用户名和密码字段。这些字段属于扩展接口,而不属于手动代理对话框。

对于已有代理及匹配主机权限的扩展:

browser.proxy.onRequest.addListener(() => ({
  type: 'socks',
  host: 'proxy.example',
  port: 1080,
  username: proxyUser,
  password: proxyPassword,
  proxyDNS: true,
}), {urls: ['<all_urls>']});

通过扩展的凭据处理提供 proxyUser 和 proxyPassword。type: socks 表示 SOCKS5;socks4 不提供相同的密码认证。

proxyDNS: true 明确把目标名称解析交给代理。ProxyInfo 参考文档说明默认值为 false;显式设置该字段可避免依赖该默认值。

这些用户名和密码字段用于 SOCKS 认证。proxyAuthorizationHeader 则用于 HTTP 系列代理。

SOCKS5 服务器必须支持并接受该账户。这种用户名和密码交换不会加密传输;目标 HTTPS 仍保留其独立的 TLS 验证。SOCKS5 会加密流量吗。

相关文章