快速自建DNS服务器

  • A+
所属分类:Linux

系统要求

CentOS 6+ / Debian 6+ / Ubuntu 14.04 +

推荐使用 Debian 7 x64。

安装步骤

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

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

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

使用说明

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

  1. ./dowsdns.sh

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

  1. DowsDNS 一键安装管理脚本 [vx.x.x]
  2.  -- Toyo | doub.io/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. 请输入数字 [0-8]:

其他操作

  1. 启动:/etc/init.d/dowsdns start
  2. 停止:/etc/init.d/dowsdns stop
  3. 重启:/etc/init.d/dowsdns restart
  4. 查看状态:/etc/init.d/dowsdns status
  5. 安装目录:/usr/local/dowsDNS
  6. 配置文件:/usr/local/dowsDNS/conf/config.json
  7. 自定义泛解析域名文件:/usr/local/dowsDNS/data/wrcd.json
  8. 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

安装的流程如下

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

屏蔽广告

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

文件地址:

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

添加的代码:

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

示例:

  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,如果有错误就会提示

常见的错误

1.No module named 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

2.No module named setuptools,具体报错如下:

  1. Traceback (most recent call last):
  2. File "setup.py", line 9, in
  3. from setuptools import setup
  4. ImportError: No module named setuptools

解决方法,安装setuptools模块,具体命令如下:

  1. wget --no-check-certificate -N https://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz
  2. tar -xzf setuptools-0.6c11.tar.gz
  3. cd setuptools-0.6c11
  4. python setup.py install
  5. # 这个安装后,继续上面安装模块 requests 的步骤

3.提示 wget: command not found 的错误

需要安装wget:

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

 

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: