#!/bin/bash

DOMAIN=wang.org
HOST=www
HOST_IP=10.0.0.100
LOCALHOST=`hostname -I | awk '{print $1}'`

. /etc/os-release

color ()  {
  RES_COL=60
  MOVE_TO_COL="echo -en \\033[${RES_COL}G"
  SETCOLOR_SUCCESS="echo -en \\033[1;32m"
  SETCOLOR_FAILURE="echo -en \\033[1;31m"
  SETCOLOR_WARNING="echo -en \\033[1;33m"
  SETCOLOR_NORMAL="echo -en \E[0m"
  echo -n "$1" && $MOVE_TO_COL
  echo -n "["
  if [ $2 = "success" -o $2 = "0" ] ;then
    ${SETCOLOR_SUCCESS}
    echo -n $" OK "
  elif [ $2 = "failure" -o $2 = "1" ] ;then
    ${SETCOLOR_FAILURE}
    echo -n $"FAILED"
  else
    ${SETCOLOR_WARNING}
    echo -n $"WARNING"
  fi
    ${SETCOLOR_NORMAL}
    echo -n "]"
    echo
}

install_dns () {
  if [ $ID = 'centos' -o $ID = 'rocky' ];then
    yum install -y bind bind-utils
  elif [ $ID = 'ubuntu' ];then
    apt update
    apt install -y bind9 bind9-utils bind9-host
  else
    color "不支持此操作系统,退出!" 1
    exit
  fi
}

config_dns () {
  if [ $ID = 'centos' -o $ID = 'rocky' ];then
    sed -i -e '/listen-on/s/127.0.0.1/localhost/' -e '/allow-query/s/localhost/any/' -e 's/dnssec-enable yes/dnssec-enable no/' -e 's/dnssec-validation yes/dnssec-validation no/' /etc/named.conf
    cat >> /etc/named.rfc1912.zones <<EOF
zone "$DOMAIN" IN {
  type master;
  file "$DOMAIN.zone";
};
EOF
cat > /var/named/$DOMAIN.zone <<EOF
\$TTL 1D
@      IN      SOA       master admin (
              1 ; serial
              1D ; refresh
              1H ; retry
              1W ; expire
              3H ) ; minimum
        NS              master
master        A      ${LOCALHOST}
$HOST       A      $HOST_IP
EOF
    chmod 640 /var/named/$DOMAIN.zone
    chgrp named /var/named/$DOMAIN.zone
  elif [ $ID = 'ubuntu' ];then
    sed -i 's/dnssec-validation auto/dnssec-validation no/' /etc/bind/named.conf.options
    cat >> /etc/bind/named.conf.default-zones <<EOF
zone "$DOMAIN" IN {
  type master;
  file "/etc/bind/$DOMAIN.zone";
};
EOF
cat > /etc/bind/$DOMAIN.zone <<EOF
\$TTL 1D
@   IN   SOA      master  admin (
              1 ; serial
              1D ; refresh
              1H ; retry
              1W ; expire
              3H ) ; minimum
      NS              master
master      A      ${LOCALHOST}
$HOST     A      $HOST_IP
EOF
    chgrp bind /etc/bind/$DOMAIN.zone
  else
    color "不支持此操作系统,退出!" 1
    exit
  fi
}

start_service () {
  systemctl enable named
  systemctl restart named
  systemctl is-active named.service
  if [ $? -eq 0 ] ;then
    color "DNS 服务安装成功!" 0
  else
    color "DNS 服务安装失败!" 1
    exit 1
  fi
}

install_dns
config_dns
start_service

一键搭建dns的更多相关文章

  1. 如何搭建DNS服务

    继NTP时间服务器后,继续搭建DNS服务,鉴于昨晚撰写时间超过预期,这次改变策略,先把自己需要用到的部分写出来(主要是基于RAC的搭建,只涉及正向和反向DNS解析),后面再添加必要的说明和阐述. 试验 ...

  2. 一键搭建vpn服务器

    今天花了很多时间搭建vpn服务器,后来找到一篇一键搭建服务器的文章,那叫一个爽,附上链接收藏~~~看开以后要写脚本了 http://www.centoscn.com/image-text/instal ...

  3. Centos6一键搭建L2TP VPN服务器

    用VPS在墙上打洞还有一种叫L2TP,也是常见的一种方式.本脚本结合了L2TP(Layer Tunneling Protocol)和IPSec(Internet Protocol Security), ...

  4. ubuntu搭建DNS

    ubuntu搭建DNS 一.     bind简介: BIND是Domain Name System (DNS) 协议的一个实现,提供了DNS主要功能的开放实现,主要包括以下三种: *域名服务器 *D ...

  5. 《搭建DNS负载均衡服务》RHEL6

    搭建DNS负载均衡环境: 1.至少三台的linux虚拟机,一台主的DNS服务器,1台副的(可以N台),1台测试机. 负载均衡有很多种,apache那样的是为了缓解人们访问网站时给服务器造成太大的压力, ...

  6. 《搭建DNS内外网的解析服务》RHEL6

    首先说下: 搭建的这个dns内外网的解析,是正向解析,反向解析自己根据正向解析把文件颠倒下就ok了 第一步我们先搭建一个DNS的正反向解析(参考上篇DNS正反向解析,这是上篇做过的) 第二部才是搭建内 ...

  7. 如何搭建DNS服务(转)

    继NTP时间服务器后,继续搭建DNS服务,鉴于昨晚撰写时间超过预期,这次改变策略,先把自己需要用到的部分写出来(主要是基于RAC的搭建,只涉及正向和反向DNS解析),后面再添加必要的说明和阐述. 试验 ...

  8. Linux 搭建DNS

    Linux 搭建DNS 使用yum源安装 yum -y install bind* 修改主配置文件 [root@localhost ~]# cp /etc/named.conf /etc/named. ...

  9. 第一次搭建dns服务器

    CentOS 7 搭建DNS服务器 主要参考的是小左先森的一篇博客:https://blog.51cto.com/13525470/2054121. 1.搭建过程中遇到的几个问题说一下: a.在重启服 ...

  10. centos DNS服务搭建 DNS原理 使用bind搭建DNS服务器 配置DNS转发 配置主从 安装dig工具 DHCP dhclient 各种域名解析记录 mydns DNS动态更新 第三十节课

    centos  DNS服务搭建  DNS原理  使用bind搭建DNS服务器 配置DNS转发 配置主从  安装dig工具  DHCP  dhclient  各种域名解析记录  mydns DNS动态更 ...

随机推荐

  1. 基于Antlr的Modelica3.5语言解析

    背景 Modelica语言是一种统一面向对象的系统建模语言 官方文档中明确写明了语法规范 在附录的第一章词法,第二章语法都完整的罗列的语言规范,对于Antlr适配特别好 只需要把[]修改为Antlr的 ...

  2. linux并行执行线程

    资料来源: (1) https://www.jianshu.com/p/d8d58846c53f(作者:黄甫一) 1.并行任务较少时: (1) 给需要并行运行的命令行在结尾加上"&& ...

  3. jmeter使用Java开发自定义函数

    一.前置条件(对jmeter进行二次开发) 本篇通过抽象类AbstractFunction来实现: 1.JMeter提供了接口给用户进行二次开发,其中接口可通过引入 ApacheJMeter_comp ...

  4. C# RGB转Brush

    C#中自定义一个Brush,使用Color赋RGB值给Brush: dataGrid2.HorizontalGridLinesBrush = new SolidColorBrush(System.Wi ...

  5. drush use dev.mentor.com | expecting statement

    在多站点的环境中, 不清楚在哪个目录下运行drush cc all, 这时可以运行 drush use dev.mentor.com然后还发现一个很搞笑的事情, 在一个文件的末尾一直现实红色报错符号, ...

  6. HiveServer2启动报TezConfiguration类NoClassDefFoundError错误

    错误信息如下: 2021-01-03 20:11:26,355 WARN [main] server.HiveServer2: Error starting HiveServer2 on attemp ...

  7. json转化 ts定义网页工具

    json转化 ts定义 https://transform.tools/json-to-typescript

  8. java8 检查

    // 检查放款日期 boolean allMatch = cdiscountMonthBillDetails.stream().map(CdiscountMonthBillDetail::getTra ...

  9. vue- cube-scroll踩坑记

    坑: 下拉刷新,上拉加载一直处于加载中  ---  原因:未结束此次下拉或上拉  ---解决:forceUpdate()结束上拉或下拉 无法正常滚动  --- 原因:数据更新了,但页面高度未变化 -- ...

  10. CF652F 题解

    题意 传送门 在一个长度为 \(m\) 的圆环上有 \(n\) 只初始位置互不相同的蚂蚁,每只蚂蚁的速度都为 \(1\),初始方向为顺时针或逆时针:两只运动方向不同的蚂蚁相遇时会调转方向,问 \(t\ ...