5-ipv6服务器之-dns

5-ipv6服务器之-dns,第1张

ubuntu下面安装dns服务器使用dnsmasq

dnsmasq是一个Linux平台下的轻量级DNS 代理软件,我们只将其配置成一个简单的本地DNS Server。另外此软件最新版本含有DHCP Server以及TFTP Server的功能,这些功能默认都是关闭的, 根据依赖关系可能会安装其他包。

(如dnsmasq-base等, 但Ubuntu 10.04 Desktop已默认安装过,但在安装时可能会自动升级dnsmasq-base)。

打开文件/etc/dnsmasq.conf(安装后默认此配置文件内的所有参数都被注释掉), 找到参数resolv-file和addn-hosts, 去掉注释符号#后修改成如下值。

此处resolve-file指定dnsmasq从哪里获取上行DNS Server, 默认是从/etc/resolv.conf获取。

因为dnsmasq本是一个DNS代理软件而非Server, 我们只是利用dnsmasq的缓存功能来实现DNS Server, 故而要将上行server指定为本机地址, 在文件/etc/dnsmasq/dnsmasq.resolv中指定nameserver为127.0.0.1即可。

addn-hosts指定dnsmasq从哪个文件中读取“地址 域名”记录, 默认是系统文件/etc/hosts, 此处我们指定从自定义文件/etc/dnsmasq/dnsmasq.hosts中读取。

创建文件夹/etc/dnsmasq/(这里的文件夹是上一步中地址的两个文件所在目录, 可以自己任意指定, 但要和上一步中的保持一致), 并添加文件/etc/dnsmasq/dnsmasq.resolv和/etc/dnsmasq/dnsmasq.hosts。

添加一行内容到/etc/dnsmasq/dnsmasq.resolv文件中

添加自定义的“地址 域名”记录到文件/etc/dnsmasq/dnsmasq.hosts中, 支持IPv6地址, 例如:

可以任意添加自己的本地DNS Server可解析的“地址 域名”记录, 注意必须重新启动dnsmasq才可以使更新生效(也可以发送信号SIGHUP给dnsmasq进程, 具体请参考dnsmasq帮助文档, Shell命令man dnsmasq)。

实际上dnsmasq是将这些记录读取到内存中缓存起来(默认最多可以记录150条记录, 可以自己在配置文件/etc/dnsmasq.conf中修改), 收到DNS查询请求时从自身的缓存中直接查找答复。

更多功能及设置请参考dnsmasq的帮助文档或者查看配置文件/etc/dnsmasq中的注释说明内容。

如果启动DNS Server失败请查看系统log(/var/log/syslog),

使用nslookup直接测试

ipv4地址

ipv6地址

一、服务器环境

必须为centos6.x的 环境 centos7.x不能按照本教程 centos5.x未测试

二、安装并启动DNSMASQ

yum install -y dnsmasqservice dnsmasq start

三、dnsmasq配置

1、Dnsmasq的配置文件路径为:/etc/dnsmasq.conf

# ll -d /etc/dnsmasq.conf -rw-r--r-- 1 root root 21237 Feb 23 00:17 /etc/dnsmasq.conf

2、编辑/etc/dnsmasq.conf

resolv-file=/etc/resolv.dnsmasq.conf //dnsmasq 会从这个文件中寻找上游dns服务器strict-order //去掉前面的#addn-hosts=/etc/dnsmasq.hosts //在这个目里面添加记录listen-address=127.0.0.1,192.168.1.123//监听地址 如果想对所有计算机服务,则为0.0.0.0

3、修改/etc/resolv.conf

echo 'nameserver 127.0.0.1' >/etc/resolv.conf

4、创建resolv.dnsmasq.conf文件并添加上游dns服务器的地址

touch /etc/resolv.dnsmasq.confecho 'nameserver 119.29.29.29' >/etc/resolv.dnsmasq.conf

5、创建dnsmasq.hosts文件

cp /etc/hosts /etc/dnsmasq.hostsecho 'addn-hosts=/etc/dnsmasq.hosts' >>/etc/dnsmasq.conf

提示:resolv.dnsmasq.conf中设置的是真正的Nameserver,可以用电信、联通等公共的DNS。

三、DNSmasq启动

1、设置Dnsmasq开机启动并启动Dnsmasq服务:

chkconfig dnsmasq on/etc/init.d/dnsmasq restart

2、netstat -tunlp|grep 53 查看Dnsmasq是否正常启动:

# netstat -tlunp|grep 53tcp 0 0 0.0.0.0:53 0.0.0.0:* LISTEN 2491/dnsmasq tcp 0 0 :::53 :::* LISTEN 2491/dnsmasq udp 0 0 0.0.0.0:53 0.0.0.0:* 2491/dnsmasq udp 0 0 :::53 :::* 2491/dnsmasq

3、dig smallxu.me,第一次是没有缓存,所以时间是400多

4、第二次再次测试,因为已经有了缓存,所以查询时间已经变成了2.

为了防止故意进行DNS劫持,这里不贴出

四、DNSMASQ的配置

1、本地DNS使用

这里我们本地DNS可以使用服务器中配置的IP,这样我们本机就使用到自己的DNS,备用DNS可以用一个第三方公用DNS。

2、屏蔽网站/广告

vi /etc/dnsmasq.conf

如果我们需要屏蔽某个网站或者广告,可以修改上面的文件

address=/itbulu.com/127.0.0.1address=/smallxu.me/127.0.0.1

比如我希望无法打开这两个网站,就在配置文件中添加指定的IP或者其他劫持的IP,比如我们打开某个网站被指定到其他的服务器或者网站中,就这样被劫持的。同样的,我们也可以将广告目录屏蔽。

添加后 smallxu.me和itbulu.com将会被解析到127.0.0.1

第五、Dnsmasq配置和使用总结

Dnsmasq实际功能不仅仅局限在上面的搭建我们本地需要的DNS服务器功能,如果真就这么简单的用法,那我们也没有必要用一台服务器配置。使用点第三方公共DNS还是没有问题的,有点广告也无妨。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/67993.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-01
下一篇2023-03-01

发表评论

登录后才能评论

评论列表(0条)

    保存