收藏文章 楼主

linux 安装DNS服务器,脚本大全

版块:shell   类型:普通   作者:小绿叶技术博客   查看:2122   回复:5   获赞:2   时间:2019-11-04 15:42:54

#!/bin/bash

echo "感谢使用本程序,开发商:小绿叶技术博客 eisc.cn "

bind=$(yum list installed | grep bind-chroot)

# 定义bind变量为yum方式安装包信息的记录

function azbind(){

if [ ! -n "$bind" ] # 判断信息为空

then # then 然后安装

        yum  -y  install   bind   bind-chroot

        echo "bind包安装完成"

else


        echo "已经安装bind"

fi

}

azbind


####   先使用函数备份文件    ##

file=/etc/named.conf          # 定义变量为一个文件

filebei=$file-111             # 定义备份变量

function touch(){             # 定义一个函数,名字为 touch

if test -e $filebei           #  test -e 判断备份文件存在

                                                

then                          # 然后

        echo '备份文件存已经存在,不会被创建' + $filebei    

                              # 响应一个字符串

else                          # 其他情况

        cp -rf   $file  $filebei    # 复制变量文件给另一个变量

        echo '已经为你创建备份文件,备份文件内容为' + $filebei

        cat $filebei

                              # 做出处理,自定义操作

fi                            # if 如果(开始),fi 结束 

}

touch                           # 函数名字放出来,才能被识别执行

echo "初始化配置文件内容"       # echo 打印字符串到命令窗口界面

cat /dev/null > $file           # 使用cat 查看将配置文件清空 null

cat $filebei >  $file           # 使用cat 从备份文件 iptables111 里面还原字符串

yum search ifconfig -y

yum install net-tools.x86_64 -y

echo "正在安装ifconfig包,获取本机ip地址并处理文件"

flags=$(ifconfig |grep -w flags|awk -F: 'NR==1{print$1}')

# 网卡名称

ipadd=$(ifconfig |grep -w inet|awk 'NR==1{print$2}')

                               # 定义变量 ipadd 为ip地址

   # grep -w inet 匹配 inet的数据

   # awk分段处理: NR 行号,第一行,$2第二列

                                echo $ipadd

named=$(grep -r dns111 /etc/named.conf | awk -F = '{print $0}')

# 定义name为变量(最终是字符串)

function named(){

if [[ "$named" != "" ]] # 符号 != "" 不为空

then

echo "文件已经存在"

else # else 其他情况 ,echo 写入到文件

echo " 

zone "dns111.ssh.gs" IN {

type master;

file "dns111.ssh.gs.zone";

}; " >> /etc/named.conf


echo "配置文件添加完成"

cat /etc/named.conf

fi

}

named

named-checkconf  /etc/named.conf

# 检查配置文件库语法

echo "

######################################################################

"

cd /var/named

if test -e dns111.ssh.gs.zone

then echo "文件存在,不会创建" 

else 

cp -p named.empty dns111.ssh.gs.zone 

fi

dns111=$(grep -r dns111 dns111.ssh.gs.zone | awk -F = '{print $0}')

function dns111(){

if [[ "$dns111" != "" ]]

then

                echo "文件已经存在"

else 

                echo " @            NS    dns111.ssh.gs.

ns.dns111.ssh.gs  A     ipadd

www.dns111.ssh.gs A     ipadd " >> dns111.ssh.gs.zone

sed -i "s/ipadd/$ipadd/g" `grep "ipadd" -rl dns111.ssh.gs.zone` 

                echo "配置文件添加完成"

cat dns111.ssh.gs.zone

fi

}

dns111


named-checkzone  dns111.ssh.gs  dns111.ssh.gs.zone

# 检查文件库语法

systemctl restart named         

# 重启

nslookup ns.dns111.ssh.gs 127.0.0.1

nslookup www.dns111.ssh.gs 127.0.0.1

                                # 测试

wjoptions=$(grep -r options /etc/named.conf | awk -F = '{print $0}')

function bjoptions(){

if [[ "$wjoptions" != "" ]]

then

echo "

########################## 文件已经存在主DNS ###############################

"

else 

echo "

options {

listen-on port 53 { ipadd; };

allow-query { any; }; 

}" >> /etc/named.conf 

sed -i "s/ipadd/$ipadd/g" `grep "ipadd" -rl /etc/named.conf`

echo "配置文件添加完成"

cat /etc/named.conf 

fi

}

bjoptions




systemctl  restart  named

nmcli connection modify ens192 ipv4.dns $ipadd

nmcli connection up $flags

echo $flags $ipadd

cat /etc/resolv.conf

nslookup www.dns111.ssh.gs # DNS 测试

nslookup ns.dns111.ssh.gs
















=====================  子域名DNS  ==================

添加NS记录
时间 : 2016-10-28编辑 : DNS智能解析专家 分享 : 

什么情况下会用到NS记录?
[如果需要把子域名交给其他DNS服务商解析,就需要添加NS记录]


A.主机记录处填子域名(比如需要将www.123.com的解析授权给其他DNS服务器,只需要在主机记录处填写www即可,主机记录“@”不能做NS记录,授权出去的子域名不会影响其他子域名的正常解析)

B.记录类型为NS

C.线路类型(默认为必填项,否则会导致部分用户无法解析)

D.记录值为要授权的DNS服务器域名,记录生成后会自动在域名后面补一个“.”,这是正常现象

E.MX优先级不需要填写

F.TTL不需要填写,添加时系统会自动生成,默认为600秒

注:添加NS记录,生效的时间等同于修改NS地址的时间,需要2-48小时生效

有些梦虽然遥不可及,但并不是不可能实现。 
回复列表
默认   热门   正序   倒序

回复:linux 安装DNS服务器,脚本大全

Powered by ddoss.cn 12.0

©2015 - 2024 ddoss

头像

用户名:

粉丝数:

签名:

资料 关注 好友 消息