我们晓得主机名对应到 IP 有两种方法,早期的方法是直接写在档案里面来对应, 后来比较新的方法则是透过 DNS 架构!那么这两种方法分别使用什么配置文件?可不可以同时存在? 若同时存在时,那个方法优先?嗯!我们先来谈一谈几个配置文件吧!

* /etc/hosts :这个是最早的 hostname 对应 IP 的档案;
* /etc/resolv.conf :这个重要!就是 ISP 的 DNS 服务器 IP 记录处;
* /etc/nsswitch.conf:这个档案则是在决定先要使用 /etc/hosts 还是/etc/resolv.conf

一般而言, Linux 的预设主机名与 IP 的对应搜寻都以 /etc/hosts 为优先,为什么呢?你可以查看一下 /etc/nsswitch.conf ,并找到 hosts 的项目:

[root@lcl ~]# cat /etc/nsswitch.conf |grep hosts
#hosts: db files nisplus nis dns
hosts: files dns

上面那个 files 就是使用 /etc/hosts,而最后的 dns 则是使用 /etc/resolv.conf的 DNS 服务器来进行搜寻啦!因此,你可以先以 /etc/hosts 来设定 IP 对应!当然啦,你也可以将他调换过来,不过,总是 /etc/hosts 比较简单,所以将他摆在前面比较好啦!

我们来了解一下/etc/resolv.conf文件

[root@lcl ~]# cat /etc/resolv.conf
nameserver 168.95.1.1
nameserver 139.175.10.20
DNS 服务器的 IP 可以设定多个,为什么要设定多个呢?因为当第一部 (照设定的顺序)DNS 挂点时,
我们客户端可以使用第二部 (上述是 139.175.10.20) 来进行查询,这多少有点像 DNS 备援功能。 通常建议至少填写两部 DNS 服务器的 IP,不过在网络正常使用的情况下,永远只有第一部 DNS 服务器会被使用来查询,其他的设定值只是在第一部出问题时才会被使用。

Tips:尽量不要设定超过 3 部以上的 DNS IP 在 /etc/resolv.conf 中,因为如果是你的区网出问题,导致无法联机到 DNS 服务器,那么你的主机还是会向每部 DNS 服务器发出联机要求,每次联机都有timeout 时间的等待,会导致浪费非常多的时间喔!
-------------
DNS主配置文件/etc/named.conf

options {
listen-on port 53 { any; }; //监听本地地址的53端口,any表示本地所有地址
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt"; //数据文件
memstatistics-file "/var/named/data/named_mem_stats.txt"; //内存的数据文件
allow-query { any; }; //允许哪些地址可以进行dns查询
recursion yes; //允许使用递归
/*
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
*/
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";

managed-keys-directory "/var/named/dynamic";
forward only;
forwarders {
168.95.1.1; //先用中华电信的 DNS 当上层
139.175.10.20; //再用 seednet 当上层
};
};

• listen-on port 53 { any; }; 监听在这部主机系统上面的哪个网络接口。预设是监听在 localhost,亦即只有本机可以对 DNS 服务进行查询,那当然是很不合理啊! 所以这里要将大括号内的数据改写成 any。记得,因为可以监听多个接口,因此 any 后面得要加上分号才算结束喔! 另外,这个项目如果忘记写也没有关系,因为默认是对整个主机系统的所有接口进行监听的。
• directory "/var/named"; 意思是说,如果此档案底下有规范到正、反解的 zone file 档名时,该档名预设应该放置在哪个目录底下的意思。预设放置到 /var/named/ 底下。由于 chroot 的关系,最终这些数据库档案会被主动链接到 /var/named/chroot/var/named/ 这个目录。
• dump-file, statistics-file, memstatistics-file 与 named 这个服务有关的许多统计信息,如果想要输出成为档案的话,预设的档名就如上所述。鸟哥自己很少看这些统计资料, 所以,这三个设定值写不写应该都是没有关系的。
• allow-query { any; }; 这个是针对客户端的设定,到底谁可以对我的 DNS 服务提出查询请求的意思。原本的档案内容预设是针对 localhost 开放而已, 我们这里改成对所有的用户开放 (当然啦,防火墙也得放行才行)。不过,默认 DNS 就是对所有用户放行,所以这个设定值也可以不用写。
• forward only ; 这个设定可以让你的 DNS 服务器仅进行 forward,即使有 . 这个 zone file 的设定,也不会使用 . 的数据, 只会将查询权交给上层 DNS 服务器而已,是 cache only DNS 最常见的设定了!
• forwarders { 168.95.1.1; 139.175.10.20; } ; 既然有 forward only,那么到底要对哪部上层 DNS 服务器进行转递呢?那就是 forwarders (不要忘记那个 s) 设定值的重要性了!由于担心上层 DNS 服务器也可能会挂点,因此可以设定多部上层 DNS 服务器喔!每一个 forwarder 服务器的 IP 都需要有『 ; 』来做为结尾!

DNS相关配置文件的更多相关文章

  1. linux的DNS相关介绍(转载)

    1.DNS配置文件 /etc/hosts   这个是最早的 hostname 对应 IP 的档案: /etc/resolv.conf :这个重要!就是 ISP 的 DNS 服务器 IP 记录处: /e ...

  2. 三大框架SSH(struts2+spring+hibernate)整合时相关配置文件的模板

    最近在学SSH三大框架的整合,在此对他们整合时相关配置文件做一简单的模板总结,方便以后复用! 首先是web.xml配置文件,这里面就配置一些简单的监听器.过滤器,包括spring核心配置文件appli ...

  3. [科普]DNS相关的攻击介绍

    一  什么是DNS DNS 是域名系统 (Domain Name System) 的缩写,是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不 ...

  4. Linux系列教程(十四)——Linux用户和用户组管理之相关配置文件

    前面我们介绍了软件包管理.首先介绍了rpm包的相关命令,但是我们发现直接安装rpm包会被其依赖性折磨的不行,然后解决办法是yum在线管理,通过yum命令安装rpm包能自动帮助我们解决依赖性.最后又介绍 ...

  5. shell 环境变量的相关配置文件和配置方法

    shell 环境变量的相关配置文件和配置方法: bash 的配置文件: 全局配置: /etc/profile, /etc/profile.d/*.sh, /etc/bashrc 个人配置 ~/.bas ...

  6. /etc/resolv.conf服务器客户端DNS重要配置文件

    DNS客户端配置文件:etc/resolv.conf /etc/resolv.conf文件相当于windows如下图: 当然/etc/resolv.conf文件为辅助配置DNS文件,其实在网卡里也可以 ...

  7. Bigbluebutton服务执行过程及相关配置文件

    BigBlueButton服务列表 BigBlueButton由许多开源的服务组成,看似很麻烦,实际上拆分开每一个服务就很简单了,组件化平台化.究竟BBB都用到了哪些开源服务?我们来列举一下,名称均带 ...

  8. 四、IntelliJ IDEA 之 HelloWorld 项目创建及相关配置文件介绍

    咱们通过创建一个 Static Web 项目大致了解了 IntelliJ IDEA 的使用界面,接下来,趁着这个热乎劲,咱们来创建第一个 Java 项目“HelloWorld”,进入如下界面: 如上图 ...

  9. DNS客户端配置文件/etc/resolv.conf

    本来不应该把DNS客户端配置文件放在这里来说,但由于新手弟兄上网时,虽然能拔号,但不能以域名访问.究其原因是由于没有修改 /etc/resolv.conf 文件: /etc/resolv.conf 里 ...

随机推荐

  1. mybatis 的一点问题

    写法1:   public User queryUserByUsername(String username); 写法2:   public User queryUserByUsername(@Par ...

  2. php并发控制 , 乐观锁

    由于悲观锁在开始读取时即开始锁定,因此在并发访问较大的情况下性能会变差.对MySQL Inodb来说,通过指定明确主键方式查找数据会单行锁定,而查询范围操作或者非主键操作将会锁表. 接下来,我们看一下 ...

  3. Dynamic Performance Tables not accessible Automatic Statistics disabled for this session

    使用oracle时候统计会出现这个提示 Dynamic Performance Tables not accessible Automatic Statistics disabled for this ...

  4. HTML5编程之旅系列一:HTML5 Geolocation 初探

    让我们假设这样一个场景,有一个web应用程序,它可以向用户提供附近不远处某商场的打折优惠信息.使用HTML5 Geolocation API(地理定位 API),可以请求用户共享他们的位置信息. HT ...

  5. hdu 1728 逃离迷宫 (BFS)

    逃离迷宫 Time Limit : 1000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Submissi ...

  6. Linux设置某软件开机自动启动的方法

    方法一 将启动命令写到系统启动时会自动调用的脚本中 echo "/usr/local/apache2/bin/apachectl start" >> /etc/rc.d ...

  7. Effective C++笔记之Item49【了解new-handler的行为】

    //---------------------------------------------------------// //------------------------------------ ...

  8. 剑指offer 复杂链表的复制 (有向图的复制)

    时间复杂度O(3N) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ...

  9. test命令

    每一种条件语句的基础都是判断什么是真什么是假.是否了解其工作原理将决定您编写的是质量一般的脚本还是您将引以为荣的脚本.Shell 脚本的能力时常被低估,但实际上其能力的发挥受制于脚本撰写者的能力.您了 ...

  10. Socket在手机上的应用

    usb读取:pid vid --可以唯一的确定设备获取手机驱动socket固定端口通信 wifipc机在局域网内,udp的数据包(整个网段) 蓝牙配对 bluetoothsocket 如果放大:可以分 ...