Linux Study Lab !

当前位置:   网站首页 >> Linux 基础配置

DNSMasq基本服务的搭建与设置

dnsmasq是Linux上常用的一款设置较简易的dns服务端之一,这里介绍它的最基本应用,dns缓存与解析代理服务。

首先通过源安装dnsmasq服务

yum install dnsmasq -y

先将本机的默认解析文件拷贝一份

cp /etc/resolv.conf /etc/resolv.dnsmasq.conf

然后编辑它的配置文件

vi /etc/dnsmasq.conf

我们主要更改如下参数(请根据注释配置你自己的内容)

resolv-file=/etc/resolv.dnsmasq.conf    《--这是刚才新建的那个解析文件
strict-order                            《--取消注释
listen-address=127.0.0.1,192.168.1.100  《--dns服务监听的地址,用逗号分隔,必须有本机地址;如果                                           你的局域网是192.168.1.x段,你安装dnsmasq的服务器是1.100,                                         那在这里你也必须加上服务器本机地址,否则局域网内的机器无法                                        使用dnsmasq提供的服务
addn-hosts=/etc/dnsmasq.hosts           《--在配置文件任意空行处添加此条
cache-size=                             《--缓存大小请依照自身服务量设置,不明请先用默认值;如果不                                        开启缓存,请去掉no-negcache前的注释符号

为了使dnsmasq成为网段内dns的首要代理服务,还需要在服务器上做如下调整

echo 'nameserver 127.0.0.1' > /etc/resolv.conf       《--更改服务器默认DNS解析为本机
echo 'nameserver 8.8.4.4' > /etc/resolv.dnsmasq.conf 《--这个值用来设定,当本机DNS缓存内没有相应的                                                         解析条目时,向公网上的dns请求解析
cp /etc/hosts /etc/dnsmasq.hosts                     《--可选项,自定义host文件的路径,这个文件里                                                          定义的条目格式和win系统下相同
chkconfig dnsmasq --level 3 on
service dnsmasq start

执行命令

netstat -tunlp|grep 53

查看服务是否正常监听53端口了,如果正常监听了,可以测试一下

dig www.iooii.com

会得到解析结果,第一次延迟比较高,第二次就是0延迟了,因为有了缓存

如果服务器还开启了系统防火墙的话,需要编辑iptables文件加上相应的53端口的tcp条目,如果有硬件防火墙存在,并且有对外网提供服务的需求,需要映射53端口到外网。以下是系统防火墙配置范例:

iptables -t nat -A PREROUTING -i eth0 -p upd --dport 53 -j REDIRECT --to-port 53
上面这句是转发eth0接口的域名解析,然后再把53端口开启,不然内网的域名解析都会发不出去
iptables -A RH-Firewall-1-INPUT -p udp -m udp --dport 53 -j ACCEPT
iptables -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 53 -j ACCEPT
service iptables save
service iptables restart

DNSmasq服务还有一些另类用法,比如作为dns代理跨过电信等ISP的DNS劫持或广告推送,也可以用来做翻跃高墙之途,甚至还可以用来给PS4玩家做PSN服务地址的泛解析和精准解析,增加下载速度等。一般这类解析条目的格式为

address=/.google.com/203.208.37.0
address=/www.youtube.com/203.208.37.0

网上搜一下会得到大量网友收集好的相应地址,按照自己的需求使用即可。由于地址一般条目数量巨大,故推荐专门新建一个文件用于整理存放。这里推荐去掉dnsmasq配置文件末尾

conf-dir=/etc/dnsmasq.d

前的注释,然后去/etc/dnsmasq.d/目录下面新建一个文件,比如psn.conf,然后把和psn有关的条目都复制进去,reload一下dnsmasq服务即可享受加速的快感了~


发表我的评论

Hi,您需要填写昵称和邮箱!

  • 必填项