本文最后更新于 2017年6月15日 17:09 可能会因为没有更新而失效。如已失效或需要修正,请留言!
系统要求
CentOS 6+ / Debian 6+ / Ubuntu 14.04 +
首先你需要一个 国内的VPS(云服务器),否则你用海外VPS搭建DNS服务器会被墙拦截并伪造(DNS污染)。
推荐 Debian 7 x64,这个是我一直使用的系统,我的脚本在这个系统上面出错率最低。
脚本版本
Ver: 1.0.6
安装步骤
执行下面的代码下载并运行脚本。
- wget -N --no-check-certificate https://softs.pw/Bash/dowsdns.sh && chmod +x dowsdns.sh && bash dowsdns.sh
- # 如果上面这个脚本无法下载,尝试使用备用下载:
- wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/dowsdns.sh && chmod +x dowsdns.sh && bash dowsdns.sh
运行脚本后会出现脚本操作菜单,选择并输入 1
就会开始安装。
如果你不懂,那么就一路回车即可,最后只要根据提示修改电脑等设备的DNS即可。
- [信息] 开始设置 用户配置...
- 请选择并输入 DowsDNS 的远程(上游)DNS解析服务器
- 说明:即一些DowsDNS没有指定的域名都由上游DNS解析,比如百度啥的。
- 1. 114.114.114.114 53
- 2. 8.8.8.8 53
- 3. 208.67.222.222 53
- 4. 208.67.222.222 5353
- 5. 自定义输入
- (默认: 1. 114.114.114.114 53):
- ================================================
- 远程(上游)DNS解析服务器 IP : 114.114.114.114
- 远程(上游)DNS解析服务器 端口 : 53
- ================================================
- 请选择并输入 DowsDNS 的本地监听方式
- 1. 127.0.0.1 (只允许本地和局域网设备访问)
- 2. 0.0.0.0 (允许外网访问)
- (默认: 2. 0.0.0.0):
- ================================================
- 本地监听方式: 0.0.0.0
- ================================================
- 请输入 DowsDNS 监听端口 [1-65535]
- 注意:大部分设备是不支持设置 非53端口的DNS服务器的,所以非必须请直接回车默认使用 53端口。
- (默认: 53):
- ================================================
- 监听端口 : 53
- ================================================
- 是否开启 DowsDNS SNI代理功能?[y/N]
- 注意:开启此功能后,任何自定义设置的 hosts或泛域名解析(包括DowsDNS自带的),都指向设置的SNI代理IP,如果你没有SNI代理IP,请输入 N !
- (默认: N 关闭):y
- ================================================
- SNI代理开关 : true
- ================================================
- 请输入 DowsDNS SNI代理 IP(如果没有就直接回车)
- (默认: 219.76.4.3):
- ================================================
- SNI代理 IP : 219.76.4.3
- ================================================
- [信息] 开始安装/配置 依赖...
- ...
- ...
- [信息] 所有步骤 安装完毕,开始启动...
- ————————————————
- 请在你的设备中设置DNS服务器为:
- IP : xxx.xxx.xxx.xxx ,端口 : 53
- 注意:如果设备中没有 DNS端口设置选项,那么就只能使用默认的 53 端口
- ————————————————
使用说明
进入下载脚本的目录并运行脚本:
- ./dowsdns.sh
然后选择你要执行的选项即可。
- DowsDNS 一键安装管理脚本 [vx.x.x]
- -- Toyo | doub.bid/dowsdns-jc3 --
- 0. 升级脚本
- ————————————
- 1. 安装 DowsDNS
- 2. 升级 DowsDNS
- 3. 卸载 DowsDNS
- ————————————
- 4. 启动 DowsDNS
- 5. 停止 DowsDNS
- 6. 重启 DowsDNS
- ————————————
- 7. 设置 DowsDNS 基础配置
- 8. 设置 DowsDNS 泛域名解析配置
- 9. 查看 DowsDNS 信息
- ————————————
- 当前状态: 已安装 并 已启动
- 请输入数字 [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在线文件,所以失去了广告屏蔽功能,如果你想要这个功能,那么手动添加上即可。
- vi /usr/local/dowsDNS/conf/hosts_repository_config.json
打开文件后,按 I键
进入编辑模式,添加下面的代码到文件中,添加位置看下面示例,添加后按 ESC键
退出编辑模式,然后输入 :wq
保存并退出。
- "adaway":"https://raw.githubusercontent.com/aoccin/adaway/master/hosts"
- # 把这行代码添加到文件内
示例配置文件(注意逗号):
- {
- "hosts":{
- "racaljk":"https://github.com/racaljk/hosts/raw/master/hosts", # 注意这里因为JSON格式,所以需要添加一个 , 逗号
- "adaway":"https://raw.githubusercontent.com/aoccin/adaway/master/hosts" # 而最后一行则不需要添加 , 逗号
- },
- "wrcd":"https://raw.githubusercontent.com/liuyunbin/dowsDNS/master/data/wrcd.json"
- }
启动失败,查看日志
因为DNS的日志如果请求一多,日志就会爆炸巨多,所以我没有设置写入日志到文件,启动失败也就无法查看日志了,但是也有其他方法,如:
- cd /usr/local/dowsDNS
- # 进入dowsDNS目录
- python start.py
- # 手动运行 dowsDNS,如果有错误就会提示,可以找这个错误来问我解决办法。
日志错误提示:ImportError: No module named requests 解决办法
如果启动失败后,查看日志发现以下报错,那多半就是缺少Python模块 requests。
- Traceback (most recent call last):
- File “start.py”, line 8, in
- import requests
- ImportError: No module named requests
解决方法就是安装Python模块 requests:
- 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"
- tar -xzf requests-2.17.3.tar.gz
- cd requests-2.17.3
- python setup.py install
安装后,再启动试试。
提示wget: unknown host “softs.pw” 之类的错误
这是无法解析我的域名,多半是DNS的问题,请更换DNS为谷歌DNS(以下两行一起复制 一起执行)。
- echo -e "nameserver 8.8.8.8
- nameserver 8.8.4.4" > /etc/resolv.conf
wget: command not found 的错误
这是你的系统精简的太干净了,wget都没有安装,所以需要安装wget。
- # CentOS系统:
- yum install -y wget
- # Debian/Ubuntu系统:
- apt-get install -y wget
升级脚本
升级脚本只需要运行脚本,然后选择并输入 0
回车即可,会自动检测最新版本并下载,当然重新下载脚本文件也可以,会自动覆盖原文件。
更新日志
2017年06月15日,版本 v1.0.6
1. 修复 删除泛域名解析后,可能出现无法启动dowsDNS的问题
2. 新增 查看日志选项(需更新dowsDNS服务管理脚本)。
- rm -rf /etc/init.d/dowsdns
- # CentOS 系统
- wget --no-check-certificate "https://softs.pw/Bash/other/dowsdns_centos" -O /etc/init.d/dowsdns
- # Debian/Ubuntu 系统
- wget --no-check-certificate "https://softs.pw/Bash/other/dowsdns_debian" -O /etc/init.d/dowsdns
- chmod +x /etc/init.d/dowsdns
2017年06月15日,版本 v1.0.5
1.修复 添加泛域名解析时,询问是否添加上一级域名选择 N 后,添加泛域名解析错误的问题。
责任声明:本站一切资源均原创或收集自互联网,仅作交流学习之用,请勿用作商业!如造成任何后果,本站概不负责!
评论 (0)