自建 DNS 服务器

安装

apt-get
apt-get update
apt-get install dnsmasq dnsutils -y(version 2.62)

配置

1.编辑 dnsmasq

vi /etc/dnsmasq.conf
resolv-file=/etc/resolv.dnsmasq.conf         # 指定上游 DNS 文件
no-poll                                      # 循环 DNS 解析,快而入
no-resolv                                    # 不读取 resolv.conf
#strict-order                                # 强制按 resolv.conf 顺序解析
#addn-hosts=/etc/file/host                   # 指定 hosts 路径
#no-hosts                                    # 开启指定 hosts
log-queries                                  # 开启日志调试
log-facility=/var/log/dnsmasq.log            # 日志路径
cache-size=1024                              # 设置缓存大小
conf-dir=/etc/dnsmasq.d                      # 启用路径内容/etc/dnsmasq.d
#listen-address=127.0.0.1,192.168.1.2        # 默认关闭,允许所有用户解析
#address=1024.com/127.0.0.1                  # 过滤解析+自定义解析+屏蔽广告
#bogus-nxdomain=                             # 国内机用,定义 DNS 解析服务器,防止 DNS 污染
#server=/google.com/8.8.8.8                  # 部分网站自定义 DNS

2.编辑 resolv

cp /etc/resolv.conf /etc/resolv.dnsmasq.conf # 系统默认 resolv.conf 会随主机变化,拷贝一份单独使用
vi /etc/resolv.dnsmasq.conf                  # 设置上游 DNS
### 添加 ###
nameserver 8.8.8.8
nameserver 4.2.2.4
nameserver 223.6.6.6                         # 建议常备国内 DNS
---------------------------------------------
vi /etc/resolv.conf
### 添加 ###
nameserver 127.0.0.1

测试命令

service dnsmasq restart                      # 重启 dnsmasq 服务
service networking restart                   # 重启网络
netstat -tunlp|grep 53                       # 查看 53 端口
---------------------------------------------
dig google.com                               # 测试缓存,测试几次 Query time 越来越快
;; Query time: 23 msec                       # 显示则成功
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Jul 19 23:25:36 2016
;; MSG SIZE rcvd: 44

最后修改设备 DNS 为主机 IP,点击这里 查看 DNS 信息,完成服务器搭建。主要折腾配置 dnsmasq.conf,速度方面看主机。

后续

1.如开启日志记录,防止越来越大:

crontab -e
# 添加
* 3 * * * rm -fr /var/log/dnsmasq.log     # 每天 3:00 删除日志文件
1 3 * * * /etc/init.d/dnsmasq restart     # 每天 3:01 重启 Dnsmasq

2.端口 53 被 named 占用:

[....] Restarting DNS forwarder and DHCP server: dnsmasq
dnsmasq: failed to create listening socket for port 53: Address already in use
 failed!
---------------------------------------------------------------------
vi dnsmasq.conf
port=5353
/etc/init.d/dnsmasq restart

3.使用国外 DNS 造成国内网站访问慢的解决方法

4.一切只为折腾。