为什么要搭建自己的DNS服务器?

国内的DNS已经被严重污染了,很多的域名返回的都是错误的域名。要防止DNS的污染,就需要用一种加密的DNS协议。DNSCrypt 协议就能满足这种要求,DNSCrypt 是一种加密的DNS协议,有很多的DNS服务器都支持这种协议,支持 DNSCrypt 协议的服务器列表在这里。

方案

最好的方案是国内的域名通过国内的DNS服务器(比如114或阿里DNS)查询,国外的通过 DNSCrypt 查询,这就需要dnsmasq的配合。dnsmasq是一个开源的,小巧的DNS服务器,支持很多的配置选项,最大的优点是能通过配置文件指定不同的域名通过不同的DNS服务器来查询。已经有人把这样的配置文件做好了,放在Github上了,叫做dnsmasq-china-list,这是一个国内域名列表。

安装和配置

安装和配置参考这篇文章。
文章中讲的是编译安装的方式,也可以直接在软件源中安装(软件源中不一定有)。
安装dnscrypt-proxy之前必须安装libsodium,centros中,在安装libsodium之后要执行下面这两行命令,不然configure时会有错误:

# echo /usr/local/lib > /etc/ld.so.conf.d/usr_local_lib.conf
# ldconfig

dnscrypt-proxy 通过添加启动参数来配置的方式比较简单,可以通过下面这条命令来启动 dnscrypt-proxy 服务:

# dnscrypt-proxy --resolver-name=4armed --local-address=127.0.0.1:35535

主要需要指定解析服务器和端口,4armed是解析服务器列表中的第一个,速度还可以,自己找一个速度比较快的就可以。默认的端口是53,53必须留给dnsmasq用,所以必须换另外一个端口。
dnscrypt-proxy 服务启动之后,用dig命令查询 youtube.com 的 ip 测试一下:

$ dig @127.0.0.1 -p 35535 youtube.com
; <<>> DiG 9.9.4-RedHat-9.9.4-18.el7 <<>> @127.0.0.1 youtube.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53341
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0;; QUESTION SECTION:
;youtube.com.                   IN      A;; ANSWER SECTION:
youtube.com.            1       IN      A       74.125.68.136
youtube.com.            1       IN      A       74.125.68.91
youtube.com.            1       IN      A       74.125.68.190
youtube.com.            1       IN      A       74.125.68.93;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sun May 22 21:13:25 CST 2016
;; MSG SIZE  rcvd: 93

应该就能查询到正确的 ip 地址。

然后配置 dnsmasq。

dnsmasq 的配置文件在 /etc/dnsmasq.conf 中,在配置文件中写入:

#配置文件的目录,dnsmasq-china-list的配置文件就放在这个目录中,会陪自动加载
conf-dir=/etc/dnsmasq.d
#禁用resolv配置文件
no-resolv
no-poll
#resolv server 使用本机的dnscrypt-proxy
server=127.0.0.1#35535
#cache 大小,默认为150
cache-size=1500

然后将dnsmasq-china-list项目中的三个 .conf 配置文件放到 /etc/dnsmasq.d 目录下。

这样,一个无污染,快速的DNS服务器就搭建好了!

dnscrypt-proxy+dnsmasq搭建无污染DNS服务器相关推荐

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

    搭建一个属于自己的本地DNS服务器很有必要,利用Dnsmasq来搭建一个属于自己的本地DNS服务器,享受更干净无污染.更智能快速和没有广告干扰的DNS解析服务. 一.Dnsmasq安装 安装并启动Dn ...

  2. dnsmasq搭建简易DNS服务器

    一.dnsmasq简介 dnsmasq是一款小巧且方便地用于配置DNS服务器和DHCP服务器的工具,适用于小型网络,它提供了DNS解析功能和可选择的DHCP功能. dnsmasq可以解决小范围的dns ...

  3. 烂泥:dnsmasq搭建简易DNS服务器

    本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb. 今天我们来介绍一个比较简单的DNS服务器dnsmasq.这款软件,已经被我成功使用到公 ...

  4. dnsmasq windows版_烂泥:dnsmasq搭建简易DNS服务器

    本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb. 今天我们来介绍一个比较简单的DNS服务器dnsmasq.这款软件,已经被我成功使用到公 ...

  5. Dnsmasq安装与配置-搭建本地DNS服务器 更干净更快无广告DNS解析

    Dnsmasq安装与配置-搭建本地DNS服务器 更干净更快无广告DNS解析 文章目录 Dnsmasq安装 Dnsmasq配置 Dnsmasq启动 Dnsmasq使用 Dnsmasq小结 默认的情况下, ...

  6. dns服务期搭建使用_使用maradns搭建简易dns服务器(本地实现dns劫持)

    需求描述 本地搭建服务器,并且使用啦一个本地域名 test.loc 通过host解析到本地服务器,开发一个网页后想让手机直接访问test.loc来打开电脑上的网站,想实现这样的功能首先得让手机访问这个 ...

  7. centos搭建局域网DNS服务器及单服务器配置多域名

    centos搭建局域网DNS服务器及单服务器配置多域名 linux配置DNS Windows配置DNS 测试域名 为单台服务器上多个应用分别配置域名 参考:https://www.jianshu.co ...

  8. 子域间互访文件服务器,搭建子域dns服务器

    搭建子域dns服务器: 首先将其做成一个缓存域名服务器,然后做如下设置: 1.在父域服务器上进行子域授权,直接编辑数据文件就可以了,不需要编辑主配置文件. 编辑父域服务器的/var/named/a.o ...

  9. 使用 Webmin+bind9快速搭建私有DNS服务器

    什么是DNS DNS是Domain name system的简称,有些地方也称为Domain name server DNS主要是用于将域名解析为IP地址的协议,有时候也用于将IP地址反向解析成域名, ...

最新文章

  1. 第四代计算机软件系统,第四代计算机是什么计算机
  2. 使用Spring Boot隔离集成测试和模拟依赖项
  3. centos6配置mysql远程访问_Linux服务器配置-VSFTP服务配置(六)
  4. 【共读Primer】52.[6.3]返回类型和return语句--返回数组指针 Page205
  5. 请插入多卷集的最后一张磁盘_聊一聊插入排序和选择排序
  6. python监听键盘输入 linux_Linux下使用Python捕获键盘输入
  7. 深度学习中端到端的理解
  8. OSX: Mac不睡眠的排查
  9. bandicam的延迟问题和画质问题
  10. dll修复工具安装教程
  11. ai作诗——分享好用人工智能作诗工具
  12. 【黑灰产犯罪研究】流量劫持
  13. 华为云CDN加速WAF防护资源实践
  14. python制作简单网页_怎么用python简单的制作一个网页
  15. 计算机思维与应用论文,计算机的思维与计算机应用关系分析
  16. 逆向之OllyDbg调试细则
  17. 中设智控牵手欧派,助力欧派提升设备管理水平
  18. 《深度学习》 笔记(一)
  19. NBIOT模块 BC20 OPENCPU GPS定位
  20. python实现自然语言处理之文本分词

热门文章

  1. SIP笔记-----语音质量分析
  2. 解决文件夹隐藏属性无法取消的办法
  3. 关于SecureCRT的注册错误问题
  4. 如何解决git上传文件出错[rejected] master - master (fetch first) error: failed to push some refs to '
  5. 女性移动用户的现状和特征
  6. 观看加勒比海盗陌生的潮汐在线完全免费
  7. C# String.Format格式化
  8. Qtranslate翻译出现“未返回数据”怎么解决
  9. 教拉克丝去面试(一),String转换成int的几种方式
  10. java 麦克风_Android(Java)实时音频输入(麦克风和USB)和输出