(1) /etc/hosts :记录hostname对应的ip地址

  /etc/resolv.conf :设置DNS服务器的ip地址

  /etc/host.conf :指定域名解析的顺序(是从本地的hosts文件解析还是从DNS解析)

(2) DNS的查询指令:host、nslookup、dig,host 语法:

host命令是常用的分析域名查询工具,可以用来测试域名系统工作是否正常。

host(选项)(参数)

-a:显示详细的DNS信息;

-c<类型>:指定查询类型,默认值为“IN“;

-C:查询指定主机的完整的SOA记录;

-r:在查询域名时,不使用递归的查询方式;

-t<类型>:指定查询的域名信息类型;

-v:显示指令执行的详细信息;

-w:如果域名服务器没有给出应答信息,则总是等待,直到域名服务器给出应答;

-W<时间>:指定域名查询的最长时间,如果在指定时间内域名服务器没有给出应答信息,则退出指令;

-4:使用IPv4;

-6:使用IPv6.

 [root@localhost ~]# host www.linuxde.net 
www.linuxde.net is an alias for host..linuxde.net. host..linuxde.net has address 100.42.212.8
[root@localhost ~]# host -a www.linuxde.net Trying "www.linuxde.net" ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: ;; flags: qr rd ra; QUERY: , ANSWER: , AUTHORITY: , ADDITIONAL: ;; QUESTION SECTION: ;www.linuxde.net. IN ANY ;; ANSWER SECTION: www.linuxde.net. IN CNAME host..linuxde.net. Received bytes from 202.96.104.15# in ms

(3) Nslookup 语法:

Nslookup [FQDN] [server]

Nslookup

参数说明:

可以直接在nslookup后加上待查询的主机名称或者ip,【server】可有可无。

如果在nslookup后面没有加上任何主机名称或ip,那将进入nslookup的查询功能。在nslookup的查询功能当中,可以输入其他参数来进行特殊查询,例如:

Set type=any    :列出所有的信息

Set type=mx    :列出与mx相关的信息

(4) Dig 语法:

Dig [@server] [FQDN] [type]

参数说明:

@server :如果不想以/etc/resolv.conf来作为dns主机,则可以在此填入其他的ip

Type :预设是查询A记录,你可以在这里写入其他的记录,如:MX,NS等。

此功能亦可使用[-t type]来处理。

下面是 dig 的一些比较常用的命令:

# dig 最基本的用法

 dig @server sina.com.cn.

# 用 dig 查看 zone 数据传输

 dig @server zx.xmgd.com. AXFR

# 用 dig 查看 zone 数据的增量传输

 dig @server zx.xmgd.com. IXFR=N

# 用 dig 查看反向解析

 dig -x 210.52.83.228 @server

# 查找一个域的授权 dns 服务器

 dig xmgd.com. +nssearch

# 从根服务器开始追踪一个域名的解析过程

 dig xmgd.com +trace

# 查看你使用的是哪个 F root dns server

 dig +norec @F.ROOT-SERVERS.NET HOSTNAME.BIND CHAOS TXT

一般来说linux下查询域名解析有两种选择,nslookup或者dig,而在使用上我觉得dig更加方便顺手,如果是在debian下的话,只要装上dnsutils这个包就可以使用dig命令了,最基本的使用方式就是:

 dig www.baidu.com

即查询域名的A记录,查询的dns服务器将采用系统配置的服务器,即/etc/resovle.conf 中的,如果要查询其他类型的记录,比如MX,CNAME,NS,PTR等,只需将类型加在命令后面即可

 dig www.baidu.com mx
dig www.baidu.com ns

此外,如果你是一个系统管理员,部署好了一台dns服务器之后想对它进行解析测试,就必须要显式指定待测试的dns服务器地址了,例如

 dig @180.97.33.107 www.baidu.com a

默认情况下dig将采用udp协议进行查询,如果要采用tcp方式,可以加上 +tcp参数

 dig www.baidu.com a +tcp

另外一个重要的功能是+trace参数,使用这个参数之后将显示从根域逐级查询的过程

 dig www.baidu.com a +trace

比如,对本站域名www.linuxers.cn A记录的trace查询可以看到根域.,顶级域.cn,以及linuxers.cn的域名权威服务器的地址及其各自的返回结果,这样对于追踪dns解析中的问题有很大的帮助。

 

Linux学习之域名解析命令的更多相关文章

  1. Linux学习新篇——常用命令和快捷键总结

    最近刚接触Linux,整理了一些常用的命令和快捷键 Tab补全命令 当命令记不清了,输入记得的前几个用Tab就可以将该命令自动补全. 启动tomcat服务用$startup.sh 停止tomcat服务 ...

  2. Linux 学习 (七) 挂载命令 & 用户登陆查看

    Linux达人养成计划 I 学习笔记 挂载命令 mount:查询系统中已经挂载的设备 mount -a:根据配置文件 /etc/fstab 的内容,自动挂载 mount [-t 文件系统] [-o 特 ...

  3. Linux 学习 (四) 帮助命令

    Linux达人养成计划 I 学习笔记 man 命令 获取指定命令的帮助 man的级别 1:查看命令的帮助 2:查看可被内核调用的函数的帮助 3:查看函数和函数库的帮助 4:查看特殊文件的帮助(主要是/ ...

  4. linux学习笔记——基础命令

    最近看了一些老男孩linux运维视频,挺不错的,特此记录一下 linux组成 gun组件 shell等 linux内核 其他软件 linux主要内核: linux kernel2.2 linux ke ...

  5. linux 学习2 常用命令

    1.显示日期的指令: date 2.   [Tab]按键---具有『命令补全』不『档案补齐』的功能 3:  su和 sudo  su用于用户之间的切换.  su在不加任何参数,默认为切换到root用户 ...

  6. Linux学习之telnet命令

    telnet命令通常用来远程登录,telnet程序是基于TELNET协议的远程登录客户端程序,Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式,它为用户 ...

  7. Linux学习之traceroute命令

    通过traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径.当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一 ...

  8. Linux学习之sudo命令

    在学习Linux用户管理时,我们不得不需要了解一个命令,那就是sudo.sudo的作用是切换身份,以其他身份来执行命令. 那么为什么在Linux系统中我们需要来切换身份呢?原因有以下几个方面 1.养成 ...

  9. Linux学习之三--scp命令

    scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的.可能会稍微影响一下速度.当你服务器 ...

随机推荐

  1. UI设计师不可不知的安卓屏幕知识

    不少设计师和工程师都被安卓设备纷繁的屏幕搞得晕头转向,我既做UI设计,也做过一点安卓界面布局,刚好对这块内容比较熟悉,也曾在公司内部做过相关的讲座,在此,我将此部分知识重新梳理出来分享给大家! 1.了 ...

  2. tab.js分享及浏览器兼容性问题汇总

    在 样式布局分享-基于frozen.js的移动OA 文章中,用了到第三方组件 tab.js(带菜单的横屏滑动插件),其兼容性很差,进行优化后,已兼容全平台(且支持IE6+). tab.js GitHu ...

  3. 解决Qt4.8.6+VS2010运行程序提示 FTH: (6512): *** Fault tolerant heap shim applied to current process. This is usually due to previous crashes

    这个问题偶尔碰到两次,现在又遇上了,解决办法如下: 打开注册表,设置HKLM\Software\Microsoft\FTH\Enabled 为0 打开CMD,运行Rundll32.exe fthsvc ...

  4. git教程--git版本库的使用

    向版本控制器提交文件 我们已经成功地添加并提交了一个readme.txt文件,现在,是时候继续工作了,于是,我们继续修改readme.txt文件,改成如下内容: Git is a distribute ...

  5. linux下的gdb调试工具--内存调试

    接着上一节的代码,在while(1)的循环里面增加代码:sum=0 #include <stdio.h> int main(void) { int sum = 0, i = 0; char ...

  6. mysql 查询表的行数和空间使用及其它信息

    use information_schema; select concat(round(sum(DATA_LENGTH/1024/1024), 2), 'MB') as data from TABLE ...

  7. 转 jquery插件--241个jquery插件—jquery插件大全

    241个jquery插件—jquery插件大全 jquery插件jqueryautocompleteajaxjavascriptcoldfusion jQuery由美国人John Resig创建,至今 ...

  8. 菜鸟的jQuery源码学习笔记(三)

    each: function(callback, args) { return jQuery.each(this, callback, args); }, each:这个调用了jQuery.each方 ...

  9. MediaPlayer类——播放视频和音乐

    1)如何获得MediaPlayer实例: 可以使用直接new的方式: MediaPlayer mp = new MediaPlayer(); 也可以使用create的方式,如: MediaPlayer ...

  10. iOS Code Sign error

    出现上述错误,检查是否是证书添加错误