安装DNS服务named的web端工具
来源:原创
时间:2021-04-11
作者:脚本小站
分类:Linux
工具官方地址:
opsbase.cn/p/django-bind9
yum安装mysql:
scriptjc.com/article/850
创建数据库和赋予权限等操作:
use mysql create database bind9; CREATE USER 'root'@'%' identified by '123456'; GRANT ALL PRIVILEGES ON bind9.* TO 'root'@'%' WITH GRANT OPTION; flush privileges;
docker安装web端工具:
docker run --name bind9 -d --restart=always -p 8000:8000 -e DB_HOST=192.168.0.53 -e DB_PORT=3306 -e DB_USER=root -e DB_PASSWORD='123456' -e DB_NAME=bind9 lghost/bind9
编译安装bind:
安装编译工具:
yum groupinstall "Development Tools" "Server Platform Development"
下载二进制包:
wget -c http://ftp.isc.org/isc/bind9/9.11.2/bind-9.11.2.tar.gz
编译:
./configure --prefix=/usr/local/bind/ --with-dlz-mysql=/usr --enable-threads=no --with-openssl=no --disable-ipv6 --enable-largefile --disable-openssl-version-check
安装:
make make install
配置:
cd /usr/local/bind/etc
wget -c ftp://ftp.internic.net/domain/named.root
/usr/local/bind/sbin/rndc-confgen -r /dev/urandom -a
mkdir -pv /usr/local/bind/var/{logs,zones}
ln -s /usr/local/bind/sbin/named /bin/配置文件/usr/local/bind/etc/named.conf:
acl trust-lan {
10.0.0.0/8;
172.16.0.0/16;
192.168.0.0/16;
127.0.0.1;
};
statistics-channels {
inet 127.0.0.1 port 8653 allow { 127.0.0.1; };
};
options {
listen-on port 53 { any; };
zone-statistics yes;
tcp-clients 50000;
dnssec-enable no;
dnssec-validation no;
datasize unlimited;
stacksize unlimited;
allow-query { trust-lan; };
allow-transfer { 172.20.10.61;};
directory "/usr/local/bind/var/";
pid-file "named.pid";
forwarders {
223.5.5.5;
114.114.114.114;
8.8.8.8;
};
recursion yes;
max-cache-size 60%;
};
zone "." IN {
type hint;
file "/usr/local/bind/etc/named.root";
};
logging {
channel bind_log {
file "/usr/local/bind/var/logs/bind.log" versions 3 size 100m;
severity debug;
print-time yes;
print-severity yes;
print-category yes;
};
channel error_log {
file "/usr/local/bind/var/logs/error.log" versions 10 size 32m;
severity info;
print-time yes;
print-severity yes;
print-category yes;
};
channel query_log {
file "/usr/local/bind/var/logs/query.log" versions 10 size 32m;
severity info;
print-time yes;
print-severity yes;
print-category yes;
};
category default { bind_log; };
category queries { query_log; };
};
dlz "My zone" {
database "mysql
{host=192.168.0.53 dbname=bind9 ssl=false port=3306 user=root pass=123456}
{select zone from dns_zones where zone='$zone$'}
{select ttl, type, mx_priority, case when lower(type)='txt' then concat('\"', data, '\"') when lower(type) = 'soa' then concat_ws(' ', data, resp_person, serial, refresh, retry, expire, minimum) else data end from dns_records LEFT JOIN dns_zones ON dns_records.zone_id = dns_zones.id WHERE dns_zones.status=1 and dns_zones.zone='$zone$' and dns_records.host='$record$'}";
};启动服务:
/usr/local/bind/sbin/named -c /usr/local/bind/etc/named.conf -g
创建用户:
useradd -s /sbin/nologin named chown -R named:named /usr/local/bind/
启动文件:
cat > /etc/systemd/system/named.service <<EOF [Unit] Description=Internet domain name server After=network.target [Service] ExecStart=/usr/local/bind/sbin/named -f -u named -4 -n 2 ExecReload=/usr/local/bind/sbin/rndc reload ExecStop=/usr/local/bind/sbin/rndc stop [Install] WantedBy=multi-user.target Alias=bind.service EOF
编译bind添加支持mysql插件:
问题1:
mysql_driver.c:67:19: fatal error: mysql.h: No such file or directory
解决方法:
yum install mysql-devel
问题2:用c连接mysql 编译参数:-lmysqlclient 出错
/usr/bin/ld: cannot find -lmysqlclient
原因:libmysqlclient.so不在/usr/bin目录下,而是在/usr/lib64/mysql目录下
解决方法:建一个软连接或者复制到/usr/bin目录下
ln -sv /usr/lib64/mysql/libmysqlclient.so /usr/lib/libmysqlclient.so
