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

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介:

最近小编我在自己的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

目录
打赏
0
0
0
0
344
分享
相关文章
深入学习 DNS 域名解析
在平时工作中相信大家都离不开 DNS 解析,因为 DNS 解析是互联网访问的第一步,无论是使用笔记本浏览器访问网络还是打开手机APP的时候,访问网络资源的第一步必然要经过DNS解析流程。
减少域名dns解析时间
域名解析中的TTL值设置多少合适
171 5
深度体验阿里云系统控制台:SysOM 让 Linux 服务器监控变得如此简单
作为一名经历过无数个凌晨三点被服务器报警电话惊醒的运维工程师,我对监控工具有着近乎苛刻的要求。记得去年那次大型活动,我们的主站流量暴增,服务器内存莫名其妙地飙升到90%以上,却找不到原因。如果当时有一款像阿里云 SysOM 这样直观的监控工具,也许我就不用熬通宵排查问题了。今天,我想分享一下我使用 SysOM 的亲身体验,特别是它那令人印象深刻的内存诊断功能。
Linux服务器部署docker windows
在当今软件开发中,Docker成为流行的虚拟化技术,支持在Linux服务器上运行Windows容器。流程包括:1) 安装Docker;2) 配置支持Windows容器;3) 获取Windows镜像;4) 运行Windows容器;5) 验证容器状态。通过这些步骤,你可以在Linux环境中顺利部署和管理Windows应用,提高开发和运维效率。
103 1
新手上云教程参考:阿里云服务器租用、域名注册、备案及域名解析流程图文教程
对于想要在阿里云上搭建网站或应用的用户来说,购买阿里云服务器和注册域名,绑定以及备案的流程至关重要。本文将以图文形式为您介绍阿里云服务器购买、域名注册、备案及绑定的全流程,以供参考,帮助用户轻松上手。
【飞天技术沙龙】云解析 DNS 上海站《多云+IDC 融合场景下的 DNS 最佳实践》圆满落幕
【飞天技术沙龙】云解析 DNS 上海站《多云+IDC 融合场景下的 DNS 最佳实践》圆满落幕
云上体验最佳的服务器操作系统 - Alibaba Cloud Linux | 飞天技术沙龙-CentOS 迁移替换专场
本次方案的主题是云上体验最佳的服务器操作系统 - Alibaba Cloud Linux ,从 Alibaba Cloud Linux 的产生背景、产品优势以及云上用户使用它享受的技术红利等方面详细进行了介绍。同时,通过国内某社交平台、某快递企业、某手机客户大数据业务 3 大案例,成功助力客户实现弹性扩容能力提升、性能提升、降本增效。 1. 背景介绍 2. 产品介绍 3. 案例分享
阿里云服务器租用、注册域名、备案及域名解析完整流程参考(图文教程)
对于很多初次建站的用户来说,选购云服务器和注册应及备案和域名解析步骤必须了解的,目前轻量云服务器2核2G68元一年,2核4G4M服务器298元一年,域名注册方面,阿里云推出域名1元购买活动,新用户注册com和cn域名2年首年仅需0元,xyz和top等域名首年仅需1元。对于建站的用户来说,购买完云服务器并注册好域名之后,下一步还需要操作备案和域名绑定。本文为大家展示阿里云服务器的购买流程,域名注册、绑定以及备案的完整流程,全文以图文教程形式为大家展示具体细节及注意事项,以供新手用户参考。
动态DNS(DDNS)技术在当前网络环境中日益重要,它允许使用动态IP地址的设备通过固定域名访问
动态DNS(DDNS)技术在当前网络环境中日益重要,它允许使用动态IP地址的设备通过固定域名访问,即使IP地址变化,也能通过DDNS服务保持连接。适用于家庭网络远程访问设备及企业临时或移动设备管理,提供便捷性和灵活性。示例代码展示了如何使用Python实现基本的DDNS更新。尽管存在服务可靠性和安全性挑战,DDNS仍极大提升了网络资源的利用效率。
332 6
服务器数据恢复—LINUX系统删除/格式化的数据恢复流程
Linux操作系统是世界上流行的操作系统之一,被广泛用于服务器、个人电脑、移动设备和嵌入式系统。Linux系统下数据被误删除或者误格式化的问题非常普遍。下面北亚企安数据恢复工程师简单聊一下基于linux的文件系统(EXT2/EXT3/EXT4/Reiserfs/Xfs) 下删除或者格式化的数据恢复流程和可行性。

相关产品

  • 云解析DNS
  • AI助理

    你好,我是AI助理

    可以解答问题、推荐解决方案等