2011-12-14 16:43:50 +0000 2011-12-14 16:43:50 +0000
162
162

怎样才能将查询引导到特定的DNS服务器?

我想向一个特定的DNS服务器发出查询,我知道它的IP地址。在Windows系统中,我可以做这样的操作:

C:\Documents and Settings\Anton Daneyko>nslookup superuser.com
Server: DNSs2.Uni-Marburg.DE
Address: 137.248.21.22

Non-authoritative answer:
Name: superuser.com
Address: 64.34.119.12

但这需要使用本地机器的DNS设置。相反,我想查询一个特定的DNS服务器来测试它是否对我的查询做出了正确的响应或完全没有响应。

答案 (8)

210
210
210
2011-12-14 16:54:16 +0000

对于基本的A和CNAME记录,你可以简单地进行

nslookup somewhere.com some.dns.server
Usage: 
   nslookup [-opt ...] # interactive mode using default server
   nslookup [-opt ...] - server # interactive mode using 'server'
   nslookup [-opt ...] host # just look up 'host' using default server
   nslookup [-opt ...] host server # just look up 'host' using 'server'

,或者如果你只是键入nslookup而不需要任何参数,你可以做更多的选项……

Commands: (identifiers are shown in uppercase, [] means optional)
NAME - print info about the host/domain NAME using default server
NAME1 NAME2 - as above, but use NAME2 as server
help or ? - print info on common commands
set OPTION - set an option
    all - print options, current server and host
    [no]debug - print debugging information
    [no]d2 - print exhaustive debugging information
    [no]defname - append domain name to each query
    [no]recurse - ask for recursive answer to query
    [no]search - use domain search list
    [no]vc - always use a virtual circuit
    domain=NAME - set default domain name to NAME
    srchlist=N1[/N2/.../N6] - set domain to N1 and search list to N1,N2, etc.
    root=NAME - set root server to NAME
    retry=X - set number of retries to X
    timeout=X - set initial time-out interval to X seconds
    type=X - set query type (ex. A,AAAA,A+AAAA,ANY,CNAME,MX,NS,PTR,SOA,SRV)
    querytype=X - same as type
    class=X - set query class (ex. IN (Internet), ANY)
    [no]msxfr - use MS fast zone transfer
    ixfrver=X - current version to use in IXFR transfer request
server NAME - set default server to NAME, using current default server
lserver NAME - set default server to NAME, using initial server
root - set current default server to the root
ls [opt] DOMAIN [> FILE] - list addresses in DOMAIN (optional: output to FILE)
    -a - list canonical names and aliases
    -d - list all records
    -t TYPE - list records of the given RFC record type (ex. A,CNAME,MX,NS,PTR etc.)
view FILE - sort an 'ls' output file and view it with pg
exit - exit the program
11
11
11
2011-12-14 16:50:55 +0000

刚刚挖了一下nslookup的选项,如果你调用nslookup,然后在nslookup的交互模式里面输入help,就可以显示出来了,然后在nslookup的交互模式里面输入&007,就给了我正确的答案:

C:\Documents and Settings\Anton Daneyko>nslookup help
Server: DNSs2.Uni-Marburg.DE
Address: 137.248.21.22

*** DNSs2.Uni-Marburg.DE can't find help: Non-existent domain

C:\Documents and Settings\Anton Daneyko>nslookup
Default Server: DNSs2.Uni-Marburg.DE
Address: 137.248.21.22

> stackoverflow.com 8.8.8.8
Server: [8.8.8.8]
Address: 8.8.8.8

Non-authoritative answer:
Name: stackoverflow.com
Address: 64.34.119.12
7
7
7
2015-09-22 13:20:36 +0000

是的,C:\Documents and Settings\Anton Daneyko>nslookup superuser.com 会查询你自己的DNS服务器来查找superuser.com的IP地址。如果你在命令行中添加了ip地址或其他DNS服务器的名字,它就会查询到superuser.com的ip地址。例如:

C:\Documents and Settings\Anton Daneyko>nslookup superuser.com 8.8.4.4
Server: google-public-dns-b.google.com
Address: 8.8.4.4

Non-authoritative answer:
Name: superuser.com
Addresses: 190.93.245.58
      190.93.246.58
      141.101.114.59
      190.93.247.58
      190.93.244.58

顺便说一下,8.8.8.4.4是Google DNS服务器的IP地址。都有一个从SOA传播的缓存副本。如果你想问权威服务器,首先要找出权威服务器的IP地址名称,用命令:

C:\Documents and Settings\Anton Daneyko>nslookup -type=ns superuser.com
Server: DNSs2.Uni-Marburg.DE
Address: 137.248.21.22

Non-authoritative answer:
superuser.com nameserver = cf-dns02.superuser.com
superuser.com nameserver = cf-dns01.superuser.com

cf-dns02.superuser.com internet address = 173.245.59.4
cf-dns02.superuser.com AAAA IPv6 address = 2400:cb00:2049:1::adf5:3b04
cf-dns01.superuser.com AAAA IPv6 address = 2400:cb00:2049:1::adf5:3a35
cf-dns01.superuser.com internet address = 173.245.58.53

这将从你的本地DNS服务器上返回一个非权威的答案,从Marburg Uni中,命名为superuser.com的所有权威服务器。然后你可以使用我们之前使用的命令来询问4个权威服务器中的任何一个,如下所示:

C:\Documents and Settings\Anton Daneyko>nslookup superuser.com 173.245.59.4
Server: cf-173-245-59-4.cloudflare.com
Address: 173.245.59.4

Name: superuser.com
Addresses: 141.101.114.59
      190.93.246.58
      190.93.245.58
      190.93.247.58
      190.93.244.58

正如你所看到的,这次权威SOA服务器返回了IP地址,因此你不会再看到 “非权威答案 "的注释了。这一点特别有用,当你创建了一个新的域名,或者更换了主机提供商,或者转到了不同的域名注册商,但是由于新的IP地址即使过了24小时也没有传播,所以无法访问你的网站。那么你可以先从SOA开始,验证你的IP地址是否是DNS服务器给的正确的IP地址,然后再顺着它往下走。好在检查谷歌的DNS服务器是否收到了更改,最后检查你的本地DNS服务器是否能将你的域名解析为正确的IP地址。

1
1
1
2017-09-24 20:07:36 +0000
用一条命令

从指定的DNS服务器上获取特定的记录类型 要查询默认的A和AAAAAA(和CNAME)记录以外的记录类型,使用你指定的DNS服务器

nslookup -q=<record type> <host> <DNS server>

,例如,使用DNS服务器stackexchange.com返回域名8.8.4.4的MX记录,命令是:

nslookup -q=MX stackexchange.com 8.8.4.4
1
1
1
2016-03-30 20:02:05 +0000

在下面这个例子中,我把我的默认DNS服务器(192.168.50.21)改成了一个新的DNS服务器(4.2.2.2.3)。地址:UnKnown

地址:192.168.50.21 server 4.2.2.2.2.3 默认服务器:c. resolvers.level3.net 地址:192.168.50.21 4.2.2.2.2.3

现在,我准备好了,可以对4.2.2.3和192.168.50.21进行查询了。

0
0
0
2018-10-05 09:42:11 +0000

我在Openwrt 18.06.1 ARMv6 Raspberry pi上工作,设置了tor dns以及dnscrypt-proxy,所以遇到了一个非常类似的问题。最根本的原因是本地的isp拦截到root-servers.net的不安全响应,响应说网站没有找到,然后重定向到自己的网站。虽然这并不是一个很大的安全漏洞,但我也不觉得它特别有用。

在查询特定地址时,首先要做的测试其实是尝试一个无效的地址,以确保你在使用服务器、端口和主机参数时得到一个正确的空响应,有很多指南和版本,很容易让人以为你在做端口测试,而实际上它是从缓存结果或默认服务器上回复的。得到空响应后,然后用活动的服务器地址和端口来工作。活动端口可以用netstat -plnt在openwrt上显示,但要注意的是,可能需要先安装一些路由器命令。我设置的 tor 服务的端口 9053 在这里没有显示,但在 torrc 文件中添加 DNSPort 127.0.0.0.0.1:9053 后仍然可以工作。 com 127.0.0.0.0.1#5353 更改到无效的端口号或域,会得到一个响应;;;连接中断;没有服务器可以到达 Dig 也可以在 openwrt 上工作,但必须从 bind-dig 包中安装。在我的情况下,当我改变了/etc/config/network中的条目,并将dns选项 “127.0.0.0.0.1 "设置为不安全的dns条目,问题就解决了。

0
0
0
2018-10-12 11:59:26 +0000

对于windows,你可能要找的东西在下面的文章中介绍。 https://technet.microsoft.com/en-us/library/ff394369.aspx

0
0
0
2011-12-14 16:50:27 +0000

你可以配置你的连接使用的主DNS。 进入你的连接属性 => Internet Procol (TCP/IP). 在这里你可以设置静态IP) 在这里你可以手动定义你想在每个连接中使用哪个DNS。