Linux域名服务DNS配置方法

什么是 DNS

DNS 全称是 Domain Name System,大意是域名解析系统,它的职责是把域名翻译成一个一个可以识别的 IP 供不同的计算机设备连接。

linux 有关 DNS 解析的配置和文件

linux 中有三个文件是关于 dns 解析的:

  • /etc/hosts 记录 hostname 对应的ip地址
  • /etc/resolv.conf 设置DNS服务器的ip地址
  • /etc/host.conf 指定域名解析的顺序(是从本地的hosts文件解析还是从DNS解析)
  • /etc/hosts 的存在是早期网络并不是特别发达,仅仅在 hosts 中保存主机名和 ip 地址的对应关系即可满足需要,随着网络的发展逐渐出现分布式 DNS 服务,但是 /etc/hosts 形式保留下来了。

/etc/resolv.conf 是配置DNS 域名和 ip 地址的,网上有很多资料可以参考一下。

一个域名是如何被解析的

How the Domain Name System (DNS)Works这篇大致解释了域名被解析的过程,基本可以分为:

  • 向根域名服务请求顶级域名所在所在域名服务
  • 向顶级域名服务请求二级域名服务
  • 向二级域名服务请求具体的 ip 地址

简易DNS配置案例(基于CentOs7)

服务器端

1.安装bind

yum install bind

2.修改/etc/named.conf配置文件

vim /etc/named.conf
options {
    listen-on port 53 { any; };  //开启监听端口53,接受任意IP连接
    listen-on-v6 port 53 { ::1; };  //支持IP V6
    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   { 0.0.0.0/0; };  //允许任意IP查询

    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";

};

logging {
    channel default_debug {
        file "data/named.run";
        severity dynamic;
    };
};

zone "." IN {
    type hint;
    file "named.ca";
};

include "/etc/named.rfc1912.zones";  //主要配置文件
include "/etc/named.root.key";

3.修改/etc/named.rfc1912.zones文件,添加duiyi.com的正向区域

vim /etc/ named.rfc1912.zones
zone "localhost.localdomain" IN {
    type master;
    file "named.localhost";
    allow-update { none; };
};

zone "localhost" IN {
    type master;
    file "named.localhost";
    allow-update { none; };
};

zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
    type master;
    file "named.loopback";
    allow-update { none; };
};

zone "1.0.0.127.in-addr.arpa" IN {
    type master;
    file "named.loopback";
    allow-update { none; };
};
zone "0.in-addr.arpa" IN {
    type master;
    file "named.empty";
    allow-update { none; };
};

//duiyi.com的正向区域
zone "duiyi.com" IN {
    type master;
    file "duiyi.com.zone";
    allow-update { none; };
};

4.创建正向区域资源文件

vim /var/named/duiyi.com.zone
$TTL 1D
@  IN SOA duiyi.com. rname.invalid. (
                    0    ; serial
                    1D   ; refresh
                    1H   ; retry
                    1W   ; expire
                    3H )  ; minimum
    NS   @
    A    127.0.0.1
    AAAA  ::1
www  IN A 192.168.81.1
mail  IN A 192.168.81.2
ftp  IN A 192.168.81.3

5.启动named服务

systemctl start named

6.开机自启动

systemctl enable named

## 客户端
操作系统:windows和linux都可以
IP地址:能够ping通DNS服务器的IP(192.168.81.133)都可以,
作用:测试DNS服务器是否正常工作。

1.修改DNS:

2.ping 服务端ip(192.168.81.133),测试能否访问服务器

3.使用nslookup命令测试三个DNS解析能否成功

如图所示则表示DNS正向解析成功

Linux作为客户端测试:

1. 安装bind-utils包,以便能使用nslookup、dig和host工具

yum install bind-utils

2. 修改DNS配置使用我们的DNS服务器

vim /etc/resolv.conf
nameserver 192.168.81.133
nameserver 114.114.114.114
nameserver 8.8.8.8

3. 正向解析测试,使用nslookup命令(与windows测试一致)

nslookup

总结

以上所述是小编给大家介绍的Linux域名服务DNS配置方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

(0)

相关推荐

  • Linux下用dnsmasq做dns cache server的配置方法

    目前最新版是2.7.1 ,可去其FTP下载:http://www.thekelleys.org.uk/dnsmasq/ 安装过程比较简单 yum -y install dnsmasq* wget http://www.keepalived.org/software/keepalived-1.2.9.tar.gz tar zxvf keepalived-1.2.9.tar.gz cd keepalived-1.2.9 ./configure --prefix=/usr/local/keepaliv

  • 用DNSPod和Squid打造自己的CDN (三) 安装CentOS Linux

    第 4 章 安装CentOS Linux 1.基本安装 把光盘塞进光驱,设置BIOS从光驱启动(别告诉我你不会),然后会看到启动界面,上面有一些提示,可以输入一些命令进行高级安装或者进入系统修复模式.不用管,直接按回车. 稍等一下,会出现一个界面要求你做光盘的完整性检查.一般来说现在刻出来的盘不会有坏的,除非是下载回来的ISO文件有问题.所以这里我们跳过. 跳过的方法是:按键盘的TAB键进行控件的选择,被选择上的控件会高亮,我们选择Skip(建议大家随时打开翻译工具或者网站对不懂的英文进行翻译)

  • Linux环境下Apache服务器配置二级域名的方法详解

    本文实例讲述了Linux环境下Apache服务器配置二级域名的方法.分享给大家供大家参考,具体如下: (以域名www.csdn.net为例,现在需要配置一个二级域名blog.csdn.net指向主机地址) 首先,确认开启Apache配置文件httpd.conf中的mod_rewrite模块: 这里科普一下这个模块: 接下来我们需要登录所购域名运营商的域名管理后台,点击'域名解析': 手动添加或一键快速添加下面两条默认解析,形如www.csdn.net和csdn.net的域名就可以访问主机地址了

  • Linux下修改IP、DNS和路由命令行配置方法

    一.快速修改,重启后设置就没了 ifconfig eth0 192.168.1.22 netmask 255.255.255.0 up route add default gw 192.168.1.2 二.修改配置文件,重启设置还在 (一)ubuntu 版本命令行设置静态IP 修改 /etc/network/interfaces # This filedescribes the networ k interfaces available onyour system # and how toact

  • linux下如何快速让DNS修改生效

    如何快速使DNS修改生效 OSX, Chrome, and DNS 在开发中,经常会给域名绑定一些ip,然后又需要经常切换,那么在linux下如何快速让DNS修改声息呢? 1.先用dig命令查询域名对应的ip是否已经生效 shell$ dig grepalex.com ;; ANSWER SECTION: grepalex.com.3600INA66.216.100.140 2.如何是chrome,则可以在地址栏上输入下面命令,让浏览器DNS缓存失效 chrome://net-internals

  • Mac OS X/Linux系统下清除DNS缓存命令整理

    Mac OS X/Linux系统下怎么清除DNS缓存呢?在不同的系统中刷新DNS缓存的方法如下: Mac OS X 系统,终端输入: sudo dscacheutil -flushcache Linux系统,终端输入: /etc/init.d/nscd restart Windows 系统,CMD 命令行窗口输入: ipconfig /flushdns 查看

  • Linux命令行修改IP、网关、DNS的方法

    网卡eth0    IP修改为 102.168.0.1   复制代码 代码如下: ifconfig eth0 102.168.0.1 netmask 255.255.255.0 网关修改为 102.168.0.254 复制代码 代码如下: route add default gw 102.168.0.254 Linux命令行修改DNS 复制代码 代码如下: echo "nameserver 202.202.202.20 ">> /etc/resolv.conf 重启网络服务

  • linux中查询dns示例

    dns.c 复制代码 代码如下: /* * DNS Query Program on Linux * * Author : ismdeep@live.com * * *///Header Files#include<stdio.h> //printf#include<string.h> //strlen#include<stdlib.h> //malloc#include<sys/socket.h> //you know what this is for#i

  • Linux域名服务DNS配置方法

    什么是 DNS DNS 全称是 Domain Name System,大意是域名解析系统,它的职责是把域名翻译成一个一个可以识别的 IP 供不同的计算机设备连接. linux 有关 DNS 解析的配置和文件 linux 中有三个文件是关于 dns 解析的: /etc/hosts 记录 hostname 对应的ip地址 /etc/resolv.conf 设置DNS服务器的ip地址 /etc/host.conf 指定域名解析的顺序(是从本地的hosts文件解析还是从DNS解析) /etc/hosts

  • Linux crontab定时任务配置方法(详解)

    CRONTAB概念/介绍 crontab命令用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于"crontab"文件中,以供之后读取和执行. cron 系统调度进程. 可以使用它在每天的非高峰负荷时间段运行作业,或在一周或一月中的不同时段运行.cron是系统主要的调度进程,可以在无需人工干预的情况下运行作业.crontab命令允许用户提交.编辑或删除相应的作业.每一个用户都可以有一个crontab文件来保存调度信息.系统管理员可以通过cron.deny 和 cron

  • 完美解决linux下dns配置重启失效的问题

    有时候能ping同ip地址,却ping不通域名,这就是dns没有配置的缘故. 但是DNS配置文件 /etc/resolv.conf 每次重启就会失效. 打开这个配置文件,发现有注释提示: Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)# DO NOT EDIT THIS FILE BY HAND - YOUR CHANGES WILL BE OVERWRITTEN 原来系统已经提示我们不要手

  • Linux基本网络配置方法介绍

    1.常用配置网络指令 (1) 配置eth0的IP地址, 同时激活该设备 sudo ifconfig eth0 192.168.1.10 netmask 255.255.255.0 up (2) 添加默认网关 sudo route add default gw 192.168.1.1 (3) 配置DNS $ sudo vi /etc/resolv.conf nameserver 202.96.134.133 nameserver 202.96.128.68 nameserver 202.96.12

  • linux memcache安装配置方法

    基本原理: ① 客户端第一次访问应用程序时,会到数据库(RDBMS)中取出数据,返回给客户端:同时也将取出的数据保存到memcached中. ② 第二次访问时,因为数据已经缓存,就不用去数据库查询了,直接从memcached中取. RDBMS是文件型的数据库,最终还是以文件的形式保存在磁盘上:而memcached则不一样,它是key:value关系型的数据库,是保存在内存中的.内存的读写速度要比磁盘的读写速度快得多,前者是后者的10的6次方倍. memcached是基于libevent的事件处理

  • linux网络参数配置方法详解

    主要用途:1.查看网络接口设置: ifconfig –a或ifconfig 网络接口 –a2.网络配置 ifconfig  网络接口  [add/del]  IP地址  netmask  子网掩码 例:ifocnfig eth0 10.2.3.4 [netmask 255.255.255.0]3.网络接口的激活/关闭 格式:ifconfig 网络接口 up/down配置dns建立/etc/resolv.conf文件,在里面写入DNS服务器地址配置主机名配置/etc/sysconfig/netwo

  • vscode远程免密登入Linux服务器的配置方法

    目录 一.Windows端操作 1. 生成私钥和公钥 2. 安装remote SSH插件 3. 配置config 二.Linux服务端操作 1. 将公钥文件内容追加到authorized_keys文件中 2. 修改权限 一.Windows端操作 1. 生成私钥和公钥 cmd终端输入: ssh-keygen -t rsa -b 4096 一直回车 2. 安装remote SSH插件 3. 配置config 打开vscode远程管理器进行免密登入配置,如下图例操作: 打开Configure 进入到公

  • windows linux jdk安装配置方法

    Windows 下个jdk包,安装, JAVA_HOME=C:\java PATH=C:\java\bin CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar Linux wget 192.168.1.101/jdk-6u11-linux-i586.bin mv jdk-6u11-linux-i586.bin /usr/local/src/ cd /usr/local/src/ ./jdk-6u11-linux-i586.bi

  • 小白教程! Linux服务器上JDK安装配置方法

    本文实例为大家分享了Linux上JDK安装配置方法,供大家参考,具体内容如下 一.环境 VMware12 Pro CentOS-6.7-i386-bin-DVD1 jdk-8u151-linux-i586 二.详细安装步骤前提:需要卸载自己Linux上的jdk rpm-qa| grepjdk 会显示你所有包含jdk这个字符串的安装包 rpm-e--nodeps对应的每个包名 会卸载对应的包 之后如果java -version显示 就是卸完了. 我之前是装过jdk1.7的,所以我需要卸载 ,没装过

  • linux设置定时任务的方法步骤

    一,首先登录 二,找到文件夹 三,查看定时任务 crontab -l 四,vi root 编辑定时任务 编辑完成后,点ESC,然后:wq 时间格式 分钟 小时 日期 月份 周 命令 数字范围 0-59 0-23 1-31 1-12 0-7 echo "hello" >> abc.log 特殊字符的含义 *(星号) 代表任何时刻都接受. ,(逗号) 代表分隔时段的意思. -(减号) 代表一段时间范围内. /n(斜线) 那个 n 代表数字,每隔 n 单位间隔. eg1: 每年的

随机推荐