DNS 解析调试(dig & nslookup)

DNS 解析调试(dig & nslookup),第1张

最近在进行 dns 调试(比如开发了一个 dns 的 server,就需要调试dns 解析是否符合预期)的时候接触了一些基本工具.此处做个笔记,备查.

比较常用的是 A 和 CNAME

nslookup命令,是Linux里非常常用的网络命令,简而言之就是“查DNS信息用的”,如果没有此命令,通过 yum install bind-utils 进行安装.

nslookup是一个能够查询互联网域名服务器信息的程序。他有两种工作模式,即“交互模式”和“非交互模式”。

在“交互模式”下,用户可以向域名服务器查询各类主机、域名的信息,或者输出域名中的主机列表。

而在“非交互模式”下,用户可以针对一个主机或域名仅仅获取特定的名称或所需信息。

简单说下非交互模式

交互模式功能更加强大.

dig 全称 Domain Information Groper ,传言此工具非常强大.

废话不多说,直接上个例子,查询 www.baidu.com 在 8.8.8.8 服务器的 53 端口解析结果,当然如果要制定端口,增加 -p 53 或者你的端口即可.

从命令的返回结果看, dig 返回的信息更加丰富,调试中需要的可能还有 +trace 选项,用于追踪 dns 解析的全过程.比如

dig 普通的输出内容比较多,不便于查看,提供了几个简化的命令输出

+nocmd

+short

+nocomment

+nostat

分类: 电脑/网络 >> *** 作系统/系统故障

问题描述:

结果是:Default Server: ns1.hazzptt

Address: 202.102.224.68

当输入EXIT时,结果是ns1.hazzptt can't find EXIT:Non-existent domain

退不出DOS是怎么回事?

解析:

有些时候, user 可能会想要手动查询 DNS 上一些资料, 或者是要看看 DNS 是否有问题, 此时我们最常用的工具就是 nslookup 了, 基本上 nslookup 会根据 /etc/resolv.conf 的内容去找到所要使用的 local DNS server.

使用说明

打入 nslookup 命令后, 会看到 >提示符号, 此时打 ? 就会出现 nslookup 说明

Default Server: sun4.ee.ncku.edu

Address: 140.116.72.14

>?

$Id: nslookup.help,v 8.4 1996/10/25 18:09:41 vixie Exp $

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 mon mandssee nslookup(1) for details

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]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, e

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

querytype=X - set query type, e.g., A,ANY,CNAME,HINFO,MX,PX,NS,PTR,SOA,TXT,WKS,SRV,NAPTR

port=X - set port number to send query on

type=X - synonym for querytype

class=X - set query class to one of IN (Inter), CHAOS, HESIOD or ANY

server NAME - set default server to NAME, using current default server

lserver NAME - set default server to NAME, using initial server

finger [USER] - finger the optional USER at the current default host

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

-h - list HINFO (CPU type and operating system)

-s - list well-known services

-d - list all records

-t TYPE - list records of the given type (e.g., A,CNAME,MX, e)

view FILE - sort an 'ls' output file and view it with more

exit - exit the program, ^D also exits

>^D

Interactive/Noninteractive (交谈式/非交谈式)

执行 nslookup 时可以直接在后面跟着我们要查询的资料, 那幺 nslookup 会直接把结果传回来

如果只打入 nslookup [enter], 则进入交谈模式, 出现提示符号 >, 此时 nslookup 会等待 user input mand.

tung@traveler:~>nslookup yohoo

Server: sun4.ee.ncku.edu

Address: 140.116.72.14

Non-authoritative answer:

Name: yohoo

Address: 216.116.98.143

Aliases: yohoo

tung@traveler:~>nslookup

Default Server: sun4.ee.ncku.edu

Address: 140.116.72.14

>yohoo

Server: sun4.ee.ncku.edu

Address: 140.116.72.14

Non-authoritative answer:

Name: yohoo

Address: 216.116.98.143

Aliases: yohoo

Authoritative/Non-Authoritative

在查询时有时会出现 Non-authoritative answer, 代表这个答案是由 local DNS 的 cache 中直接读出来的, 而不是 local DNS 向真正负责这个 domain 的 name server 问来的.

常用的一些 option/mand

1. set all

可以得知目前 nslookup 的一些 default 设定值

tung@traveler:~>nslookup

Default Server: sun4.ee.ncku.edu

Address: 140.116.72.14

>set all

Default Server: sun4.ee.ncku.edu

Address: 140.116.72.14

Set options:

nodebug defname search recurse

nod2 novc noignoretc port=53

querytype=A class=IN timeout=5 retry=4

root=a.root-servers.

domain=ee.ncku.edu

srchlist=ee.ncku.edu

2. server dns_server_ip

表示将内定的 local DNS 换成另一部 server

Ex: server 140.116.2.6

3. set type=any

表示在查询某个 domain name 时, 将和这个 domain name 的一些相关资料一并显示出来

>set type=any

>yohoo

Server: sun4.ee.ncku.edu

Address: 140.116.72.14

Non-authoritative answer:

yohoo canonical name = yohoo

Authoritative answers can be found from:

yohoo nameserver = ns1gateway

yohoo nameserver = ns2gateway

ns1gateway inter address = 216.116.98.7

ns2gateway inter address = 216.116.98.8

在上面的这个例子, 我们除了知道 yohoo 的 IP 外, 我们还得知了 yohoo 是由哪部 name server 在负责的. 因此如果想要知道 yohoo 真正在 yohoo 上的记录是如何, 而不要有 local DNS cache 中传回的资料, 我们可以配合使用 server 这个 mand 将 default local DNS 改为负责 yohoo 的 DNS, 然后再查询一次

>server 216.116.98.7

Default Server: ns1gateway

Address: 216.116.98.7

>yohoo

Server: ns1gateway

Address: 216.116.98.7

Name: yohoo

Address: 216.116.98.143

Aliases: yohoo

4. set type=ptr

本来要由 IP 反查 domain name时, 在直接打 IP 就行了, 但如果已经下了 type=any 的话, 要由 IP 反查时就没那幺方便了, 此时 IP 4 个数字要倒着写, 最后还要加上 in-addr.arpa. 以查 140.116.72.219 为例, 要输入的就是 219.72.116.140.in-addr.arpa

tung@traveler:~>nslookup

Default Server: sun4.ee.ncku.edu

Address: 140.116.72.14

>140.116.72.219

Server: sun4.ee.ncku.edu

Address: 140.116.72.14

Name: garfield.ee.ncku.edu

Address: 140.116.72.219

>set type=any

>140.116.72.219

Server: sun4.ee.ncku.edu

Address: 140.116.72.14

*** sun4.ee.ncku.edu can't find 140.116.72.219: Non-existent host/domain

>219.72.116.140.in-addr.arpa

Server: sun4.ee.ncku.edu

Address: 140.116.72.14

219.72.116.140.in-addr.arpa name = garfield.ee.ncku.edu

72.116.140.IN-ADDR.ARPA nameserver = sun4.ee.ncku.edu

sun4.ee.ncku.edu inter address = 140.116.72.14

另外一个办法就是先下 set type=ptr 或 set type=a 命令, 脱离 type=any 模式, 再进行 IP 反查 domain name 的 mand

>set typr=ptr

>140.116.72.219

Server: sun4.ee.ncku.edu

Address: 140.116.72.14

219.72.116.140.in-addr.arpa name = garfield.ee.ncku.edu

72.116.140.IN-ADDR.ARPA nameserver = sun4.ee.ncku.edu

sun4.ee.ncku.edu inter address = 140.116.72.14

5. ls domain

这个命令是要求 name server 将其负责的 zone 内容 show 出来, 这个动作相当于 name server 的整份记录从 server 端传回给 nslookup 这个程序, 这种传回整个 zone 的动作叫作 zone transfer

>set type=any

>ee.ncku.edu

Server: cs.ncku.edu

Address: 140.116.2.6

ee.ncku.edu nameserver = sun4.ee.ncku.edu

ee.ncku.edu preference = 1, mail exchanger = eembox.ee.ncku.edu

ee.ncku.edu inter address = 140.116.72.15

ee.ncku.edu

origin = sun4.ee.ncku.edu

mail addr = root.sun4.ee.ncku.edu

serial = ***********

refresh = 3600 (1H)

retry = 900 (15M)

expire = 3600000 (5w6d16h)

minimum ttl = 3600 (1H)

ee.ncku.edu nameserver = sun4.ee.ncku.edu

sun4.ee.ncku.edu inter address = 140.116.72.14

eembox.ee.ncku.edu inter address = 140.116.72.15

>ls ee.ncku.edu

Default Server: cs.ncku.edu

Address: 140.116.2.6

>[sun4.ee.ncku.edu]

$ORIGIN ee.ncku.edu.

@ 1H IN A 140.116.72.15

hdlib4 1H IN A 140.116.72.4

ds114 1H IN A 140.116.72.114

hdlib5 1H IN A 140.116.72.5

ds115 1H IN A 140.116.72.115

yokoyama1 1H IN A 140.116.227.217

hdlib6 1H IN A 140.116.72.6

ds116 1H IN A 140.116.72.116

yokoyama2 1H IN A 140.116.227.218

ds117 1H IN A 140.116.72.117

ds120 1H IN A 140.116.72.120

ds118 1H IN A 140.116.72.118

ds121 1H IN A 140.116.72.121

ds119 1H IN A 140.116.72.119

ds122 1H IN A 140.116.72.122

ds123 1H IN A 140.116.72.123

intelab01 1H IN A 140.116.227.39

.....

dos系统有很多的命令,其中nslookup又是什么命令呢?下面就让我为大家解答一下这个问题,同时也提供一些dos系统中的常用命令,希望能帮助大家更好的了解dos系统。

dos系统中nslookup是什么命令:

nslookup在dos系统中是指IP地址侦测器。

此命令是用来查询或诊断dns信息,比如nslookup baidu.com可以诊断本机电脑的dns是否有效,同时还可以查询到baidu.com的dns解析

dos系统中常用命令:

1.ver 显示DOS的版本 格式?ver

2.time 显示、设置系统的时间 格式:time

3.date 显示、设置系统的日期 格式:date

4.cls 清屏 格式:cls

5.dir 列磁盘的目录 格式:dir(/p/w) /p:代表分页显示磁盘的目录 /w:代表以紧压缩的形式显

示磁盘的目录

6.vol 显示磁盘的卷标 格式:vol

7.md(mkdir) 创建新的目录 格式:md 磁盘目录名

8.rd(rmdir) 删除目录(注意?此时目录中应为空) 格式:rd 磁盘目录名

9.cd(chdir) 改变当前的目录或进入目录 格式:cd 磁盘目录名

cd.. 返回上一级目录 cd\ 返回根目录

10.tree 显示目录结构 格式:tree c:(显示c盘的目录结构)

11.path 建立外部命令的搜索路径 格式:如path=c:\windows\command (DOS中命令分为

内部命令和外部命令?其中内部命令读入内存中?在任何目录中均可用?而外部命令很大?

是以文件*.exe的形式存在的?要执行其必须在其所在的目录。因此?可通过path建立搜索

的路径?以后执行所在目录的命令时?不必在命令的所在目录执行就可以?系统会按照指定的路径搜索的。)

12.copy 文件拷贝命令 格式:copy a:\study\*.exe b:(将a盘study目录下的所有以exe为扩

展名的文件复制到b盘根目录下)(注意:不能进行目录的复制)(参数:/a以ASCII文件拷贝,/b

以二进制文件拷贝,/v校验)

13.xcopy 增强的拷贝命令 格式:xcopy a: c:\study/s(将a盘下所有文件包括目录一同复制

到c:\study下)(参数:/s拷贝文件和目录,/e拷贝任何子目录包括空目录)

14.sys 系统拷贝命令 格式:sys c:(将启动所必须的文件复制到c盘根目录下)

15.comp 文件比较命令 格式:comp 源文件路径 目标文件路径(如:comp a:\study\*.*

b:\study\*.*)

16.ren 文件改名命令 格式:ren 源文件名(包括扩展名) 目标文件名(如:ren myword.doc

myword.txt)

17.erase和del 删除文件命令 格式:erase(或del) 要删除的文件名(如:del c:\*.* erase

a:\study\*.*)

18.type 显示文件内容命令 格式:type 要显示的文件的名字(如:type c:\myword.txt)

19.exe2bin 二进制文件转换命令 格式:exe2bin 源文件名 目标文件名(如:exe2bin a.exe

a.bin或exe2bin a.exe a.com)(注意:从.exe转换为.com或.bin)

20.attrib 文件属性命令 格式:attrib +r -a file.txt(将文件file.txt设置为只读去除档案属性)(参

数:+-r设置文件的只读属性,+-a设置文件的档案属性,+-s设置文件的系统属性,+-h设置文件

的隐含属性)

21.verify 设置是否对写入磁盘上的记录数据先做检查 格式:verify on/off

22.command 装载第二命令的处理程序

23.break 控制中断命令 格式:break on/off(on时:ctrl+c时中断,off时:有些时候ctrl+c中断,

大多数时不中断)

24.more 设置 *** 作方式命令 如:more<test.asm(从标准输入设备中读数据?在屏幕上显示?

满屏后暂停)(">>"、">"输出到哪里"<"从哪里输入)

25.prompt 设置系统的提示符 格式:prompt $+字符(一般情况下)

26.set 设置环境命令

27.label 设置卷标命令 格式:label a:(设置a盘的卷标)

28.backup 备份磁盘命令 格式:backup a:\*.exe b:(将a盘根目录下的所有.exe文件备份到

b盘)

29.restore 恢复文件命令 格式:restore a:\a?.bas b:\study(恢复a盘根目录下所有文件名是

2个字符的并且首字符是a的.bas文件到b:\study下)

30.recover 文件修复和磁盘修复命令 格式:recover d: recover d:\b.bas

31.fdisk 分区命令 格式:fdisk


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7921920.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存