众所周知,如果使用国内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

重启方法:systemctl restart dnsmasq

启动

设置为开机自启动

systemctl enable dnsmasq

启动 dnsmasq 服务

systemctl start dnsmasq

测试DNS解析

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

修改本地DNS地址

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

结束语

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

原帖地址: https://timingwalker.xyz/?p=29
仅供自己学习之用途

标签: none

添加新评论