其实一般使用redhat或centos中自带的rpm安装bind是十分简单的,但是源码安装可以让你对bind文件的整体结构有了更好的认识
先下载一个源码包:https://www.isc.org/downloads/bind/
直接下载即可。
进入目录后就可以编译了,对于编译的模块就不细说了直接查询即可。
但是有几个模块是必须要装的gcc、openssl和perl的相关组件,如果不想安装必须用--without把模块排除在外,下面开始编译:
直接安装即可
安装好后,就得到了这俩个文件夹
下面就开始写named的各种配置文件,相对于rpm包,源码包装出来什么都没有。。。
首先要创建一个named系统用户
完成脚本的链接:
写入后要记得用 ---------------source加载
1、在/etc/named/中创建named.conf文件
在配置文件的目录中就会有这么几个文件,修改它们权限为named!!!!
配置文件大致上就设置好了,下面就要根据named.conf中指定写zone文件了
一个个开始编写吧
在编写localhost.zone和named.local文件
开始服务即可
这样就算是安装完成了,当然还可以写一个启动脚本放到/etc/init.d/下面,就完美了
#/bin/bash
#chkconfig 2345 70 50
#description named
#author joe
[ -r /etc/init.d/functions ] && . /etc/init.d/functions
//判断functions库函数是否可读
Pidfile="/usr/local/bind9/var/run/named.pid"//默认pid路路径
Lockfile="/var/lock/subsys/named"//脚本锁文件
named="named"//服务
start() {
[ -x "/usr/local/bind9/sbin/$named" ] || exit 4
if [ -f $Lockfile ];then
echo "the $named is already running"
exit 5
fi
echo -n "starting $named "
daemon --pidfile "$Pidfile" /usr/local/bind9/sbin/$named -u named -4
RETAVL=$?
echo
if [ $RETAVL -eq 0 ];then
touch $Lockfile
return 0
else
rm -f $Lockfile $Pidfile
return 1
fi
}
stop(){
if [ ! -f $Lockfile ];then
echo "the $named is stopped.... "
exit 5
fi
echo -n "stopping the $named.."
killproc $named
RETAVL=$?
echo
if [ $RETAVL -eq 0 ];then
rm -f $Lockfile
fi
}
reload(){
if [ ! -f $Lockfile ];then
echo "the $named is stopped "
exit 5
fi
echo -n "reload the config file"
killproc $named -HUP
RETAVL=$?
echo
}
status(){
if pidof $named &>/dev/null && [ -f $Pidfile ];then
echo "the $named is starting"
else
echo "the $named is stopped"
fi
}
case $1 in
start)
start
;;
stop)
stop
;;
reload)
reload
;;
restart)
stop
sleep 1
start
;;
status)
status
;;
*)
echo "Usage:||"
;;
esac