使用DNSmasq搭建DNS服务器

众所周知,如果使用国内ISP提供的默认DNS服务器,除了有时候服务器高负荷时解析域名比较慢,在网页中强行插入广告更是常有的事。通常解决这个问题我们可以采取更换DNS服务器,但使用公共DNS仍然存在的风险是我们的解析记录可能会被DNS提供商记录用于定向广告或其他商业行为。所以,想要根本的解决这个问题,只能自己搭建一台DNS服务器给自己做域名解析,从此告别域名劫持和隐私泄露。

准备工作

一台可用的VPS(境内境外均可)、Linux环境(本文采用CentOS 7)、XFTP(或其他文件管理软件)、XSHELL(或其他SSH登录软件)、NotePad++(或其他文本修改软件)。

简单介绍DNSmasq

DNSmasq是一款小巧而且方便的用于配置DNS和DHCP的工具,安装时几乎不需要其他软件。它可将VPS配置成为一台域名解析服务器,并且也可以通过服务器本地缓存实现对重复访问的网站的高速解析。我们通过设置上游DNS为无污染的DNS来解决运营商的域名劫持并且保护我们的解析数据。


开始!

安装DNSmasq

yum install dnsmasq

配置DNSmasq

DNSmasq的配置文件是  “/etc/dnsmasq.conf”,通过XFTP找到下载到本地使用NotePad++打开。在配置文件里面对每一条配置都附上了英文说明,如果想深入研究可以仔细阅读。本文以我自己使用的配置进行说明:

#不使用VPS默认DNS进行上游解析(这样配置比较简单)
no-resolv
#我选取的三个上游DNS,分别是谷歌、Cloudflare和OpenDNS
server=8.8.8.8
server=1.1.1.1
server=208.67.220.222
#本地缓存时间(秒),不建议取过长,一小时即可
local-ttl=3600
#本地缓存条目,不建议取过多,适中即可
cache-size=5000
#同时对三个DNS发起解析,谁返回最快就用谁的结果
all-servers
#对国内网站使用国内DNS解析加快访问速度(接下文)
conf-dir=/etc/dnsmasq.d

配置国内网站加速访问

如果国内网站仍然使用国外DNS,造成的结果就是国内网站访问变慢,所以我们需要分开进行解析。

#转到/etc/dnsmasq.d目录
cd /etc/dnsmasq.d
#下载配置文件
wget https://raw.githubusercontent.com/felixonmars/dnsmasq-china-list/master/accelerated-domains.china.conf

开放53端口

DNS解析默认使用53端口,我们需要将VPS的53端口打开。

firewall-cmd --permanent --zone=public --add-port=53/tcp
firewall-cmd --permanent --zone=public --add-port=53/udp
firewall-cmd --reload

启动DNSmasq

配置完成后,我们就可以愉快的启动解析服务了。

systemctl restart dnsmasq

测试DNS解析

在本地电脑上打开cmd,记得将0.0.0.0换成你自己的VPS的地址。如果返回了解析结果就表示DNS已经成功上线了。

nslookup www.baidu.com 0.0.0.0

修改本地DNS地址

这个不多说了,不会的自行Google。


结束语

跟域名劫持说拜拜,网页再也没有牛皮藓,自己的解析记录也不会被运营商记录。

参考文献

自建DNS解决运营商DNS污染

Dnsmasq作为DNS服务器,更快更干净(壹)

使用Dnsmasq搭建本地dns服务器上网


本网站所有文章(另外注明的除外)均在 CC BY-SA 3.0 协议下发布。简单地说,您在转载时必须保留文章原作者的名字,并且转载的文章也必须在相同协议下发布。

查看版权声明

您的看法?