自建DNS服务器(dnsmasq),对抗DNS污染

背景

  • 学校网络出口劫持严重,上淘宝加返利—————等等等等等等
  • 一直更新hosts不方便,要上google,全平台不好弄
  • 项目组需要

目的

  • 搭建一个可访问个人公网DNS服务器
  • 提高DNS加载速度
  • 规避运营商的DNS劫持
  • 不影响学校内网访问
  • 简单的能上google

准备

  • 一台有公网IP的vps,开放了53端口(端口扫描显示开放了53端口)
  • 装的是linux系统(以 CentOS 6.4 为例)
  • WinSCP(或其他文件管理)
  • putty.exe(或者其他SSH登陆工具)
  • 没了。。。。

DNSmasq原理和说明

  • DNSmasq是一个小巧且方便地用于配置DNS和DHCP的工具,适用于小型网络。作为域名解析服务器(DNS),dnsmasq可以通过缓存 DNS 请求来提高对访问过的网址的连接速度。
  • 通过设置DNSmasq的上游DNS地址为无污染DNS来解决运营商的DNS污染。
  • DNSmasq可以对单独的网址设置DNS服务器。对于学校内网地址设置为学校教育网的DNS解析。对于类似于youtube这种由于DNS污染没法访问的地址,可以先收集无污染的DNS地址,然后交与无污染DNS解析得到正确地址。
  • DNSmasq再对网址提交上游DNS解析前,可以先通过本地hosts匹配。设置合适hosts可以实现科学上网。

开始!

步骤

安装dnsmasq

  • 1
    yum install dnsmasq -y

配置Dnsmasq

  • Dnsmasq的配置文件是 /etc/dnsmasq.conf .通过WinSCP加载修改。

  • dnsmasq.conf设置项说明

  • 此次使用的配置如下

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     #指定给dnsmasq使用的hosts
    addn-hosts=/etc/dnsmasq.host
    #不使用/etc/resolv.conf(VPS默认DNS)来进行上游dns服务器解析需要配置的比较少直接写在dnsmasq.conf文件里了
    no-resolv

    #上游DNS地址这里为腾讯DNS和中科大DNS
    server=119.29.29.29
    server=202.141.162.123
    server=/google.com/202.141.162.123
    #这一行是针对学校内网访问,学校内地址使用学校内网DNS。具体地区调整。
    server=/.edu.cn/202.141.162.123
  • 上游DNS推荐
    这里需要在VPS上测试各个DNS后决定。

    • 常用靠谱DNS
      阿里DNS 223.5.5.5 223.6.6.6
      114DNS 114.114.114.114
      腾讯DNS 119.29.29.29
      V2EX DNS 199.91.73.222 178.79.131.110(访问苹果商店有buff加速)
    • 无污染DNS
      目前比较稳定的只有中科大DNS和一些自建的小型DNS。小型DNS通过反带来访问google等,会带来一些隐私和安全风险,还是推荐自建DNS/hosts访问。
      中科大DNS
      202.38.93.153 (教育网)
      202.141.176.93 (中国移动)
      202.141.162.123 (中国电信)
    • 其他DNS请自行GOOGLE
  • 千万注意!!! 配置文件中有listen-address配置,网络大多数教程中有listen-address=127.0.0.1这是指Dnsmasq只服务于本机的DNS请求。如果需要搭建公网DNS服务,这个绝对不能有!!

创建/修改/etc/dnsmasq.host文件

  • 一些常用去广告hosts/科学上网hosts的内容,
    具体不多说hosts科学上网是一天比一天死的快。没有找到靠谱的地址推荐。自行搜索把!

重启Dnsmasq服务

  • 1
    sudo service dnsmasq restart

测试53端口

  • 1
    netstat -tunlp|grep 53
  • 如果正常应该如下

    1
    2
    3
    [root@VM_27_70_centos ~]# netstat -tunlp|grep 53
    tcp 0 0 0.0.0.0:53 0.0.0.0:* LIST EN 4226/dnsmasq
    udp 0 0 0.0.0.0:53 0.0.0.0:* 4226/dnsmasq

修改本地DNS地址

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

结束语
创建完了,本地DNS快多了,访问淘宝再也没有了牛皮癣。

参考文献

http://blog.antior.cn/posts/2015_29.html
http://www.jianshu.com/p/71ccc79aaa9e
http://www.linuxdown.net/install/soft/2016/0520/5566.html
http://blog.cnwyhx.com/centos-linux-dnsmasq-install-dns/

0%