Linux 使用 dowsDNS 快速自建DNS服务器Ver: 1.0.6

本文最后更新于 2017年6月15日 17:09 可能会因为没有更新而失效。如已失效或需要修正,请留言!

系统要求

CentOS 6+ / Debian 6+ / Ubuntu 14.04 +

首先你需要一个 国内的VPS(云服务器),否则你用海外VPS搭建DNS服务器会被墙拦截并伪造(DNS污染)。

推荐 Debian 7 x64,这个是我一直使用的系统,我的脚本在这个系统上面出错率最低。

脚本版本

Ver: 1.0.6

安装步骤

执行下面的代码下载并运行脚本。

  1. wget -N --no-check-certificate https://softs.pw/Bash/dowsdns.sh && chmod +x dowsdns.sh && bash dowsdns.sh
  2.  
  3. # 如果上面这个脚本无法下载,尝试使用备用下载:
  4. wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/dowsdns.sh && chmod +x dowsdns.sh && bash dowsdns.sh

运行脚本后会出现脚本操作菜单,选择并输入 1 就会开始安装。

如果你不懂,那么就一路回车即可,最后只要根据提示修改电脑等设备的DNS即可。

  1. [信息] 开始设置 用户配置...
  2. 请选择并输入 DowsDNS 的远程(上游)DNS解析服务器
  3. 说明:即一些DowsDNS没有指定的域名都由上游DNS解析,比如百度啥的。
  4. 1. 114.114.114.114 53
  5. 2. 8.8.8.8 53
  6. 3. 208.67.222.222 53
  7. 4. 208.67.222.222 5353
  8. 5. 自定义输入
  9.  
  10. (默认: 1. 114.114.114.114 53):
  11.  
  12. ================================================
  13. 远程(上游)DNS解析服务器 IP : 114.114.114.114
  14. 远程(上游)DNS解析服务器 端口 : 53
  15. ================================================
  16.  
  17. 请选择并输入 DowsDNS 的本地监听方式
  18. 1. 127.0.0.1 (只允许本地和局域网设备访问)
  19. 2. 0.0.0.0 (允许外网访问)
  20.  
  21. (默认: 2. 0.0.0.0):
  22.  
  23. ================================================
  24. 本地监听方式: 0.0.0.0
  25. ================================================
  26.  
  27. 请输入 DowsDNS 监听端口 [1-65535]
  28. 注意:大部分设备是不支持设置 53端口的DNS服务器的,所以非必须请直接回车默认使用 53端口。
  29.  
  30. (默认: 53):
  31.  
  32. ================================================
  33. 监听端口 : 53
  34. ================================================
  35.  
  36. 是否开启 DowsDNS SNI代理功能?[y/N]
  37. 注意:开启此功能后,任何自定义设置的 hosts或泛域名解析(包括DowsDNS自带的),都指向设置的SNI代理IP,如果你没有SNI代理IP,请输入 N !
  38. (默认: N 关闭):y
  39.  
  40. ================================================
  41. SNI代理开关 : true
  42. ================================================
  43.  
  44. 请输入 DowsDNS SNI代理 IP(如果没有就直接回车)
  45. (默认: 219.76.4.3):
  46.  
  47. ================================================
  48. SNI代理 IP : 219.76.4.3
  49. ================================================
  50. [信息] 开始安装/配置 依赖...
  51. ...
  52. ...
  53. [信息] 所有步骤 安装完毕,开始启动...
  54. ————————————————
  55.  
  56. 请在你的设备中设置DNS服务器为:
  57. IP : xxx.xxx.xxx.xxx ,端口 : 53
  58. 注意:如果设备中没有 DNS端口设置选项,那么就只能使用默认的 53 端口
  59.  
  60. ————————————————

使用说明

进入下载脚本的目录并运行脚本:

  1. ./dowsdns.sh

然后选择你要执行的选项即可。

  1. DowsDNS 一键安装管理脚本 [vx.x.x]
  2. -- Toyo | doub.bid/dowsdns-jc3 --
  3. 0. 升级脚本
  4. ————————————
  5. 1. 安装 DowsDNS
  6. 2. 升级 DowsDNS
  7. 3. 卸载 DowsDNS
  8. ————————————
  9. 4. 启动 DowsDNS
  10. 5. 停止 DowsDNS
  11. 6. 重启 DowsDNS
  12. ————————————
  13. 7. 设置 DowsDNS 基础配置
  14. 8. 设置 DowsDNS 泛域名解析配置
  15. 9. 查看 DowsDNS 信息
  16. ————————————
  17.  
  18. 当前状态: 已安装 已启动
  19.  
  20. 请输入数字 [0-8]:

其他操作

启动:service dowsdns start

停止:service dowsdns stop

重启:service dowsdns restart

查看状态:service dowsdns status

安装目录:/usr/local/dowsDNS

配置文件:/usr/local/dowsDNS/conf/config.json

自定义泛解析域名文件:/usr/local/dowsDNS/data/wrcd.json

hosts配置文件:/usr/local/dowsDNS/conf/hosts_repository_config.json

其他说明

使用SNI代理说明

注意:新版本的DowsDNS是支持自定义泛域名解析的,可以指向你想要的IP。

但是,如果你开启了 SNI代理功能后(config.json配置文件中的sni_proxy_on参数,true=开启,false=关闭),config.json中的sni_proxy_ip参数,也就是SNI代理IP就会覆盖你目前DowsDNS中任何自定义的域名解析配置(包括自带的泛域名解析和hosts文件里的解析),具体的自己多试几次就懂了。

自定义泛解析域名配置文件:/usr/local/dowsDNS/data/wrcd.json

屏蔽广告

新版本中作者因为一些原因删除了屏蔽广告的hosts在线文件,所以失去了广告屏蔽功能,如果你想要这个功能,那么手动添加上即可。

  1. vi /usr/local/dowsDNS/conf/hosts_repository_config.json

打开文件后,按 I键 进入编辑模式,添加下面的代码到文件中,添加位置看下面示例,添加后按 ESC键 退出编辑模式,然后输入 :wq 保存并退出。

  1. "adaway":"https://raw.githubusercontent.com/aoccin/adaway/master/hosts"
  2. # 把这行代码添加到文件内

示例配置文件(注意逗号):

  1. {
  2. "hosts":{
  3. "racaljk":"https://github.com/racaljk/hosts/raw/master/hosts", # 注意这里因为JSON格式,所以需要添加一个 , 逗号
  4. "adaway":"https://raw.githubusercontent.com/aoccin/adaway/master/hosts" # 而最后一行则不需要添加 , 逗号
  5. },
  6. "wrcd":"https://raw.githubusercontent.com/liuyunbin/dowsDNS/master/data/wrcd.json"
  7. }

启动失败,查看日志

因为DNS的日志如果请求一多,日志就会爆炸巨多,所以我没有设置写入日志到文件,启动失败也就无法查看日志了,但是也有其他方法,如:

  1. cd /usr/local/dowsDNS
  2. # 进入dowsDNS目录
  3. python start.py
  4. # 手动运行 dowsDNS,如果有错误就会提示,可以找这个错误来问我解决办法。

日志错误提示:ImportError: No module named requests 解决办法

如果启动失败后,查看日志发现以下报错,那多半就是缺少Python模块 requests。

  1. Traceback (most recent call last):
  2. File start.py”, line 8, in
  3. import requests
  4. ImportError: No module named requests

解决方法就是安装Python模块 requests:

  1. wget --no-check-certificate -O "requests-2.17.3.tar.gz" "https://pypi.python.org/packages/27/c7/a45641c83c6e28f4922ba6af3d4ae4d79b41932c2f3d77fed9e0bf878149/requests-2.17.3.tar.gz#md5=b1b8e6412e11e00e12adbb7786c3f2a3"
  2. tar -xzf requests-2.17.3.tar.gz
  3. cd requests-2.17.3
  4. python setup.py install

安装后,再启动试试。

提示wget: unknown host “softs.pw” 之类的错误

这是无法解析我的域名,多半是DNS的问题,请更换DNS为谷歌DNS(以下两行一起复制 一起执行)。

  1. echo -e "nameserver 8.8.8.8
  2. nameserver 8.8.4.4" > /etc/resolv.conf

wget: command not found 的错误

这是你的系统精简的太干净了,wget都没有安装,所以需要安装wget。

  1. # CentOS系统:
  2. yum install -y wget
  3.  
  4. # Debian/Ubuntu系统:
  5. apt-get install -y wget

升级脚本

升级脚本只需要运行脚本,然后选择并输入 0 回车即可,会自动检测最新版本并下载,当然重新下载脚本文件也可以,会自动覆盖原文件。

更新日志

2017年06月15日,版本 v1.0.6

1. 修复 删除泛域名解析后,可能出现无法启动dowsDNS的问题

2. 新增 查看日志选项(需更新dowsDNS服务管理脚本)。

  1. rm -rf /etc/init.d/dowsdns
  2. # CentOS 系统
  3. wget --no-check-certificate "https://softs.pw/Bash/other/dowsdns_centos" -O /etc/init.d/dowsdns
  4. # Debian/Ubuntu 系统
  5. wget --no-check-certificate "https://softs.pw/Bash/other/dowsdns_debian" -O /etc/init.d/dowsdns
  6. chmod +x /etc/init.d/dowsdns

2017年06月15日,版本 v1.0.5

1.修复 添加泛域名解析时,询问是否添加上一级域名选择 N 后,添加泛域名解析错误的问题。

责任声明:本站一切资源均原创或收集自互联网,仅作交流学习之用,请勿用作商业!如造成任何后果,本站概不负责!

OIMI

OIMI

我还没有学会写个人说明!

Leave a Reply

Your email address will not be published. Required fields are marked *

微信扫一扫,分享到朋友圈

Linux 使用 dowsDNS 快速自建DNS服务器Ver: 1.0.6
返回顶部

显示

忘记密码?

显示

显示

获取验证码

Close