Linux mint 14下的powerDNS+mysql+powerAdmin搭建个性DNS域名解析服务器

简介:

最近小编我在自己的pc上安装了linux mint 14桌面版操作系统,就像试试这个桌面版的操作系统能不能实现服务器系统的性能,整好我最近在尝试使用一种新的搭建dns服务器的方法(不使用bind),powerDns+mysql+powerAdmin,这种dns服务器易于管理,因为有web页面可一直接添加、修改、更新和删除域或者记录,于是小编我就开始动手做了。

setp 1:准备工作,你需要下载相应的软件包啦,PowerDNS,Mysql,PowerAdmin,但是很是庆幸啊,这个桌面版的mint是基于ubuntu开发而来的,安装软件的方式和ubuntu是一致的,ubuntu的软件仓库可是各种的软件都有啊,小编我是着实体验了一把傻瓜似的安装享受,但是要提醒的是你的现更新以下本地的软件列表库,不然你要搜索安装的软件可能不存在的

#apt-get update

step 2:安装mysql,因为powerDns的域和记录等信息都是记录在mysql数据库中的,所有mysql是必不可少的

# apt-get -y install mysql-server mysql-client

又因为mysql默认是绑定自己环回地址的,这样我们在外界管理是管理不到的,我们可以修改一下mysql的配置文件以取消地址绑定,这里我们可以使用sed编辑器来修改,当然也可以直接用vi编辑器

# sed -i -e 's/bind-address/#bind-address/' /etc/mysql/my.cnf

启动mysql

# service mysql start

之后可以查看一下mysql的启动状态,如果发现3306端口启动了就说明mysql启动没问题了

# netstat -tupln |grep mysql

clip_image002 step 3:安装powerDns

# apt-get -y install pdns-server pdns-backend-mysql

安装完成之后要进行相应的配置来让powerDns支持mysql,powerDns官方提供了一个安装说明文档

clip_image004

下载打开之后找到如下页面

clip_image006

可以看到相关mysql配置修改 etc/powerdns/pdns.conf文件内容,将原有”#launch=gmysql“的”#“去掉,并且添加以下内容

gmysql-host=127.0.0.1

gmysql-user=powerdns //这里的user是安装powerDns时系统生成的 gmysql-password=123456

gmysql-dbname=dnsdb //powerDns的数据库名在后面要使用mysql创建

step 4:新建powerDns数据库dnsdb(名字可以任意取,但是要和上面提到的pdns.conf配置文件的内容一致)

打开mysql

cmq-ThinkPad-R400 cmq # mysql -u root -p

Enter password:

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 51

Server version: 5.5.29-0ubuntu0.12.10.1 (Ubuntu)

Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

#建立一个名为dnsdb的数据库用于存储PowerDNS的数据。

mysql> create database dnsdb;

 

#给用户pdnsuser(这个用户要使用useradd创建)授予操作dnsdb数据库的全部权限。

mysql> GRANT ALL ON dnsdb.* TO 'pdnsuser'@'localhost' IDENTIFIED BY '123456';

mysql> GRANT ALL ON dnsdb.* TO 'pdnsuser'@'localhost.localdomain' IDENTIFIED BY '123456';                      

 

mysql> FLUSH PRIVILEGES;

#创建相应的表,用以存放域、记录等,读者可能会想,我哪知道数据字典的格式啊,别担心,官方文档是有地,直接复制粘贴就是了

clip_image008

先切换到dnsdb

mysql > use dnsdb;

创建域表

mysql > CREATE TABLE domains (

id INT auto_increment,

name VARCHAR(255) NOT NULL,

master VARCHAR(128) DEFAULT NULL,

last_check INT DEFAULT NULL,

type VARCHAR(6) NOT NULL,

notified_serial INT DEFAULT NULL,

account VARCHAR(40) DEFAULT NULL,

primary key (id)

);

创建记录表

mysql > CREATE TABLE records (

id INT auto_increment,domain_id INT DEFAULT NULL,

name VARCHAR(255) DEFAULT NULL,

type VARCHAR(6) DEFAULT NULL,

content VARCHAR(255) DEFAULT NULL,

ttl INT DEFAULT NULL,

prio INT DEFAULT NULL,

change_date INT DEFAULT NULL,

primary key(id)

);

创建supermesters

mysql > CREATE TABLE supermasters (

ip VARCHAR(25) NOT NULL,

nameserver VARCHAR(255) NOT NULL,

account VARCHAR(40) DEFAULT NULL

);

当然官方操作文档还提供了相应的优化机制,就是创建一些索引

mysql > CREATE INDEX rec_name_index ON records(name);

mysql > CREATE INDEX nametype_index ON records(name,type);

mysql > CREATE INDEX domain_id ON records(domain_id);

插入几条测试记录

INSERT INTO domains (name, type) values ("test.com", "NATIVE");

INSERT INTO records (domain_id, name, content, type,ttl,prio)

VALUES (1,"test.com","localhost ahu@ds9a.nl 1","SOA",86400,NULL);

INSERT INTO records (domain_id, name, content, type,ttl,prio)

VALUES (1,"test.com","dns-us1.powerdns.net","NS",86400,NULL);

INSERT INTO records (domain_id, name, content, type,ttl,prio)

VALUES (1,"test.com","dns-eu1.powerdns.net","NS",86400,NULL);

INSERT INTO records (domain_id, name, content, type,ttl,prio)

VALUES (1,"www.test.com","199.198.197.196","A",120,NULL);

INSERT INTO records (domain_id, name, content, type,ttl,prio)

VALUES (1,"mail.test.com","195.194.193.192","A",120,NULL);

INSERT INTO records (domain_id, name, content, type,ttl,prio)

VALUES (1,"localhost.test.com","127.0.0.1","A",120,NULL);

INSERT INTO records (domain_id, name, content, type,ttl,prio)

VALUES (1,"test.com","mail.test.com","MX",120,25);

step 5:重新启动powerDns

#service pdns retstart

step 6:测试,解析方式有很多host、nslookup、dig等等

cmq-ThinkPad-R400 cmq # host www.test.com

www.test.com is an alias for test.blockdos.com.

test.blockdos.com is an alias for test.3dnsgeo.com.

test.3dnsgeo.com has address 50.23.225.49

test.3dnsgeo.com has address 174.36.85.72

成功啦乡亲们!!!!

step 7:如果总是直接在mysql里添加数据那真是会把人累死的啦,那么咱就来解决一下啦,可以使用poweradmin这个利器来解决,下载完成之后只需几步就能出现友好的web管理界面啦,当然既然是web管理,那么apache便是少不了的了,小编使用了以下命令安装

# apt-get -y install apache2 libapache2-mod-php5 php5 php5-common \

php5-curl php5-dev php5-gd php-pear php5-imap gettext   \

php5-mcrypt php5-mhash php5-ming php5-mysql \ php5-xmlrpc

# pear install DB

# pear install pear/MDB2#mysql

将下载完的poweradmin-2.1.6.tgz解压缩

# tar -xvzf poweradmin-2.1.6.tgz

# mv poweradmin-2.1.6 /var/www/dnsadmin

修改用户和用户组

# chown -R www-data:www-data /var/www/dnsadmin

打开浏览器访问http://127.0.0.1/dnsadmin/install/index.php

clip_image010

默认选择英文之后点击“go to step 2”,一直点到“go to step 4”(就是第三页)输入MySQL中root用户(注意是root用户)、密码、地址、端口、数据库名称,最后一个输入框是是指定以后登录Poweradmin时管理员(admin)的密码(最后测试登录web页面会用到,读者要记着啊)。

clip_image012

第4页指定为PowerDNS建立的MySQL用户的信息,输入在第4步中为建立的MySQL用户(还记得我们建立的pdnsuser)、密码以及SOA、NS记录。

clip_image014

第五页是授权

clip_image016

然后到了第六页,它提示说没法创建config.inc.php,这可麻烦大了,如果这个文件没法创建那么我们下面的工作就没法完成了,这是为什么呢,主要是因为mint这个系统的权限问题,我们目前登录的用户都是普通用户,没法轻易创建文件,那么我们可以在终端下切换到root用户下使用vi来手工创建就是了,页面上提示的很清楚,可以手工创建,并且内容已经附上了

clip_image018

mint下的vim是以下这种形式(小编我开始可是真是不习惯,读者你可以用别名替代以下的啦)

# vim.tiny /var/www/dnsadmin/inc/config.inc.php 将以下内容添加进去保存退出即可

继续到达第七页

又有提示了:you should (must!) remove the directory "install/" from the Poweradmin root directory. You will not be able to use Poweradmin if it exists. 意思就是你必须删除”install/“文件夹不然你就无法使用Poweradmin的管理界面,这个文件夹在哪呢,其实就是/var/www/dnsadmin/install/把它删除就是了

# rm -rf /var/www/dnsadmin/install/

接下来就是测试Poweradmin的管理界面的时刻了,在浏览器中打开http://127.0.0.0/dnsadmin/ 输入管理用户(admin)以及密码(第1步“Poweradmin administrator password”中输入的内容)。

clip_image020

登录之后就是这个样子了

clip_image022

那么开始使用吧,你能清楚的看到很多的菜单选项,如果想创建一个新域的话就点击“Add master zone”小编我这里添加了一个“zzutest.cn”的玩玩

clip_image024

可以选择域的类型,我选的是主域之后点击”Add zone”就是了,然后回到“Index”页面点击“List zones”就会看到下面的内容(小编原来在mysql数据库中添加的域也会显示出来)

clip_image026

那么如何能添加主机记录呢,请看下图,单击小编鼠标指示的位置就是域的视图模式了

clip_image028

clip_image030

找到“Add record”按钮的上面就可以添加相应的主机记录了比如小编添加了一个

zzutest.cn NS abc.net

然后单击“Add record”按钮就会添加成功了

clip_image032

然后添加一条主机记录啦

www.zzutest.cn A 202.197.189.111

到此小编就已经把powerDns的使用给讲完了,个人觉的还有一个web管理工具也可以用于管理powerDns的数据库,那就是phpMyadmin啦,可以直接操纵数据库的每一条记录phpMyadmin也不需要安装啦,直接解压到/var/www/目录就是了

clip_image034

这就是我的phpMyadmin的管理页面啦,左边可以看到本机所有的mysql数据库啦,可以展开dnsdb看看

clip_image036

左侧的这些表是不是很熟悉啊,这些都是小编在前面手工建立的啦,web管理界面信息标明的很清晰啦,小编我就不一一介绍啦,在接下来的一篇博客小编我会给读者介绍另一种dns服务器软件的使用的,敬请关注哈



本文转自 chenming421  51CTO博客,原文链接:http://blog.51cto.com/wnqcmq/1168904

相关文章
|
2月前
|
存储 缓存 监控
阿里云服务器配置与云盘容量选择参考:实例规格、云盘等相关配置选择解析
对于初次接触云服务器的用户来说,面对众多配置选项和云盘容量选择,可能会不知道如何选择。有些用户甚至不清楚云服务器应该购买多大容量的云盘,也不知道哪一款配置的云服务器更适合自己的业务。本文将详细探讨这两个问题,并结合阿里云服务器的特点,为您提供一份云服务器配置与云盘容量选择指南,以供了解和选择参考。
|
3月前
|
存储 缓存 网络协议
阿里云特惠云服务器99元与199元配置与性能和适用场景解析:高性价比之选
2025年,阿里云长效特惠活动继续推出两款极具吸引力的特惠云服务器套餐:99元1年的经济型e实例2核2G云服务器和199元1年的通用算力型u1实例2核4G云服务器。这两款云服务器不仅价格亲民,而且性能稳定可靠,为入门级用户和普通企业级用户提供了理想的选择。本文将对这两款云服务器进行深度剖析,包括配置介绍、实例规格、使用场景、性能表现以及购买策略等方面,帮助用户更好地了解这两款云服务器,以供参考和选择。
|
2月前
|
域名解析 存储 网络协议
域名解析的终极指南:从基础到进阶,彻底搞懂 DNS 记录
域名解析是网站运行的基础,正确配置DNS记录至关重要。本文从基础到进阶全面解析DNS知识,涵盖A、AAAA、CNAME、MX、TXT、CAA等常见记录类型及其应用场景。通过学习,你将了解DNS的工作原理,掌握如何优化域名配置,确保网站与邮件服务高效运行。无论搭建个人博客还是企业官网,本文都能助你轻松搞定域名解析!
515 0
|
1月前
|
存储 弹性计算 安全
阿里云服务器自定义、快速、活动、云市场镜像四种主流方式解析与选择参考
阿里云服务器如何购买?目前主要的购买方式有自定义购买、快速购买、通过活动购买、通过云市场镜像页面购买这四种购买方式。然而,面对阿里云服务器多样化的购买方式和配置选项,许多用户可能会感到迷茫,不知道该如何选择最适合自己的购买途径。本文将详细解析阿里云服务器的四种主流购买方式的适用场景及购买流程,以供大家了解他们之间的区别及选择参考。
142 58
|
29天前
|
安全 应用服务中间件 网络安全
从零(服务器、域名购买)开始搭建雷池WAF到应用上线简明指南
本文详细介绍了基于雷池WAF的网站防护部署全流程,涵盖服务器与域名准备、WAF安装配置、网站接入设置及静态文件站点搭建等内容。通过最低1核CPU/1GB内存的服务器配置,完成Docker环境搭建、雷池一键安装及端口设置,实现域名解析、SSL证书配置和防护策略优化。同时支持301重定向与HTTP到HTTPS自动跳转,确保访问安全与规范。最后还提供了使用静态文件搭建网站的方法,帮助用户快速构建具备基础WAF防护能力的网站系统。
从零(服务器、域名购买)开始搭建雷池WAF到应用上线简明指南
|
18天前
|
存储 缓存 数据挖掘
阿里云服务器实例选购指南:经济型、通用算力型、计算型、通用型、内存型性能与适用场景解析
当我们在通过阿里云的活动页面挑选云服务器时,相同配置的云服务器通常会有多种不同的实例供我们选择,并且它们之间的价格差异较为明显。这是因为不同实例规格所采用的处理器存在差异,其底层架构也各不相同,比如常见的X86计算架构和Arm计算架构。正因如此,不同实例的云服务器在性能表现以及适用场景方面都各有特点。为了帮助大家在众多实例中做出更合适的选择,本文将针对阿里云服务器的经济型、通用算力型、计算型、通用型和内存型实例,介绍它们的性能特性以及对应的使用场景,以供大家参考和选择。
|
2月前
|
存储 弹性计算 缓存
阿里云服务器经济型e与通用算力型u1各自性能、适用场景解析与使用常见问题参考
在阿里云的众多云服务器实例类型中,经济型e和通用算力型u1实例凭借其高性价比和广泛的适用性,成为了众多用户的首选。这两款实例不仅满足了个人和中小企业用户的日常需求,同时也为大型企业级用户提供了灵活且经济的选择。本文将深入剖析这两款实例的性能特点、适用场景,并提供选择意见参考和常见问题解答,帮助用户更全面地了解并选择合适的云服务器实例。
124 12
|
2月前
|
存储 弹性计算 安全
阿里云服务器四种购买方式解析:自定义、快速、活动、云市场镜像选购流程参考
阿里云服务器主要的购买方式有自定义购买、快速购买、通过活动购买、通过云市场镜像页面购买这四种购买方式。然而,面对阿里云服务器多样化的购买方式和配置选项,有些新手用户并不清楚他们的区别及具体流程,因此可能不知道哪种方式更适合自己。本文将详细解析阿里云服务器的四种主流购买方式的适用场景及购买流程,帮助用户轻松选择最适合自己的购买途径。
|
2月前
|
弹性计算 安全 Linux
阿里云服务器镜像解析:镜像类型对比、适用场景与选择策略参考
阿里云服务器镜像,作为ECS实例的“装机盘”,不仅提供了操作系统,还包含了初始化应用数据和预装软件,云服务器镜像的选择对于云服务器的性能和稳定性起着至关重要的作用,选择合适的镜像对于云服务器的性能和稳定性至关重要。本文将深入解析阿里云服务器提供的多种镜像类型,从公共镜像到社区镜像,全面介绍每种镜像的特点、优势以及选择建议,帮助用户根据自身需求做出适合自己的选择。
516 12
|
2月前
|
存储 弹性计算 算法
阿里云服务器实例选购参考:经济型e实例与通用算力型u1实例性能、价格与适用场景解析
在阿里云目前的云服务器实例规格中,通用算力型u1和经济型e实例的云服务器凭借其相对较低的活动价格,成为了众多用户关注的焦点。其中经济型e(ecs.e-c1m1.large)实例2核2G3M带宽特惠价99元1年,通用算力型u1实例(ecs.u1-c1m2.large)2核4G5M带宽特惠价199元1年。由于经济型e实例属于共享型实例规格,而通用算力型u1实例则是独享型实例规格,因此,用户在选择时往往会对这两款云服务器的性能、适用场景及价格进行比较。本文将为您详细介绍这两款云服务器的区别、性能特点、适用场景及价格对比,以供参考和选择。

相关产品

  • 云解析DNS