如何使用 HTTP-PROXY 进行 NSLOOKUP 或 DNS 解析?

如何使用 HTTP-PROXY 进行 NSLOOKUP 或 DNS 解析?

我有一个运行良好的 HTTP 代理 URL,现在我想使用该特定代理服务器解析某个域名的 IP 地址。我不确定这是否可行。有人能给我指明正确的方向吗?

用例:实际上,我知道一个域名使用该特定 HTTP-PROXY 提供输出,但当我尝试直接在计算机上打开它时,该域名甚至无法解析。因此,我想知道当通过 HTTP-PROXY 服务器查询时,该域名解析到哪个特定 IP

答案1

使用普通 DNS 是无法实现这一点的,但最近有一个标准通过 HTTPS 进行 DNS这几乎可以解决这个问题。

我说几乎是因为 DNS 解析实际上不会在代理服务器上进行,但你可以使用代理服务器通过 HTTPS 服务器访问其中一个公共 DNS(例如 8.8.8.8 [https://dns.google.com/experimental]对于 Google 或 1.1.1.1 [https://cloudflare-dns.com/dns-query]对于 Cloudflare,或者你可以使用我的代码运行你自己的https://www.hardill.me.uk/wordpress/2018/04/14/dns-over-https/

例如

curl -H "Content-Type: application/dns-json" "https://dns.google.com/resolve?name=www.google.com&type=A"

给出如下答案:

{
  "Status": 0,
  "TC": false,
  "RD": true,
  "RA": true,
  "AD": false,
  "CD": false,
  "Question":[ 
    {
      "name": "www.google.com.",
      "type": 1
    }
  ],
  "Answer":[ 
    {
      "name": "www.google.com.",
      "type": 1,
      "TTL": 134,
      "data": "216.58.210.36"
    }
  ]
}

然后,您需要配置 curl(或任何用户代理)以使用代理发出请求,例如

export HTTPS_PROXY=http://proxy.server.com:8080
curl -H "Content-Type: application/dns-json" "https://dns.google.com/resolve?name=www.google.com&type=A"

两个都铬合金火狐可以配置为进行 DNS 解析,在最新版本中使用 DNS over HTTPS

相关内容