【问题标题】:WebExtension proxy API: Resolve DNS entries on SOCKS5 proxy (not on the local system)WebExtension 代理 API:解析 SOCKS5 代理上的 DNS 条目(不在本地系统上)
【发布时间】:2017-08-21 10:43:34
【问题描述】:

使用 SOCKS 5 时,Firefox 中的 WebExtension proxy API 是否支持解析代理服务器上的 DNS?

在 WebExtensions 中不再可用的 nsIProtocolProxyService API 中,这是可能的。您可以将标志 Components.interfaces.nsIProxyInfo.TRANSPARENT_PROXY_RESOLVES_HOST 传递给 nsIProtocolProxyService.newProxyInfo

如果代理要自己执行名称解析,则设置此标志。如果是这种情况,则以某种方式使用主机名,我们不应该自己进行任何形式的 DNS 查找

WebExtensions 的新代理 API 中是否有一些等效选项?

【问题讨论】:

    标签: proxy dns firefox-addon-webextensions socks


    【解决方案1】:

    现在可以将 WebExtension API 用于proxy DNS requests。由于 Bug 1381290 已在 Nightly 中出现,因此代理脚本可以返回对象数组而不是字符串。在提案中,对象具有以下属性:

    • |类型| -- 字符串,"http"|"https|"socks5"|"socks4"|"socks"|"direct"|"ignore"| 之一。注意 “袜子”是 socks5 的同义词。 “忽略”意味着 Firefox 应该处理 此 URI 通过其全局代理设置(可能是 wpad、pac、 system、direct/none 或代理服务器)或其他已安装的插件。
    • |主机| -- 字符串
    • |端口| -- 1 到 65536 之间的整数(TCP/IP 不允许超出该范围的端口)
    • |用户名| -- 可选字符串
    • |密码| -- 可选字符串
    • |代理DNS| -- 可选布尔值。默认假。如果为 true,则 TRANSPARENT_PROXY_RESOLVES_HOST 设置为 nsIProxyInfo.flags 上的标志 以便使用代理服务器来解析某些 DNS 查询。
    • |故障转移超时| -- 可选整数。默认 1. 超时并尝试故障转移数组中的下一个代理之前的秒数
    • |故障转移| -- 具有这些相同属性的可选对象数组。 null 终止。默认 null (无故障转移,这是所需的 根据我的经验,有 99% 的情况发生)。

    例如:

    {
      type: "socks",
      host: "foo.com",
      port: 1080,
      proxyDNS: true,
      failoverTimeout: 1,
      failover: {
        type: "socks",
        host: "bar.com",
        port: 1080,
        proxyDNS: true,
        failoverTimeout: 0,
        failover: null
      }
    }
    

    但在实际的补丁中,我看不到该数组中的“故障转移”选项:

    +    for (let prop of ["type", "host", "port", "username", "password", "proxyDNS", "failoverTimeout"]) {
    +      this[prop](proxyData);
    +    }
    

    “故障转移”服务器似乎是这样定义的:

    +    let failoverProxy = proxyDataList.length > 0 ? this.createProxyInfoFromData(proxyDataList, defaultProxyInfo) : defaultProxyInfo;
    

    相关信息:

    【讨论】:

      猜你喜欢
      • 2019-05-01
      • 2015-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多