MaraDNS是一个小型,免费和轻量级的域名服务器。 它是一种替代的开源DNS服务器,用作缓存,递归或权威的Nameservers。 这对于Linux和Windows平台来说非常容易配置和可用。 可以从这里下载 。 您可以在这里阅读有关DNS,递归DNS,授权DNS的更多信息。
以下是MarDNS的一些有趣的特征:
- 易于安装
- 内存使用量低(使用大约5MB内存)
- 可以作为权威Nameservers和递归Nameservers。
- 不要错过,MaraDNS网站上的文档很容易理解。
现在让我们开始使用CentOS 7上的MaraDNS。以下步骤将引导您了解MaraDNS的安装和配置:
安装MaraDNS
到目前为止,CentOS 7没有可用的MaraDNS RPM,所以我们将从源代码安装和编译它。
安装gcc:
sudo yum install gcc
从这里下载最新的源文件。 你可以这样做:
wget http://maradns.samiam.org/download/2.0/2.0.11/maradns-2.0.11.tar.bz2
提取存档的内容:
tar -xjf maradns-2.0.11.tar.bz2
更改为提取的MaraDNS目录,编译安装程序:
cd maradns-2.0.11
sudo make
sudo make install
MaraDNS现已安装。 MaraDNS服务安装在/etc/init.d/maradns上
。 您可以通过以下方式启动服务:
sudo /etc/init.d/maradns start
要启动递归恶魔,请运行:
sudo /etc/init.d/maradns.deadwood start
默认情况下,权威Nameservers监听端口127.0.0.1
和端口127.0.0.2
上的递归
。
让我们开始启动MaraDNS:
chkconfig maradns on
递归DNS服务器的init脚本需要与chkconfig兼容,才能使其在启动时运行。 将以下内容添加到文件/etc/init.d/maradns.deadwood文件的顶部:
# chkconfig: - 55 45
# description: MaraDNS is secure Domain Name Server (DNS)
# probe: true
将其设置为在启动时运行:
chkconfig maradns.deadwood on
将MaraDNS配置为权威Nameservers
权威DNS服务器“知道”URL对于任何给定域的映射。 它们是递归DNS服务器向Web客户端(如浏览器(Chrome,Firefox))发送的信息的来源。 您可以将MaraDNS配置为权威的Nameservers:
编辑MaraDNS的配置文件,即/ etc / mararc
:
ipv4_bind_addresses = "127.0.0.1" chroot_dir = "/etc/maradns"
csv2 = {} csv2["example.net."] = "db.example.net"
第一行告诉MaraDNS
听IP- 127.0.0.1
。 您可以添加更多的IP,用逗号分隔。 例如: 127.0.0.1,xxxx
chroot_dir
的第二行是提及保存所有区域文件的目录。
第三行用csv2 = {}
命令初始化csv2 hash
。
第四行提到名为example.net
的名为db.example.net
的区域文件。
以下是域名example.net的
名为db.example.net
的区域文件,这是不言自明的:
example.net. +14400 soa ns1.example.net. dns@example.net. 2012010117 14400 3600 604800 14400 ~ example.net. +14400 ns ns1.example.net. ~ example.net. +14400 ns ns2.example.net. ~ ns1.example.net. +14400 a 127.0.0.1 ~ ns2.example.net. +14400 a 127.0.0.1 ~ example.net. +14400 a 127.0.0.1 ~ www.example.net. +14400 a 127.0.0.1 ~ example.net. +14400 mx 10 mail.example.net. ~ mail.example.net. +14400 a 127.0.0.1 ~
您从开始权限(SOA)线开始。 然后指定权威Nameservers和其他记录。 记录包括域名,TTL(生存时间),记录类型和记录的值。
要注意的两件事情是所有域名都以一个时期结束,即它们必须是完全限定的域名,所有的记录以波浪符号(〜)结尾。 要了解更多信息,请查看有关区域文件格式的文档。
为了更简单,让我们将example.net
指向127.0.0.1
。 这是你如何做的:
example.net. 127.0.0.1 ~
重新启动服务:
sudo /etc/init.d/maradns restart
将MaraDNS配置为递归Nameservers
当您的网络浏览器发送DNS查询时 - 假设浏览器尚未将映射存储在其缓存中 - 将其发送到递归DNS服务器。 它也被称为DNS转发。 它默认监听端口127.0.0.2
,您可以添加更多的IP,用逗号分隔。 例如: 127.0.0.2,xxxx
。 您可以通过将下列行添加到/ etc / dwood3rc文件
中将MaraDNS配置为递归Nameservers
:
upstream_servers = {}
upstream_servers["."] = "8.8.8.8, 8.8.4.4" # Forwarding requests to Google DNS Servers
重新启动服务:
sudo /etc/init.d/maradns.deadwood restart
您完成了设置MaraDNS服务器! :)
提示 - 如果您希望MaraDNS服务器响应外部DNS查询,则需要:
将设备的公共IP添加到配置文件( / etc / mararc
& / etc / dwood3rc
)中,并将其修改为:
/ etc / mararc:
ipv4_bind_addresses = "127.0.0.1, x.x.x.x" #Replace x.x.x.x with your machine's public address.
/ etc / dwood3rc:
bind_address="127.0.0.2, x.x.x.x" #Replace x.x.x.x with your machine's public address.
recursive_acl =“0.0.0.0/0”#允许任何地方的连接。
你可以从这里的这些示例文件。 不要忘了重新启动服务。
就这样!